DIY CNC Router – Post 5: Electronics and Software

This entry is part 5 of 9 in the series DIY CNC Machine
Hey. This page is more than 7 years old! The content here is probably outdated, so bear that in mind. If this post is part of a series, there may be a more recent post that supersedes this one.

Just a brief one on what I am used to control my embryonic CNC  mill (at this dev stage anyway). It’ll put some context later posts.

Arduino & CNC Shield

(fro the Protoneer website) The Protoneer CNC Shield v3.1 on an Arduino and 3# Polulu drivers. I have 4 drivers, with one in the empty one as a second driver to the x-axis.

I have a Protoneer CNC Shield (v3.00) mounted on an Arduino Uno. I am afraid to say that I think the CNC shield the Pololu A4988 stepper drivers I have are cheap(er) Chinese knockoffs. Can’t remember – bought them years ago. The CNC shield has (had, I have upgraded – see this post) 4# A4988 drivers on it to control the stepper motors for 3 axes. I am using two motors for the x-axis (to drive the bridge). The Protoneer CHC shield is designed to take the Pololus, but to be honest, I am not sure you could ever make a decent CNC mill using those drivers as there ability to run steppers with any grunt is limited.


To start I uploaded the GRBL ‘firmware’ (v0.8 to match my CNC shield?) onto the Arduino and I was using Universal G-Code Sender, a cross-platform Java program, to control things (to test motors working etc.) from a Windows laptop via USB to the Arduino.

Then I came across this CNC build on Instructables – the guy said he had been looking around for an answer to the model->gcode->sender workflow and came across EstlCam, it’s shareware but you get all the features from the get-go, just some ‘nagging delays’ until you do the right thing and buy it. It seems pretty good, I will wait to try it on my finished machine before I pay the guy, but credit to him for writing it.

EstlCam includes its own facility for uploading different firmware to the/my controller/Arduino, which is handy, I suppose. I’m assuming the developer has just used the GitHub GBRL code for the GRBL options. Dunno: haven’t tested to see if it works with the GitHub code (which would be better as it would encapsulate any updates and bug fixes.)

A Future

I did kind of like the idea of using a RaspPi to control the CNC remotely, with a little local little touch screen for fine-tuning, a bit like Octopi for the RepRap. The old Windows laptop method will do for the minute though.

Series navigation

<< DIY CNC Router – Post 4: Spindle Power WiringDIY CNC Router – Post 6: Stepper motor and driver upgrades >>