CNC Machine

My CNC machine is based on the excellent Joe’s 2006 design.  The overall width was narrowed about 6 inches so it fits better in my workshop.  To compensate for the Y dimension being narrower, the Z carriage width was reduced by about an inch and a half.  So the overall usable work area is still very good, measuring about 47x20x6 inches.  The sources for parts include:

Completed Machine

Here are a couple photos of the completed machine in action. 


The cabinet beneath the CNC machine has drawers for storage.  The electronics are mounted in the leftmost bay on a sliding drawer for easy access.  A couple fans draw air through a small furnace filter at the back of the cabinet and through the electronics bay to keep things cool.  The stepper drives can generate a bit of heat when used heavily.  The whole thing is mounted on casters so the machine can be pulled away from the wall in use.

X and Y Axis Torsion Boxes

Below are views of the various torsion boxes used to construct the machine.  For the Y axis, I modified the Joe’s 2006 design a bit – the y pipes sit in the grooves in the top and bottom of the box instead of being cantilevered out as in the original design.  The Y axis has a box that mounts beneath the large X axis box, and the X leadscrew goes through the small hole in the middle, with a large hole for access.  For the X axis box, there are a lot of parts shown laid out on the workbench and ready to assemble.  The interior members are 1/2″ MDF.  The sides and top and bottom skins are 3/4″ thick.  I used lots of clamps to hold everything straight while the glue set!

Z Axis Carriage

Shown below are the parts for the Z axis carriage laid out on the bench, an assembled view, and a picture of the unit after being painted.  I used a mini-roller and brush to apply the paint.   The paint is Behr latex semi-gloss from Home Depot.  The color is number 770E-3 Pewter Mug.  The carriage width was reduced by about one and a half inches to help compensate for my Y dimension being narrower than the original Joe’s 2006 design.

End Plates and Gantry Sides

Shown below are the end plates for the machine.  The holes in the center are for the X axis leadscrew.  The four holes at the end of each plate is where the X axis pipes fit.  It took a lot of precise measuring and layout to get everything just right!  The right and left gantry sides are also shown below, and a closeup showing the Y axis pipe and leadscrew holes.  This is the one place I screwed up the worst while making the parts for the machine.  The left side has grooves that hold the X axis trucks in place – I initially cut the grooves about 3 inches too high.  You can see the correct grooves marked in pencil in the second photo.  To fix it I just filled in the wrong grooves with spackle, sanded it smooth and after painting you can barely notice that they are there.

Plastic Parts and Trucks

The Joe’s 2006 design calls for several of the adjustment and mounting parts to be made from 3/4″ thick High Density Polyethylene (HDPE), which I got from Enco.  HDPE machines extremely well with standard woodcutting tools – I love working with this stuff! The trucks are the ball bearing slides that ride against the pipes to give the linear motion to the machine.  Each is made from 1-1/4″ angle aluminum with 5/16″ bolts and nuts and ball bearings.

Control Panel

The control panel provides switches to turn on 12V power for the USB controller, 48V power for the motor drivers, 120VAC power for the laptop computer power supply, and 12V power for the spindle illumination.  There’s also an emergency stop (e-stop) switch on the top panel.  The bottom part of the panel has a reset switch for the USB controller, a jack to connect the jog pendant, and a jack for the movable z-axis tool sensor.  I was very careful to separate and properly insulate and protect the AC wires from the control lines.  The end view of the machine shows the X-axis stepper motor, electronics bay exhaust fans, and the control panel connections.  The USB controller mounts on the inside wall of the bay such that the USB connector pokes out the hole just below the control panel where the white USB cord is plugged in.

Controller Board

My control hardware is based on the Mark 1 USB Controller design from Planet CNC.   Unfortunately, they consider the Mark 1 hardware design obsolete at this point, but their software still works with it.  You can’t build these any more since they require a custom programmed PIC which was only available through them (the security fuses on the PIC were set, so you can’t copy or burn it yourself) .  The circuit is made on perfboard and mounted in a steel case to provide shielding. 

Controller Schematics

Below is the schematic of my controller hardware based on the Mark 1 USB Controller design from Planet CNC.  My implementation of the electronics adds some optoisolation and limit switch buffering.  The second schematic is the jog pendant circuit.  It’s pretty simple – just six switches and a potentiometer in a box.  The last schematic is the overall system diagram for the CNC machine.  The controller is abstracted in the large box in the middle of the diagram, and shows the interconnections to the limit switches, control panel, jog controller, and motor drivers.

Electronics Bay and Jog Pendant

All the electronics are housed in a bay in the base of the CNC machine.  Stepper motors create a rather noisy electrical environment so I sprinkled some clamp-on RF chokes here and there and added EMI filters to the AC inputs for the power supplies. Don’t have any problems with electrical interference now.  The Jog Pendant is a handheld controller that’s very handy to position the router to the start position for a machining operation.  There’s a speed control to regulate how fast the motors move, set it to slow speed and you can make really fine adjustments.  One nice feature of the Planet CNC setup is that the jog controller works to move the machine even when the computer is not hooked up.  

Motor Mounts

The X and Z axis motors are mounted using HDPE standoffs and Dumpster CNC couplings.  I reduced the HDPE standoff length a bit from the original Joe’s design to conserve space.  To help save on width, I mounted the Y axis stepper motor inboard of the left gantry side and connected it to the leadscrew using XL pulleys and belt.


The three leadnuts are also from Dumpster CNC.  The only modifications needed were to drill them to make screw mounting holes.  First picture is the X axis leadnut and the second picture is the Y axis.  Of course there’s a Z axis leadnut too, but it’s behind the router mounting plate and I forgot to take a picture of it before I assembled the unit.

Limit Switches

Below you can see one of the Y axis limit switches and the back of the Z carriage.  The termination blocks are used to make the connections between the motors and wires going back to the drives. Also shown is one of the X axis limit switches mounted on the inside of the adjustment box.  The other one is a mirror image on the other side of the gantry.  I decided to mount them this way to put them in a place where they won’t be damaged.

Dust Hood and Work Light

I made a dust hood from a piece of 3/4″ MDF and a wooden floor sweep from Home Depot.  It attaches magnetically to the part fixed on the Z axis carriage. The work light is comprised of 6 white LEDs mounted into the fixed portion of the dust hood.

Comments are closed.