PCB Manufacture

From HacDC Wiki

Precisely manufacturing circuit boards with the CNC Mill can be high-quality, cheap, and fast.


The ideal tool for the artwork is probably gEDA. Start by making a schematic, convert it to a pcb file, export that as a gerber file, and use pcb2gcode to convert to gcode.


Place the following lines (or similar) into a file called millproject in the same folder as the gerber files. Then execute pcb2gcode in that folder.

# You may want to uncomment and change those in local project files

# parameters for isolation routing / engraving / etching
offset=0.005		#10mil isolator

# drilling parameters

The front.ngc produced can be loaded into the EMC2 software on the CNC Mill's controlling computer. From there, the entire board can be manufactured automatically.


Newer versions of gEDA offer direct pcb file to gcode conversion. This is untested, and does not seem to offer as much control over the results as pcb2gcode.

All areas around the copper traces will need to be grounded, and wires will need to be soldered to power, input, and output connections. Be sure to include enough space in your design to accommodate this.



Touch off the Z axis to 0.0 while it is above the milling surface. Then execute your NGC file, and carefully observe the results step by step. Practicing on air this way greatly reduces the risk of making coasters or damaging the mill.

Copper Clad Board

Ideally, we are milling isolation paths between PCB traces on a copper clad board. These boards can be obtained at RadioShack, and other places.

Correct Bit

The narrowest possible spade bit should be used for milling high-quality circuit boards.

Low quality boards may get away with wider spade bits.

Multiple Passes

While it is possible to mill a circuit board correctly the first time, doing so typically produces a low-quality board with wide isolation paths, and small (or completely removed) copper traces. For surface mount devices (especially chips), or high performance analog circuitry, higher quality is required.

The best approach involves making multiple passes.

First touch off the mill's Z axis to 0.0 when it is barely touching the copper clad board. Set the maximum feed rate (in EMC2) to 3in/min. Now execute a PCB milling NCG script. After milling a pass at this depth, all traces should be clearly visible but not electrically isolated.

With the first milling pass complete, remove the maximum feed rate restriction, and execute the following gcode commands.

g0 x0 y0 z0.25
g0 z-0.001

Now touch off the mill's Z axis to 0.0. Executing the NGC script again will repeat the PCB milling at a slightly lower depth.

Finally, blow/brush all dust off the PCB, and test traces for electrical isolation with an continuity tester. If none of the traces short circuit, switch to an ohm meter, and make sure all of the traces are completely open circuits. It is not uncommon to find multi-megaohm connections between traces.

If the board is not electrically isolated, mill another pass, going slightly deeper. At 6in/minute, this should not take long. Once the board is electrically isolated, mill one more pass to ensure long-term reliability and minimize soldering issues.

Finishing Off

Large portions of electrically unused copper will surround the desired copper traces. These should be given a low impedance (fat wire, solder blob, etc) connection to ground.

Not only will this maintain the performance of some high-speed amplifiers, it will help shield the circuit from noise.


Some high-quality board have already been manufactured at HacDC, and will be added to this wiki as examples.