3 Axis CNC Router

I recognize that for many this type of project seems quite familiar given the availability of off the shelf CNC machines, but for it's time, this was quite rare.

This was the final project for my robotics independent study at MSU during my junior undergraduate year ('07). This project was custom made in my basement and took every solid weekend for about three months. The machine has an accuracy of about .005" (after belt play and machining resolution). I am using a program called Mach3 that takes GCode generated from CAM software to control the machine in windows.

These are the front and back views of the machine. The steppers are 6-wire NEMA 23 Vexta's. All the hardware was purchased from SDP-SI and everything else on eBay. All the aluminum is black-anodized aircraft grade (not sure which one) either 1/4" or 3/8". I got the aluminum (about 100 pounds of it) from a pill-capsule press that was being thrown away at MSU.

Some modifications that came later on were belt tensioning assemblies to remove backlash on each of the axes and a nylon bristle surround for the router cutting area that helped enclose dust particles for the vacuum to remove.

I used three Unipolar stepper drivers that were DIY kits I purchased online. The board at the top center is a PCB I made that utilizes three LM338T IC's, which function as current limiters of the stepper drivers. There is also a voltage regulator I made along with a couple large filter capacitors. Everything is powered by a 24V DC chopper power supply mounted on the outside of the unit. I could have just bought some H-Bridge stepper driver IC's that do all of the above and are easy to hook up, but this project was more for learning about the electronic fundamentals of CNC.


I finally got around to making my own PCB's via milling. No more etchant! I designed the PCB in Eagle Cad for Linux, ran the gcode plugin, imported the gcode into Mach3, and made my first milled PCB. Sounds easy, but it wasn't. I wasted about about two blank PCB's before I figured out the right bit (carbide 45 degree v-bit) to use as well as finding the correct settings for generating the gcode. I will eventually post the detailed process. The PCB blanks are just glued down to an aluminum plate with CA glue and then removed with acetone after milling. Very easy.

The picture below show a simple break-out board for two LTC1257 12-bit DAC's wired for serial operation. This board was a challenge to mill due to the accuracy of my machine and the 20mil traces on this board.