The picture below is the Sherline when I bought it in 2014. The stepper motors were on it, but without the CNC controller. The previous owner only used it with the hand wheels. The stepper motors are 6 wires Nema 23 with dual shaft (on both sides).

I've already used this kind of CNC when I was at college during my studies to engrave aluminium parts. I knew that the CNC controller for this machine was very expensive (around $1500 USD). So, I decided to find a solution for a cheap CNC controller. At first, I looked on eBay for CNC kits (+/- $150)  that work with Mach3 and required a PC with a serial port. Those kits are very interesting, but they require a PC with a serial port (dedicated desktop PC). I found that it was possible to make a USB CNC controller with an Arduino UNO, a CNC shield and GRBL. It was cheaper than the CNC kits, but it was not possible to get a remote to do some moves without a computer. After a while of thinking about it, I got an idea of building my own computer as the CNC controller with an HMI using a Raspberry Pi and a touch screen.

First of all, GRBL and the instruction to upload it to the Arduino can be found on GitHub :


  • Arduino IDE, on MAC, Windows or Linux (To upload and setup GRBL to Arduino UNO)
  • Ubuntu MATE (OS of Raspberry Pi)
  • GRBL firmware (Uploaded to Arduino UNO)
  • Universal G-Code Sender for Ubuntu

Hardwares: See components section.

This is what the panel looks like inside :

To control the CNC, we need a G-Code sender. There are some softwares that can be found on the internet, but I use Universal G-Code Sender (a Java based application). It is easy to use and it is possible to use with Linux too. With this application, it is possible to control manually (jog and Home) the CNC and to read and send G-Code. So with a touch screen, we get an HMI to control the machine instead of a USB connected computer or a simple remote (Mach3 compatible kits).

The final step is to configure the GBRL according to our machine (Mechanical parameters). The basic parameters are Step/rev., speed, acceleration, axis length, etc.

The total price for this stand alone solution is about $175. A truly cheaper way than the original controller.

After I've completed the configuration of the GRBL, I've tested my CNC witch a simple code of a circle and it worked :) 

Universal G-Code Sender

The next step is to add an axis (angular indexer)...