Kitchen-sink PCBs

I’m a new user of KiCad, and still getting to grips with the software. However, I was wondering if anyone has advice / tricks that might be useful for “kitchen sink” PCBs. I’m just completing my first design and about to get onto prototyping.

My process

When I’m developing a product, I typically etch a number of PCBs myself for testing before moving to a PCB fab. This has the benefit of allowing me to test variations of designs much more rapidly (and cheaply) than waiting on a PCB fab for each revision. Of course, I’m limited to 2-layer, but the majority of my designs are 2 layer anyway so that’s not so much of an issue.

My previous software of choice was RS DesignSpark PCB.

My process is:

  1. Design the PCB

  2. Add corner markers (in the form of a couple of through-hole pads at the corner extents of the PCB material),

  3. Print the layers (top layer mirrored) in toner on cheap inkjet photo paper, line up the prints and kapton-tape into a pocket with toner facing inward.

  4. Insert a clean double-sided board, iron (while applying lots of optimism), wash then etch.

  5. Export a DXF with the board outline and all through holes (including vias)

  6. Use an ancient 2D CAD package to offset the PCB outline by 1/2 my milling bit width.

  7. Manually drill the corner locator holes.

  8. Import the modified DXF into LazyCAM to produce G-Code to mill and drill the PCB with Mach3 and a cheap, Chinese A4 milling machine.

For the milling and drilling, I produce separate GCode files for each tool - first running the corner locator GCode to put a couple of holes in my milling bed on which I can pin the PCB for subsequent operations.

KiCad complications

Doing all this in DesignSpark was relatively straightforward, as the DXF export includes all through holes as circles, and the PCB outline as a polyline. KiCad has complicated things a little, but I believe I have a process that works now.

Exporting the PCB outline results in a collection of individual line segments as well as all TH component holes (but not vias). I’ve had to use a tool in the 2D CAD package to combine these into a polyline before I can apply the offset operation, and I need to ignore any TH holes while I’m at it.

To get all the through holes including vias, I need to export a copper layer as DXF. This results in all the tracks being exported as well - however in LazyCAM, I use “Drill Rad Circles”, so only the holes are identified as drill locations and the rest can be ignored.

I can then overlay the modified outline DXF with the copper DXF to get all the features I need into one file.

The “question” as it were.

I’m wondering if there is a far simpler way of doing all this that I’ve just not realised yet! So I’d love to see anyone’s thoughts on this. Also, I’m happy to elaborate on anything in my process if requested.

Obviously, etching your own PCBs isn’t really worth it unless you’re in a hurry (I’ve seen many posts from people who think that doing so is complete madness). But I can attest to its value in rapid prototyping when there’s a customer needing something developed in a hurry. It also cuts down substantially on duff PCBs from the PCB fab.

If you search through previous posts you will encounter some prominent KiCad users who use this production path. I think CopperCAM is one search word that will get you hits.

I’m not such a user, I’m not in that much hurry since my customer is myself and anyway I don’t make boards that often. (That’s the advantage of developing software, no smoke to release.) Also no space for all the additional equipment, and no desire to mess with chemicals either, I destroyed enough fabric with ferric chloride in my youth.

2 Likes

I’ll have to give CopperCAM a shot and see if it solves some of my more annoying issues. If it does, it’s fantastic value. Thanks for this : D

Sounds overly complicated to me.
I’d just plot top/bottom copper as .pdf
Then I’d generate Edge Cuts as a Gerber (.gbr) and modify according to mill dia.
Last, generate the .drl (drill) file. Yes, it contains vias.

CopperCAM gets you away from all the chemicals, it’s pure PCB milling/engraving.

Why would you etch a board and also mill it? Sounds like double work.

Before I wised up, I used to mill my own boards. I had created my own workflow - PCB->epsf->Adobe Illustrator to expand and outline the traces->export to PDF->PDF to HPGL->send to engraver.

I have an ancient Vision 810 engraver that I used with a pressure foot and PCB mill, and it was capable of doing SOICs, but anything much smaller than that was asking for trouble. I got sick of soldering wires in all the vias, so now I just order prototypes online, and do something else until they come. If any of my customers needed super-quick turnaround, I would have them done domestically, and make them pay a premium.

Here’s the last one I made, five years ago:

I have to agree. As the OP already has a mill/engraver, the pure mechanical approach makes more sense.
Increases the tool costs, but gets rid of the hassle with chemicals.

I re-read the OP.
Only the edge cuts are milled. Only the holes are drilled. The board is etched.

This depends on the footprints used. LQFPs ?

As noted by @jmk, I only mill the edge cuts/slots and drill the holes, but etch the copper. Indeed it is to support some pretty tiny packages (I’m currently working with SON / LQFP, 0406 caps/resistors). Soldering can be tricky, but careful application of solder paste most often avoids any issues with bridging despite the lack of a solder mask. I’ve yet to have a prototype fail to work, except where the top/bottom registration lets me down because I didn’t apply enough optimism in the ironing stage!

I did originally buy the milling machine with a view to milling entire PCBs, however noise, speed, dust and suboptimal results put me off this after my first runs. I’ll underline - it’s a cheap Chinese A4 milling machine.

Using an engraving bit, I can cut channels between tracks, but can’t remove the copper in a cost-effective manner. Using a milling bit I could remove the copper, but I can’t achieve the resolutions I need. Tool-changing is a pain and prone to mistakes, so the less of that needed the better. And finally, I could never seem to get the spindle speed optimal to achieve clean cuts in the copper - or I’d start with clean cuts and then halfway through a PCB as the engraver edge dulled, I’d get ragged edges on the copper.

