For the last 3 years or so (on and off), I have been working on a DIY CNC mill. Lots of people have already done this. It’s fairly common in fact. The goal for mine has been low cost, easy assembly, fairly portable, and high accuracy. You can see my flickr set here (http://www.flickr.com/photos/edwardford) or my website with videos here (http://www.edslifedaily.com/mill.html) to get an idea of size/scale and what it looks like.
After a fair amount of time designing and redesigning, I’m pretty happy with the overall layout and aesthetics of the machine, although I can already see room for improvement. However, the design is far enough along that I am finally getting around to the electronics.
On previous attempts, I purchased full blown 3 axis controllers from the likes of Xylotex and hobbycnc. These pieces of hardware worked as advertised and would be a very good choice for someone looking for a 3 axis controller, although, between $100 and $200, they are fairly expensive. This time around I decided to pick up an EasyDriver from Sparkfun. At a cost of only $15, I thought it may be worth it to experiment and determine if 3 EasyDrivers could be used to control the 3 axis’ of the mill.
After some very helpful advice from the members on Sparkfun’s forum, I managed to successfully get an EasyDriver moving a single axis of my machine around via a simple Arduino sketch. (Ramp up / ramp down, back and forth, etc, etc.) Very exciting!
So all of this is very cool stuff. It’s always amazing to see something you design in your head, physically come together and work! I’m hoping the feeling never gets old
One thing has been nagging in the back of my brain since I started using the EasyDriver with the Arduino: Would it be possible to run the mill with the EasyDrivers exclusively from an Arduino?
I am imagining a progression which involves doing the CAD/CAM process on a workstation and saving the gcode to an SD card. The SD card would then be placed into an Arduino. Once the Arduino was powered on, it would search for a specific file, and then start reading/processing the gcode. VIOLA! A completely headless operation!
The image I keep seeing is a PCB with through holes for an Arduino Pro Mini, 3 EasyDrivers (or the components), and screw terminals for a 24v power supply, and an SD card holder.
So: is this possible? From what I can surmise through my non-electrical engineering background, the current problem is the size of the code necessary to read FAT is so large that there isn’t room left for other code. However, if that’s only applicable on the ATmega168 then maybe a solution could be found via the Arduino Pro Mini's ATmega328?



