Two sided footprints cause net problems when soldered only one side

Hello, I just made my first cnc engraved prototype with KiCad. The board doesn’t work: I didn’t notice the issue before but almost all footprint pads are two sided. However I solder only on the back side(with the exception of vias). So when I generate areas such as ground planes, KiCad assumes that the component’s ground pins are indeed connected to the ground plane since the top ground pads are indeed connected. However as I do not solder on the top layer, many times the component does not result connected to ground. So KiCad cannot give me reliable debug informations.

To resolve I tried changing a few pads to NPTH and assigning the pad only to the back side. This is exactly what I am searching for. However in KiCad I can not wire the back pad to the rest of the circuit, KiCad tells me I cannot wire from a NPTH. Also there i get association errors in scheme parity.

How would you resolve this issue?
Thank you

I order my PCBs from China. They cost around 5£$€ and I may get them assembled too. Assembly costs vary, some places ask some money, some don’t.

Thank you, I know this possibility, however this takes some time to get the boards and as I have a cnc engraver it’s faster for me(takes me a few hours for gcode and actual engraving) to prototype by my own just to test the circuit. I will later order more professional boards in case the circuit is ok.

@BlackCoffee also does quite a lot of PCB milling and may have a better answer as I do.

PCB’s is not always about the costs. A CNC machine for example enables rapid evaluation of antenna designs, where multiple prototypes can be made in a day.

NPTH pads are not for electrical connections.
I have not experimented much with this, but I do know you can use multiple pads with the same pad number. In this case KiCad assumes that all pads with the same pad number (within a footprint) have to be connected to each other.

It may work if you set the Copper Layers of a Through-Hole pad to Connected layers only or to: None, and then combine it with an SMD pad on your preferred layer.

Another option is some discipline. If you know you only solder the bottom layer, then only connect tracks to the bottom layer.

Other options are to get into a habit of soldering any THT pins on the bottom that appear to be connected to something.

There are companies that make hollow tubular rivets (and they are cheap in 1000pcs boxes) I think these work reasonably well if the right tools are used. Just hammering them flat or with some regular plier does not work. The “offical” tools are quite expensive though. It is probably doable to use a standard drill press and some small pieces of steel. Having proper tools (metal lathe and mill) makes building such tools of course a lot easier.

Ok, I understand for NPTH thing, makes sense. For -Through Hole- I cannot select only back side as you probably noticed. The “Connected layers only” option doesn’t work, as is, because when I generate the GROUND plane on the top layer it assumes that the pad-pin couple is connected to the top GROUND plane. Which is not the case as I do not solder on top. So the debug info and ratsnest info I get from KiCad is not trustable and human-error prone. This gave me a hint: I could try and remove the top ground plane and use only a bottom one. This should work. Trying this right now, although it’s a workaround. Also the combination with SMD pad is interesting. I am going to experiment with both methods which is best for me.

Same as before, the problem seems to me to be due only to top GROUND areas, not by trace connections, which as you said I tried to be scrupulous to make only on the back except for connections between vias.

Soldering on the top yes it would be a possibility. I wouldn’t do that unless forced because it becomes a bit messy and I forsee some trouble in the case of desoldering.

Really nice to be pointed to the thing about hollow rivets. Those might prove very useful. Also soldering wire vias is a pain so these rivets would be useful also for vias (not necessarily hollow). Will check that.

Thank you very much for all the hints!! :slight_smile:

Yes, I know. Copper layers used to be able to be turned on or off, but that option was dropped from the GUI. Probably when a partial pad stack was implemented with the “automated pads” on only the connected layers. It is possible that KiCad still supports it, but there simply is no GUI option to set it, and this would require hacking into the PCB file itself (It’s quite readable text).

If you find a method that works, (or even the things you tried but do not work), it would be nice to post them in a follow up.
I’m a bit interested in PCB milling myself, but mostly for “simple stuff”. Just last week I’ve designed an 8 pin SOIC to DIP adapter for use on breadboards, and I’m intending to mill this as a first test.

Very little to add to Pauls words.
There were programs/software for preparing board for CNC engraving. Do they help
Can you use extra vias
Using wire or rivets to connect layers is messy, but I think you cannot avoid them.
I think you have live/design without ground planes, and connect every ground pin yourself. The boards usually work eventhough there is some unconnected copper.

Two sided boards without vias, had problems with connecting Top and Bottom layers. Either you forgot to handle the connection, or you could not solder the connection, because it was under a component.

Will check this possibility too.

