Milling PCB with CNC

There are a couple of ways to create your own PCB (Printed Circuit Board) that I am aware of. Here I would like to present a high-level overview of some possible approaches

It all starts with your layout/design.
I am using Autodesk EAGLE for this. BTW, free to use -with a size restriction on the board.

After designing it in a CAD software, you can send it off to a PCB factory in China.
Advantages: Professional, mass production, can create more than two layers in the PCB
Disadvantages: Delivery times, need a perfect design.

A second approach is to Etch the board yourself using chemicals
Advantages: cheap, but any fun?
Disadvantages:Time consuming, messy, trial and error, limited production

A third approach is to use your own CNC machine to carve it.
Advantages: Really fun, rewarding, once you have it down, the machine is working for you.
Disadvantages: Trial and error, limited production

Since I now own a CNC, I wanted to give number 3 a go.
Here is my Schematics in Autodesk EAGLE

EAGLE Schematics
Milling in progress (testboard with several failures)

EAGLE can export Gerber files per out of the box. This is the standard filetype for sending files to professional PCB production.

As I am currently using Estlcam as a controller software, I need the output file to be G-Code. Luckily there is a PCB-Gcode ULP (User-Language-Program) created for EAGLE. This ULP (created in Processing BTW) exports your G-Code with your desired settings in regards to cutting depth, isolation size and layers and so on.

It’s possible to print 2 layers on the PCB, front and back side. However I havent tried this yet. You will need to run an automated touch-off any minor offsets created when moving the board gets written to the g-code and accounted for.
Estlcam has support for this!

Crucial points:

  • Make sure your copper clad is well secured to the wasteboard. I am using doublesided tape on top of a 5mm piece of foam plate.
  • You will need a probe to scan the surface area of the board. I am running a simple wire from ground to SCL pin on my Arduino CNC shield
  • Use your milling software to run a surface scan of the PCB. The PCB is not straigh even though it looks like it!
  • Use a 0,1mm tip 60degree V-bit or even pointier to achieve the wanted isolation. The deeper you go with a V-bit the bigger the isolation groove gets.
  • Run spindle at around 20.000 RPM, go slow feedrate, about 200mm per cm
  • Define 0.2mm cutting depth and one pass in PCB G-code setup.
  • If you do a through-hole board, to cut the holes use 0,8mm straight drill bit. The g-code for drill holes is created separately, and is run seaparately.

More articles