I came to the conclusion my spindle speed was too slow or my feed rate was too high. I certainly never even attempted SOIC - just through-hole boards. When I discovered toner-transfer and gave that a go - even before I got a bubble etching tank - I realised the quality of the result was a massive improvement, and opened up the possibility to use even the smallest packages. The milling machine then became primarily a drilling machine, and I’ll not look back unless - possibly - I obtain a fancy PCB mill in the future… However I have also had experience with a fancy PCB mill from my time teaching/researching at the University and while the results were clean, it was slow, expensive to run and very finnicky to set up correctly (and still couldn’t handle LQFP resolutions).


This is an example of the boards I’m currently working on. In fact, that one is 35 mm diameter, and I need to get down to 30 mm, as the project specification overlooked an important detail! Sorry - the lighting is pretty poor on that one. Anyway - there is not a hope in hell I’d get my milling machine to achieve that quality!

Edit - Addendum: Etching is very little work really - clean the PCB with a bit of fine steel wool, wipe with acetone, iron between two printouts, throw in the etching tank. It all takes about 30 minutes tops with at least half of that waiting for etching to happen. Milling would take hours for one of these detailed PCBs. In fact - the hard work is, as @3Dogs pointed out, soldering wires in all the vias!

I’ve just run into my biggest problem using KiCad for my workflow - the gerbers don’t include holes in pads. So I need an alternative method of defining my registration holes.

Best approach I can work out is to create my corner locator footprints as unfilled circles on the copper layers, and arrange them to have a 0.5 mm aperture. This makes its way through to the gerber plot. Then I have to place tiny through-hole pads in the centre so that there won’t be enough toner deposited, but it still gives me a circle in the DXF plots I can use to position the drill hole.

Did you check Fiducials?
You might even define your own.

1 Like

I did not - Working in holography, I encountered fiducials as wires and crosses, so made the assumption that fiducials would take that form in KiCad too!

I guess I’ve effectively defined my own fiducial - but I’ll need to look at KiCad’s fiducials to see if they have properties that are better than my own. Thanks : )

So - Fiducials are a copper circle on the PCB. What I require is a copper ring, as I manually drill out the centre to provide my registration holes. With a ring, it’s a bit like having a centre-punched location - much easier to be sure I drill it centrally.

The position of the registration holes is drilled into the milling bed (a sheet of HDPE), and pegs positioned in that, then the PCB pushed onto the pegs.

Make a single THT pad footprint. Pick your pad diameter. Pick your hole diameter. Super easy. Been there, done that. :slightly_smiling_face:

I am getting lost in the text here. Apparently there is some wish to handle holes differently (In DXF output?) but it’s also stated holes are exported.

Did you use the Drill Marks during the export? This can be set to either None / Small / Actual Size** and it also exports the circles to DXF.

But overall I think it’s time to revise your whole workflow from getting to PCB artwork to a milled PCB. CopperCAM is already mentioned. Flatcam is an open source alternative, but it’s user interface is quite abysmal, but there are other options too.

@jmk I’m printing from Gerber, and the Gerbers don’t have pad holes exported. Perhaps there is a better way to print from KiCad.

These are the Gerbers for one side of my board. As you can see, no holes on any of the pads, except for my custom “fiducials” in the corners. I don’t believe there’s an option to export pads with through holes into the Gerber?

@paulvdh There’s no wish to handle anything differently as such - but some feature requests could arise from the discussion here. I’m more inviting input on my workflow with KiCad to see if anyone has any suggestions that would make life easier.

CopperCAM could be useful for interpreting the drill files and generating the cutout toolpath - but I need to find some time to investigate that. As for overhauling my whole workflow - I’ve arrived at my current workflow with the help of about 20 years of experimentation. It’s pretty spot-on, but just needing some small adjustments to get the most out of KiCad.

I’m not aiming to get a production line going here - just streamlining the prototyping phase. When I’m happy with my boards, it’s absolutely PCB Fab time. Life’s too short to make PCBs this way : )

Edit - just finished milling the above board (second attempt - 0.6 mm diameter vias was pushing my luck - had to go up to 0.8):

If you look around this forum for my posts you might see something useful about Bits, Feeds and Speeds… and links to my YouTube Video’s on PCB Milling, including CopperCAM (can use it FREE for limited use…)

1 Like

I’ll definitely have a look. On a tight schedule with the current project, so not delved into CopperCAM yet, aside from some cursory clicks and an error message!

I very much doubt my little milling machine is up to the task of tiny PCB manufacture though… but some way to generate the drill codes and outline milling without going through my convoluted approach would be fantastic.

My YouTube page shows a very low-cost Milling machine (about $100) that I tested many times and thus recommended to others… there are other similar machines so, most likely You CAN get the job done with your machine.

Milling everything would certainly get around the registration problem: first registering the two print outs, and then registering the whole PCB to the milling machine. Not to mention inconsistencies in dimensional stability, what with the laser printer using PID controlled scanning and paper feed! So it’s a very attractive option if it can achieve the resolution and clean edges I need.

I’ll check out your vids and see what you’ve achieved. After all, my scepticism comes from failures about 15 years back when I first tried using the milling machine for PCBs - Although it was reinforced as I watched technicians at the university try to get their £40k machine to do the job nicely!

A couple dollars for professional quality PCBs from JLC.com is too much?
I think the chemicals will cost you more.
Stop, rethink.
Don’t waste your time with junk PCBs.
Ask me how I know.

1 Like