Grbl is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard.
Most open source 3D printers have Grbl in their hearts. It has been adapted for use in hundreds of projects including laser cutters, automatic hand writers, hole drillers, graffiti painters and oddball drawing machines. Due to its performance, simplicity and frugal hardware requirements Grbl has grown into a little open source phenomenon.
Full information and code can be found at https://github.com/gnea/grbl/wiki
As you can see the code will run on a low cost Arduino Uno R3 board and you can see the pin outs below.
This is great but can be a bit fiddly when trying to connect up Stepper motors, limit switches etc. So we decided to design a Breakout Board for it and make it available as a DIY solder up kit.
We have brought out the all the pins through buffer chips which are open collector outputs and also we have added a optocoupler IC for each limit switch. This allows higher voltage inductive sensors to be used, as well as micro switches.
Below shows a typical setup with three stepper motors/drivers connected and 12V inductive limit switches. You have to also supply 12-24v in.
Below shows a typical setup with three stepper motors/drivers connected and Micro Switches on the Limit Switches. You have to link 5 Volts over into the 12-24V in.
Find below some example wiring for different stepper drivers.
Also you can bring out the pins from the GRBL breakout board and interface to an existing CNC Machine controller box that uses a DB25 style breakout board. You will probably already have the Limit Switches wired in to the breakout with level conversions already done. If this is the case then Link 5 volts into the 12-24 Volts in line to power the on-board optocouplers.
Here is a video showing the breakout board connected to an existing CNC Machine.
Grbl Breakout Kit for self assembly
Here is a picture of the kit and PCB.
Programming UNO R3 with GRBL Firmware
There are a few different ways to program the Uno R3 and if you want to get up and running quickly then simply download the latest .HEX code from https://github.com/gnea/grbl/releases and use Xloader to program it up. Xloader can be downloaded from here http://russemotto.com/xloader/
Grbl comes with an array of options that be configured over the serial port and also the source code is available with other options that can be configured, compiled and then programmed. Check out the official Wiki for more info, as no point repeating it on this page. https://github.com/gnea/grbl/wiki
Configuring Grbl to suit your machine.
There are a few settings you need to configure after programming grbl into your controller, these include bed max travel, feed rates, steps/mm etc etc. Again check out the grbl Wiki https://github.com/gnea/grbl/wiki for full details.
You can do these manually by communicating with grbl using a terminal emulator such as HyperTerminal or there are various applications around for different platforms.
For Windows 10 we have knocked up a quick application that can be downloaded from the Windows App Store. It allows you to connect to your controlling and read out the configuration. You can then alter the values to suit your machine and write them back in. Also it allows other commands to be sent and the reply to be displayed in the Read Data box. You can send test Gcode commands and request status to see the results.
Software for sending Gcode to Grbl.
You are spoit for choice when it comes to software to send Gcode to Grbl and your best place is to google it.
I personally like Candle that can be downloaded here https://github.com/Denvi/Candle