Saturday, May 23, 2015

PVC Pipe Based CNC Mill using Arduino

What hobbyist doesn't want a CNC machine?  But realistically, how many can really justify the need for one?  Not me, but we did want to learn about CNC machines and experiment with GCODE.  If you are wanting to do the same; keep reading...

We had an Arduino UNO sitting around doing nothing as well as some stepper motors we rescued out of an old laser jet printer.  That's a good start for the project, but some hardware/software to drive and control those stepper motors was still needed.  Oh, and some PVC pipe and connecting joints to construct a mill platform, don't forget that.
-----
After a bit of searching we decided to use the Protoneer CNC Shield for Arduino.  You can get this shield for about $20US.  It comes completely unassembled, but a soldering iron and an hour or so of time fixes that.

Before assembly it looks like a bag of parts.  After assembly it looks like this:
 -----
The Protoneer CNC Shield plugs right into the Arduino UNO just like any other shield.  Of course, after you get it assembled you will want to test it.  But wait, first you will need some software to communicate with the Arduino and drive the Protoneer CNC Shield.  

The Protoneer CNC Shield is 100% GRBL compatible.  This is great because it provides you with several software options for CNC control.  I wanted something that was 1) free and 2) could be used with Windows or LINUX.  I experimented with SketchUp, f-engrave, and GCODESENDER.  In the end, I seemed to prefer GCODESENDER the best.  YMMV.
-----
Here is my first test run controlling the X and Y axis steppers.  Ahhhh, the sweet sound of progress:

Then added the Z axis:
-----
Before constructing the PVC "mill" I tested the rig on a Etch-a-Sketch.  Seems to work well enough to continue.
-----
Next, thanks to Home Depot and their endless assortment of PVC accessories, the rig below was constructed.  I did not use any PVC glue and the slide rails for the milling tray were held on with P-clamps and larger diameter PVC 'sleeves' for bushing/linear bearing.  

-----
Here are a few first run tests of the rig in motion:

-----
Example of simple text:

-----
A bit more elaborate example:
-----
The rig works.  Could you create an elaborate 3D design with it?  Heck no, but that wasn't the point.  It was; however, a great learning experience.  With some effort, anyone could take this concept and improve it to something more useful if they desired.  If you choose to take that path, drop us a line to let us know how it turned out.  Thanks!
-----