Blog » Smoothieboard v2 progress update
posted on 18 Oct 2015 19:32
We really often get asked « When is Smoothieboard v2 coming out ? » lately.
There is a lot of enthusiasm around the project since it was first announced, enthusiastic people can be impatient, and the fact we refuse to give a deadline ( giving a deadline had bad results for Smoothieboard v1 ) doesn't help.
So this is an update on what has been going on, where we are, and where we are going.
Smoothieboard v2, what's that ?
So first off, in case you are just now catching this train, Smoothieboard is an Open-Hardware CNC controller board, and the current version ( v1 ) is based on the LPC1769 microcontroller, and has been around for a few years now.
We did a lot on this platform, we started simple, had a lot of room to grow into, and we took advantage of that to bring you all the awesome features you have come to love Smoothie for.
With time, we are getting closer and closer to running out of processing power, code storage space, and memory. This is a consequence of doing so much, and doing it so well. Even though Smoothie has been a very nice upgrade compared to the older 8-bit arduino-based controllers, it is now suffering the same fate : if we want to continue making things nicer, we need to move to a more powerful platform, again.
So that's why we are doing Smoothieboard v2. The main reasons for this new projects are :
- Moving to a more powerful microcontroller ( LPC43XX instead of LPC17XX )
- Taking all the things we have learned these past years, all the user feedback, and making an even better design overall
- Trying new and exciting things
While the main difference is going to be changing the microcontroller, one other exiting thing we are going to do, is doing a "pro" board, the v2-pro, which is essentially v2, with rainbows, sparkles, and pure concentrated awesome on top.
The v2 version will essentially be the v1 version with a new microcontroller : LPC4337, which runs at 204 Mhz, has 1MB flash, 136KB RAM, a FPU, a M0 co-processor, SDIO interface and lots of cool features. This is actually going to mean a lot for the board : super fast and more precise everything ( including floating point math ), faster SD card access, faster Ethernet, using a co-processor for step generation.
And the possibility to add even more cool features, like we have been doing so far.
The v2-pro board is the v2 board, but with a *lot* of upgrades : a FPGA to do step generation ( think megahertz rates ), beefier XYZ stepper drivers ( 3.5A, 1/256 microstepping ), 4 extruder stepper drivers, 6 mosfets, an intel edison port, and many many extension ports.
If this is confusing, here is a table for easy reference :
|Board||v1 ( 5XC )||v2||v2-pro|
|Architecture||32bit ARM Cortex-M3||32bit ARM Cortex-M4 with M0 co-processor|
|Frequency||120 Mhz||204 Mhz|
|RAM||64 kB||136 kB|
|Flash||512 kB||1024 kB|
|Floating Point Unit||No||Yes|
|SD card access||Slow ( SPI )||Fast ( SDIO )|
|Fastest step generation||Main microcontroller||M0 co-processor ( fast )||FPGA ( super fast )|
|XYZ stepper drivers||A4982||TMC262|
|Extruder stepper drivers||A4982|
|Quantity||2||1 + extentions||4 + extensions|
|High power ( heated bed )||3||1||2|
|Medium power ( hotend, fan )||3||3||4|
|Intel Edison port||No||Probably||Yes|
These are the main differences. There is some stuff in common that doesn't change ( endstops, free GPIO ). The v2-pro has a few extra "convenience" ports, like servo, DAC and PWM ports.
All that new hardware is cool, but what do we plan to do with it ?
First off, we don't know what *you* will do with it, most of what happened with v1 we couldn't have predicted, and the community did.
But we have a few ideas what we want to do with v2 :
Better step generation
"Smoothie" gets it's name from the fact that it was originally designed to take advantage of it's faster microcontroller to generate smoother movement.
While we have something pretty neat right now, there is still room for improvement. We want to generate the steps even more precisely, update speed every step instead of on a slower rate, and generate steps faster, which allows for using higher microstepping.
On the normal v2 board this will be achieved by using the M0 co-processor for step generation, leaving the main M4 core more power to do other stuff.
On the v2-pro this will be done by the FPGA, which is insanely good at this sort of stuff.
Both will also benefit from the M4's FPU to do all the planning and delta math for example, faster and more precisely.
This will result in more precise, faster, and smoother movement all around, while also leaving more power to do things like accessing the SD card, web-interface control, and pretty much any other feature.
Faster SD card access
One big complaint about the current Smoothieboard, is that if you want to print a file from the SD card, you first want to drop it there. And if you are using USB or Ethernet ( leaving the SD card in the Smoothieboard ), that is super slow to transfer to. This is a common problem also for other boards, and is due to using SPI to access the card.
The new M4 chip has a SDIO interface, the same thing your camera or phone uses, which is way faster, and will result in a lot of added comfort when transfering files.
This will allow you to plug USB things into smoothie, like USB Storage drives, or keyboards. There is no code for it now, but there will be hardware to make it possible.
The Intel Edison is essentially a minuscule computer. It's even smaller than the Raspberry Pi, and it plugs right into your Smoothieboard, allowing you to do things like running Octoprint, and accessing the board over WiFi.
Ok so don't get too excited about this one, we are looking into whether or not it is possible to do, working out a plan etc. It's not ready yet, but we really want to do it, and so far it looks like it's possible. But not making any promises.
If we made a board that supports 4 extruders, people would want a board that supports 5 extruders … Talking from experience.
So one solution we are looking into, is making a system that allows for as many as you want : chainable boards, that control one extruder and one hotend each.
Infinite extruders !
The system would be implemented using RS485. Each board could control a 2A stepper motor driver, would have a fan output, two thermistor inputs ( with an optional thermocouple input ), and a mosfet to control a heater.
It could be extended to support different extruder boards, laser boards, spindle boards etc …
There are several refactors of the code planned as part of the v2 upgrade. Things we have been planning for long, but didn't want to break the v1 code with. These will mostly mean saner code, less likely to break when adding things, and that will make it possible to add even more features to Smoothie.
It's getting late, I'm forgetting stuff :) There is *a lot* that is going to happen.
So where are we at now with this project ?
First, we have several prototype boards ( of the v2-pro ). There are a few problems that were identified with them, and a second prototype version is being worked on. But they are overall pretty good.
They are good enough to actually run code, so work on the v2 firmware has started.
The code is on github at https://github.com/Smoothieware/Smoothie2
It's actually going pretty well, a bit faster than was expected, but there is still a lot to do. We have the core system working, planning/step generation working in theory, the switch module ported, and several other modules are pretty close to being ported.
All in all, the big parts that are missing right now, and that will require a lot of work, are USB, Ethernet, and SD card access.
We hope to make some proto boards, ship them to friendly people, and get help from the community implementing those.
« So when is it coming out ? »
No idea. Stop asking (ノಠ益ಠ)ノ彡┻━┻
More seriously, it's going to depend a lot on how much the community helps.
Do not expect it to come out in the weeks or months to come : this is a huge project, you will be getting something really awesome when it comes out, but that means a lot of work for us and the community, and a lot of patience for those that want to try it.
« Can I help ? »
A lot of you have offered help. Thanks a lot that's awesome !
Unfortunately, until we have prototype boards to ship to people, there is not much that can be done without any hardware.
But please, if you are interested in helping, be it code, testing, documentation ( but as always, mostly code ), please email moc.liamg|ruhtra.flow#moc.liamg|ruhtra.flow and we will chat.