Sure I will update. If you never milled a board here are a few hints to avoid you unsuccesseful results based on my short experience with engraved circuit boards:
1-use large enough traces and pads. The standard ones are really small and I have experienced extended copper pad delaminations. I now used 1mm holes(mainly because I had that mill bit), 0,5 mm traces and bigger, 2-2,6 mm oval pads. The board gets a bit bulky but the result is neat and clean. Feature size seems to be quite a bit of a problem with board engraving. Probably high quality tools and FR4 can resolve part of this.
2-Two sided aligment is critical so make a gig for aligning the front to the back side.
3-Mill 0,3mm in one pass, it’s a lot compared to the 35micron copper. The milling depth depends also on the quality of your bits and the quality of the FR4 but if you remove less than that it gets more critical.
4-if you experience burrs at the copper edges, use sandpaper (medium to fine grain) passed on the entire board and you should be able to recover a messy board in very small time. I thought it was a miracle when I found that worked.
5-Along with the aligment gig, of course mill a sacrifical plane to provide for almost perfect planarity of the board. And use two sided adhesive tape on ALL the board to fix it. This prevents vibrations that can reduce the quality of the work.
6-use pads around vias if you solder them, otherwise the solder will spread unevenly on the copper plane.
There are surely some other things to tell but for now these are some of the more critical to me.

Yes, I mill my boards - have done several hundred single-sided and a couple dozen two-sided.

Once Upon A Time…

Not long ago (before upgrading to 6.0.9) most all of my custom footprint Pads were setup for as backside Cu.

I just upgraded two days ago and this posted subject prompted my looking at many of my ‘previously’ crafted pads - only to find All of them are no longer as crafted!!

Other things have also changed.

However, before doing anything to revert back, I placed several Pads/Footprints onto PCB, drew some B.Cu traces and a Zone.

I inspected the Pads and confirmed they were no-longer as I created them (as B.Cu). But, there were No problems with Connections or Zone. S, I guess I’ll bite my tongue and not complain (yet). I included some with F.Cu, too

screenshots showing this morning’s effort as described…


This is the resulting change to my Pads…

I have checked FlatCAM and it seems neat. However I didn’t have time to learn it so maybe one day. For now I export an SVG from KiCAD, pass it to Inkscape and export a bitmap from it. Then I import that bitmap in normal CAM software. This works pretty well, the problem is mainly in KiCAD because there is this small problem. I would like to resolve it directly in KiCAD and avoid learning new programs overcomplicating things.

The wire vias are acceptable to me. Rivets would be more aesthetically nice probably.
Yes, removing ground planes probably would solve. I am not too experienced so I don’t know how much a ground plane can be beneficial to a circuit. I used it because my circuit had some unknown instability. Will consider this possibility thx.

As @paulvdh said can’t connect to NPTH (without creating a pad or via).

Can’t connect to Pad? Set the Pad and Trace to a Net.
If no net or not the desired, simply create one by entering a name in the empty field (you can see I previously entered Tofu…

Check these images. The middle pin should go to GND. The front pad is connected to GND plane. The back pad no, it’s not connected to GND. However I solder only this back one and KiCAD tells me the middle pin is actually connected to GND. It actually is not fine bacause the middle pin is not connected to GND in reality unless I solder the front pin-pad couple

Ok thanks, I’m checking this.

Most likely, Kicad is doing what you’ve specified but, I/we can’t say without posting your files.

I suggest reviewing all aspects from schematic to PCB. Look at connection type on the plane (try selecting ‘None’ for that plane)
Screen Shot 2022-11-19 at 10.53.43

I see no problem by placing footprints/traces/zones. I’m not using schematic. Thus, look at your schematic/design… Didn’t matter connection type.

I use CopperCam and if needed, it can tweak/delete/exclude Pad/traces… CopperCam is a full-flavored meal. Limited use trial is free…


Another idea to get a little bit closer to your end result: You can set the zones on the top layer to Pad Connections: None

This way KiCad won’t automatically connect those zones to pads, and DRC will of warn you as long as you do not make some other connection manually (for example with a via to the bottom layer).

Working wit bare copper or tinned copper wire may be useful.
If you’ve got a via very close to a pad, then you can make a wire loop between those two, twist the wires together or even put in a knot and cut the ends short. That should keep them in their place good enough to solder them a bit.

I confirm, I tried this suggestion and it works a charm without having to remove the top GND zone. I’d say this top zone is not necessary however when it comes to milling removing this copper takes additional time and reduces the bit life, so I prefer to leave it and mill only the side of features.
Pads need to be set as “all copper layers” and the top zone should be set as you said “Pad connections: none”. So if there is not a connection to the pad then both ratsnest and DRC will signal the missing connection allowing you to identify circuit problems.
Below is the result, ratsnest signals me missing connection between the bottom zone and the central pad, so I can tell that I need to connect the zone with a via. I had 5 missing GND connections in my circuit. Works!

Yep, just after you paulvdh suggested the same thing. That setting seem to have resolved the problem for me. It’s a tad tricky if you are not used to it but now have my ratsnet missing connections signaled. Also a few other suggestions you made seem to be working fine. I’m getting used to them.
Thanks for pointing this out!

On a sidetrack…
Can you change the title of this thread? A title like **Considerations for PCB milling" seems more appropriate, and would make it more usefull for others searching this forum for Isoaltion Routing related stuff.

Changing the title is quite easy, just click on the pencil at the end of the title.

We used these (or similar) eyelets a loooong time ago. To be reliable you should solder top and bottom.

Desoldering:
The eyelet (obviously) acts like a PTH. It would be far easier to de-solder a NPTH component that was soldered on top and bottom. At least that has been my experience.