Asymmetrical Top/Bottom Footprint

I need to create a footprint with through-hole pads that are not symmetrical between the top and bottom layers.

Let’s say I want a 2x3mm rectangle on the top layer and a 1.6mm circular pad on the bottom layer. I have tried to to do this with 2 pads with the same number, one on F.Cu and F.Mask and one on B.Cu and B.Mask, but it seems it drives the DRC crazy, reporting both tracks near pad and unconnected items (between the top and bottom pads) errors.

While I could just ignore the errors, another problem is that I am not able to draw a track on the BOTTOM layer in the area occupied by the TOP pad/clearance. I had to put them there with some hacks :).

Can you help me? Thanks in advance!

Make one of the two pads a normal through hole pad (i suggest the smaller one)

For inspiration checkout any footprint in the official lib that has the suffix _ThermalVia.

Or look at the how to make a footprint tutorial as i explain the process of making such a footprint (with thermal vias) in it.

Try this & tell us what happens:

  1. Create a circular pad. Specify it for ALL copper layers (i.e., both top and bottom layer). Make the diameter 1.6mm. (I hope this leaves an acceptable annular ring for the hole size you need.)
  2. Create a rectangular pad, 2x3mm, with the SAME pad number as the circular pad, and the same hole size. Specify it as TOP COPPER ONLY.
  3. Place the two pads at the same coordinate location.
  4. Now read the tutorial posted by @Rene_Poschl (above), and explain to yourself why this padstack works. (He also has a worthwhile tutorial about creating schematic symbols.)


1 Like

Thanks for your replies. That seems to fix the “unconnected items” error, but still I cannot draw tracks on the bottom layer there the pad on the top layer is.

I am using the latest KiCad 5.0.2, was the tutorial tested with this version?


All thermal vias footprints in the lib use this feature. so test it with any of them

OK, it works fine now. I had missed to set the type of the top pad to SMD.

Thanks again!

1 Like

This is all related to the limitations of KiCad for flexible PCB stacks

Mmmmh, there’s still something wrong: one of these pads is connected to GND and I have a filled zone on GND.

On the top layer, the connection to the pad stops where it stops on the bottom layer, while it should continue since the top pad is narrower. I guess a picture is worth more than a thousand words, so here it is:

Hi @SukkoPera ,
I would try to draw a custom pad at top side in library:

  1. Smaller THT
  2. Mask for SMD
  3. Draw Paste in Mask and change manually to Cu


There really is no need for custom pads in this case. Custom pads are only needed to create shapes that are not otherwise supported.

could you share your footprint? It looks like the thermal connection algorithm screws up a bit here. Maybe it is a bug that needs fixing.

@Rene_Poschl Sure, here you go :).

I think the problem is that the zone fill algorithm hangs itself here. The antipad clearance of one pad conflicts with spoke placement of the other.

This is still present in nightly. I think you experience the problem described in this bug report:

Well, never mind, I connected it by hand.

Thanks a lot!

Tom presented a workaround in the bug. You can set the zone connection of the smaller inner pad to solid. This might however be a problem if you connect a zone on the bottom side. (you will then not be able to have thermals there)

Yes, I confirm that that works but with the downside you mentioned. I have just drawn connections manually and that is fine for me.

Thanks a lot and Merry Christmas :).

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.