Eagle and PCB-GCODE
Traditionally, there are two ways of hobbyists making custom PCBs:
- Using toner transfer and chemical etchant – can be tricky to get the right materials, and the chemicals are nasty and messy
- Paying a service in Taobao – fairly inexpensive, but usually have to wait a long time, like 5-7 days in China, but It will 2-3 week worldwide.
Milling them on a CNC is a quick way with a different set of pros and cons:
The good:
- Quick turnaround - don’t have to wait days or weeks for it to ship
- The mill does the drilling
- No messy acid to deal with
- Once you have good settings, the process is easily repeatable
- Two sided boards are possibly slightly easier than with etched boards
- Inexpensive - you’re just paying for blank circuit boards which are a couple bucks each
The not so good:
- Bits and end mills can be expensive and they wear out.
- Bits of copper clad fiberglass get all over the place
- Milling a board can take a while
- Board stock and mill bed flatness will present a challenge
- Isolation size is a function of bit size and mill accuracy. Check your design carefully before you plan on using fancy SMT parts with densely packed pins.
How I’ve Made Things Work:
I’m a CNC newb and an electrical engineering disaster so my milling process and the following outline use what I’ve determined to be the most common (though not necessarily the best) tools.
Those tools are Eagle CAD, pcb-gcode, Mach 3 CNC, 30deg V Shaped Engraving Bit.
CNC Machine was an DIY machine, the xyz of the machine 400300150mm, the spindle speed can reach 24000rpm.

I ordered 20 V-shaped engraving bit, I like the dual blade V shape engraving bit, with 30 degree,and 0.2mm of the pin head. With the speed over 10000rpm, it can cut pcb easily.
V-engravers not only have different tip sizes, but different angles. The larger the angle, the less it widens as depth increases.
0.2 mm, 30 deg V-engraver, 3.175mm shaft. I also got 0.2mm, 20 deg ,and 40 deg V-engraver. Endmills can go down to as low as 0.3mm, which is very expensive and prone to break and the speed may be very limited.

Board Parameters:
1oz copper is “standard” PCB. That’s 1.4mil of thickness. If using PCB Leveler, 0.1mm is plenty of cutting depth below the surface.
FR4 thickness is 0.060” for standard PCB. Thicknesses of 0.031”, 0.017”, and 0.010” are also common. Thinner boards are lighter and fit into tighter spaces. In some cases, the flexibility of a thinner board may create a risk of cracking components off it when the board bends.
4”x6” 0.060” (100mm x 150mm x 1.5mm) PCB is a good general-purpose size, and fits on the Taig easily. You can get thicker copper, 2, 3, even 4 oz is available, but these are where exceptionally low electrical or thermal resistance is needed. In the case of thermal resistance, note that it has no greater surface area, but 1oz copper foil can only conduct heat away from a soldered thermal pad for about 1/2”, past that, more copper may exist, but the lateral thermal resistance is so high that it contributes to improved heat dissipation only marginally. If the thermal pad is only 1/2” past the component, then a heavier copper won’t improve things, but if a very large board area is used as a thermal pad, then heavier copper can be much better. In most cases though, for higher dissipation, heatsinks are used.
FR1 is much cheaper than FR4 and easier to be milling. In this lesson I used FR4 double side and FR1 one side to do the test.
Exporting an Eagle board to GCode:
http://pcbgcode.org/read.php?12,361
From the eagle control pannel, right click the “pcb-gcode-setup” and select “run in pcb editor”
Generation Options:
Top side:
- Generate top outlines: YES
- Generate Top Drills: YES
- Bottom Side:
- Generate Bottom Outlines: YES
- Generate Bottom Drills: YES (although we generally don’t use it)
- Mirror: NO!!
Board:
- Show Preview: NO
- Generate Milling: YES, Depth: -1.8mm (for 0.060” PCB)
- Generate Text: NO (you can if you want, if your board doesn’t have a lot of text)
- Spot Drill Holes: NO
Isolation: (this is where it may require tweaking, esp for V-engravers)
- Default: 0.0254mm (the program starts by moving out 0.5* “Etching Tool Size” from the traces, PLUS this number. This allows you to add to the tool radius to account for the wider path of a V-engraver as it cuts deeper and thus wider, but really doesn’t make much sense instead of adding that to Etching Tool Size, they both do basically the same thing)
- Maximum: 0.508 (how much clearance we cut before stopping. PCB code will NOT wipe all the copper out by default, it’s a waste of time. Takes Etching Tool Size into account. Steps are always full Step Size, so the last step will generally create more clearance at the end)
- Step Size: 0.127mm (after the first pass, how far out is the next. Can potentially be as much as Etching Tool Size, but usually “less than half” is a good idea)
Etching Tool Size: 0.2mm (tip size)
Machine:
- Z High: 12.7mm (position for rapid travel)
- Z-up: 2.54mm (where to slow down to plunge-cutting speed)
- Z-down: -0.1mm (engraving depth, foil is only 0.035mm itself, but board warpage makes this unpredictable)
- Drill Depth: -2.2mm (to drill all the way through 0.060” PCB)
- Drill Dwell: 0.25 sec (how long to wait before pulling back out).
- Tool Change: X0,Y0, Z25.4mm (where to lift the head for manual bit changes)
Units: Millimeters
- Spindle Spin Up Time: 0.5sec
GCode Style
- Mach3-EMC for windows Profile
Feedrates:
- The feedrate guideline charts totally break down with tiny cutters. The spindle of CNC at high speed is 15,000 RPM, I set all the speed to 254mm/min, and it works good.
Machine Calibrations
- It’s very importand to make the single-side pcb board as flat as possible. I use a Electronic digital indicator digital indicator scale measurement tools,from Masterproof, which can make sure the platform is very flat.

And using 4 blots the fasten the PCB board on the CNC platform.
Milling and Cutting
- When prepare the pcb board, add layer 46 milling with the border of the PCB board. Then we will have two top-layer cnc-gcode. One is for etching and one is for milling. “fabisp.top.etch.tap” is for the etching and “fabisp.top.mill.tap” is for the cutting.
First load the fabisp.top.etch.tap file and do the etching and after that change the tool and load the fabisp.top.mill.tap to seperate the pcb from the whole board.
The most important thing when do the etching is the set the z height. The height of the level touch is 8.85mm. Usually we need add 0.1mm to that, to adjust the Z-level to make it perfect on the PCB board. That what I learn from the learning progress.

Programming the Board
KiCad pcb2gcode
1 | sudo add-apt-repository --yes ppa:js-reynaud/kicad-4 sudo apt-get update sudo apt-get install kicad |
Hit http://security.ubuntu.com wily-security/universe Translation-en
Fetched 543 B in 7s (68 B/s)
Reading package lists… Done
W: GPG error: http://archive.ubuntukylin.com:10006 trusty Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY D259B7555E1D3C58
When do the software update, prompt GPG error NO_PUBKEY, there is a common methods to solve this problem.1
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D259B7555E1D3C58
Conclusion
All the Eagle files and gcode files can be downloaded here :