Smoothieware has advanced motion control where the planning acceleration forms a sine, rather than a sawtooth. They accelerate/decelerate more gently, giving a ‘smooth’ operation, hence the name.
It gives smooth, jerk-free motion and higher speeds, due to the advanced motion planning.
So, in layman’s terms, it starts off slower, builds speed longer, so higher speeds possible, and decelerates in a sine, giving you smoother, better motion. It has a 120MHz processor with a lot of RAM, so has longer look-ahead and thus, can motion-plan further out.
Grbl, by contrast has a very jerky acceleration - stop to full speed is linear. this makes for a lot of wasted energy and is hard on machinery.
Think of how a rally driver takes a series of slippery bends vs a teenager in an overpowered car Or in my case, and experience, how an advanced motorcyclist moves through a set of bends. The novice driver tends to go full-throttle and hard braking to try and gain overall speed, whereas being gentle on the throttle and brakes results in faster progression, with less loss of traction, more safely, with less wear and tear on components.
It’s noticeable, by ear alone, how much smoother the smoothieboard is. You can get higher speeds without missing steps, where the same settings in grbl would result in a lot of stutter.
The features aren’t so much in the controlling of the two axes as they are in living with the machine - SD card for updating firmware on the fly without needing to re-flash the board. Onboard RAM to hold the current firmware, updated by having the right filename on the SD and powering on, after which a successful update will change the name from firmware.bin to firmware.cur
Altering configuration is done via a text file, config.txt. Configuration can be permanently changed on the fly. No need to connect to a PC and flash using an IDE, for example.
The command structure is more intuitive, in my opinion, to that of grbl. Easier to read, easier to effect changes. Which is great when it comes to tuning.
an example of a command structure in config.txt:
Laser module configuration
laser_module_enable true # Whether to activate the laser module at all. All configuration is
# ignored if false.
laser_module_pwm_pin 2.5 # this pin will be PWMed to control the laser. Only P2.0 - P2.5
# can be used since laser requires hardware PWM
#laser_module_maximum_power 0.8 # this is the maximum duty cycle that will be applied to the laser
#laser_module_minimum_power 0.0 # this duty cycle will be used for travel moves to keep the laser
# active without actually burning
#laser_module_pwm_period 20 # this sets the pwm frequency as the period in microseconds
As you can see, plain-english commands, with decent comments. And you can tune your output so you won’t ever overdrive your K40 if you don’t want to.
Not so useful for lasers is the sheer number of pins and the ability to change their function - for example, to invert a pin, put a ! in front of the definition.
You can ONLY get PWM on pins 2.0 to 2.5, 1.18, 1.20, 1.21, 1.23, 1.24, 1.26, 3.25 and 3.26
Any pin can perform any function - other than PWM, which is limited to those above. So very hackable.
Genuine boards come with great power options, including a bunch of powerful FETs to control things like hotends and heated beds on 3D printers.
And the most convenient option, for me, is ethernet on-board. Connect up the card to ethernet and the contents of the SD card becomes visible as a shared network disk, the web interface comes alive, and You have options like SFTP, telnet, http to talk to the device.
It also interfaces with things like pronterface, Plan 9 networking, etc. (Plan 9 from Bell Labs - Wikipedia) and supports composite USB Mass Storage + Serial interface to the host - very handy.
so, you can fire up the board, and set up a hot-drop-folder where you can drop Gcode and it will be available to the firmware, should you desire. Less so for lasers, but if you build a pick-and-place machine, for example, can be a great option.
For laser, just use the built-in webserver and send it your file. You can hack the web server to display your own custom pages, easily.
Overall, a very capable board, very hackable, lots of options for connectivity and control.
They have just released their kickstarter for Smoothie 2 - worth a look. https://www.kickstarter.com/projects/arthurwolf/smoothieboard-v2
Thomas Sanladerer has done a good review, obviously geared towards his environment of 3D printing, but goes over a lot of detail