1. Using toner transfer and chemical etchant -- can be tricky to get the right materials, and the chemicals are nasty and messy
2. Paying a service like BatchPCB or OshPark -- fairly inexpensive, but usually have to wait a long time, like two or three weeks.
Milling them on a CNC is a quick way with a different set of pros and cons:
* 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, pcb-probe, Mach 3 CNC, Zen Toolworks 30deg V Shaped Engraving Bit, random surplus carbide PCB drill bits and, of course, Guido for doing the milling. If you want to get those tools, see the links below.
The only tricky part is related to the V shaped bit. Obviously, you will want to etch the smallest, cleanest line that you can in order to mount all of those tiny surface mount LEDs that you already bought. Unfortunately, the V shape of the bit will change the width of your cut depending on how deep you cut into the board. Since your copper clad stock isn't perfectly flat you are challenged to pick a milling depth that will cut clean traces across the entire board.
I've had some success with flattening my copper clad as much as I can by using a metal straight edge to check flatness and then bending the board by hand to try to make it flatter. With the board then as close to flat as I can make it, I would then test at what depth I can cleanly etch a line on all four areas of the board that surround the area that I plan to etch. The results were always usable but I sometimes found myself rebuilding missing traces with bits of jumper wire.
A better way seems to be to use some G-Code trickery to probe the height of the board at key points on the surface and then perturb the height of the vertices accordingly while milling. It sounds both awesome and complicated but luckily for you there is already a program that does all of the work so you can just deal with the awesome part and follow along with my directions.
Submitted by Ace Monster Toys Hackerspace in Oakland, CA for the Instructables Sponsorship Program.
Check out the original version on our wiki -- it's somewhat specific to our particular machine, I've tried to write this instructable to be more generic and widely applicable.