Grbl is a free, open source, high performance CNC milling controller written in optimized C that will run on a straight Arduino.
Grbl is ready for light duty production. We use it for all our milling here at Dank running it from our laptops using a simple console script (included) to stream the G-code. It is written in optimized C utilizing all the clever features of the Atmega168*/328-chips to achieve precise timing and asynchronous operation. It is able to maintain more than 30kHz step rate and delivers a clean, jitter free stream of control pulses.
The G-code interpreter impements a subset of the rs274/ngc standard and is tested with the output of a number of CAM-tools with no issues. Linear, circular and helical motion are all fully supported.
Most configuration options can be set at runtime and is saved in eeprom between sessions and even retained between different versions of Grbl as you upgrade the firmware.
The most requested feature that we really wanted to have was a nice and advanced look-ahead accelleration manager. Some users were not able to run their CNCs at full speed without some kind of easing. It proved complicated to get this feature just the way we wanted it (simple yet optimal) so it took more than a year, but finally I think we got it: Grbl’s full acceleration-management with look ahead planner will ease into the fastest feed rates and brake (just enough) before sharp corners for fast yet jerk free operation.
At this time we have no nice desktop client for Grbl. If you want one anytime soon, you’ll probably have to contribute one yourself. With Grbl you’ll have to be comfortable in a terminal window as all our client tools are simple (yet nice) text based scripts. (We do try to stay compatible with the RepRap software, so you might get stuff like ReplicatorG to control it, but last time we tried it was so buggy on the Mac that we gave up.)
We have limited g-code-support by design. Grbl support all the common operations encountered in output from CAM-tools, but leave human g-coders frustrated. No variables, no tool offsets, no functions, no arithmetic and no control structures. Just the basic machine operations. We have yet to find a CAM-generated file that failed to run, though.
Grbl is for three axis machines. No rotation axes – just x, y and z.
End stops, emergency stop, spindle control, autodetection of client baud-rate, support for alphanumeric read-outs and headless mode via SD-card.
_*) Grbl 0.6 fits in the limited code space of the atmega168 only by dropping the circle/arc code. 168-people who needs their circles please use version 0.51 which has no acceleration management, yet is still maintained in this branch
Grbl is licenced under the GNU General Public License and developed at Dank by Simen Svale Skogsrud.