GRBL Offline Controller
Here you will find instructions on how to add an offline controller for a GRBL controlled CNC mill, laser engraver etc.
The current controller I am using is a 2418 3018 3 axis cnc controllerand it works well but it lacks any ability to do feed hold or resume and the documentation is very poor.
You can buy an off line controller but they are expensive and quite honestly I think mine is better (What do you think).
The controlller is very handy for moving the axis around to setup the origin points. It can also be used for simple milling operations..
This also works with the keyes style GRBL controller and probably many other GRBL controllers.
Parts Required
Apart from the GRBL controller the set up only uses 3 items and six wires.
They are an arduino Nano a 4*4 keypad a 20*4 LCD screen with an I2C controller on the back and 6 jumper. wires
Connecting It All Up
Here is a picture of my offline controller mounted on my home made cnc mill.
To hook it up connect the 2 wires from the GRBL controller as shown to the TXD and RXD on the Arduino controller (RXD to TXD and TXD to RXD).
These are the transmit and receive connections and that is why transmit needs to be connected to receive and visa versa for the other wire.
Keypad
The Keypad plugs directly into the arduino as shown on the picture.
From D2 to D9 on the Nano (Right hand end of the keypad lead goes to D2).
Connect the Lcd Screen
There are 4 connections on the back of the the lcd screen
VCC goes to the 5 volt connection on the arduino Nano
THe GND pin goes to the ground pin on the arduino Nano
The SDA pin goes to A4 pin on the Arduino Nano
The SCL pin goes to A5 pin on the Arduino Nano
Thats it you are all connected up.
You need to load the arduino code (Attached) and you are good to go for testing it out.
You must plug the GRBL controller and the arduino into connected usb ports for it to work (either both into the computer if you want to use the offline controller and a g code program together or into a powered USB powerpoint if you want to just use the controller by itself). (I think it is to do with the ground connection).
I use BCNC as my software controller and it works well for that.
You will quickly pick up by looking at the code that I am not a programmers arsehole so if you can improve the code please feel free to do so. There is some slight delays when you push the axis movement buttons in quick succession.