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
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.
Software
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.