This page is not yet finished.
A cheap & easy to build CNC Machine for drilling PCBs
After etching my first Printed Circuit Board (PCB), it immediately became clear that drilling the holes was going to be a problem. Not only are there a lot of holes in most PCBs, but the drill bits are so small that any horizontal movement results in the bit breaking. Although buying a drill press would solve the bit-breaking problem, drilling all those holes will still take a tremendous amount of time. The alternative is a CNC Machine.
Commercial CNC machines cost thousands of dollars, but with effort you can build your own for much less. Thankfully, there are many well-documented hobby CNC projects on the internet to help us through this process. A great source of inspiration for me was "Tom's Easy to build Desktop CNC Mill:"
And here are a few more CNC Machine designs that stood out:
- lirtex.com's CNC
- wardscorner.net's machine
- Another instructable tutorial
- Engadget's three part article: Part 1, Part 2, Part 3.
I have found from experience that starting without plans generally results in great tragedy (at least when I build things). I therefore decided to design the machine in Autodesk Inventor, in order to have detailed building plans to follow. A few pictures of my design are below:
I did not have any experience with Inventor, so I had to teach myself. I didn't go into extreme detail with the Inventor design, like putting every nut and bolt into the assembly, but I was able to see what the machine would end up looking like and also get dimensions of parts from it - which was a great help when I started building it.
To make the seemingly overwhealming task of designing and building a CNC machine more managable, I broke the project up into sub-projects:
- Design the machine.
- Sketch the basic design on paper.
- Model the full machine in Inventor.
- Purchase the necessary parts
- Buy parts using dimensions from Inventor – allowing for a margin of error.
- Parts for the frame include 2x4's, bolts, nuts, washers, screws, skate bearings, and acrylic (plexiglass).
- Build the machine
- Start by building the frame out of 2x4's.
- Put the aluminum trim channels on.
- Build the X & Y axis platforms out of plexiglass (bottom & top decks).
- Attach bearings to acrylic platforms so they slide securely along trim channels.
- Etc..
The CNC machine
- This board provides power to the motors and, when told to do so buy the microcontroller, turns the motors in either direction.
- Details for the stepper motor controller are on this page.
The stepper motor controller
- My CNC control system is designed like this: User -> PC -> Microcontroller -> Stepper Motor Controller -> Motors.
- The PC program (below) sends the hole locations and system commands to the microcontroller, which in turn sends the step signals to the stepper motor controller.
- Details for the microcontroller board are on this page.
The microcontroller
- PC Program
- The PC program parses an excellon drill file that the user loads for hole coordinates.
- After calibration (including adjusting coordinates for board misalignment) the user can start drilling.
- The PC program is like the "host," controlling everything, sending commands to the microcontroller.
- More information about the PC program is available here.
- Microcontroller firmware
- The microcontroller is connected to the PC over USB and does only what the PC program tells it to.
- When hole coordinates are received, step signals are sent to the motors until the drill location is reached, at which point the drill routine is started.
- When the hole is drilled, the microcontroller lets the PC program know it's ready for the next hole.
- The firmware (for a PIC18F4550) can be found on the downloads page.
The software
Here are some pictures of the finished machine:
And a video of a test run:



