Footprint pads on different layers different shapes

Related to Nick123s question

Is it possible to define through hole pads independently on different layers? Typically for a connector, I want to define a large non-circular pad on the solder side to aid hand soldering and minimum pads on top and internal layers to avoid the heatsinking problems causing dry joints. This also makes it easier to route tracks to pins in the middle of a dense circular connector.

Experimenting with the footprint editor, I am not even able to display inner layers

Last time we had special internal layer pads coming up it was about vias:

As for your particular problem…
Have you tried making a through hole circular pad with small diameter pads and then adding an extra SMD rectangular pad for the soldering side with same pin number?

Afaik you won’t be able to set the circular pads of the internal layers different to the ones on the front/back for the through hole part… but as you want a bigger rectangular pad you can just add it… should be no problem.

1 Like

Thanks for the link, so it is a workround.
A padstack editor would be great even for two layer boards, the example I gave above of a circular connector, which is going to be hand-soldered applies. I was using CadStar and that had the same limitation, resulting in many bad joints and damaged connectors as heat was being applied to the pin rather than the pad, so you want a larger pad just on the solder side

Experimenting with this, to avoid DRC markers, I have to create a second connector with the same number of pins and connect the pins 1-1,2-2 and so on. This means I need two versions of schematic, or the users will be looking for the second connector

Hm…
Conn_PinHeader_6P_2x03_test.kicad_mod (2.7 KB)

2 Likes

Much better, but odd why the pins 1&2 display differently, I had to create Gerber plots to see what was going on and can verify that the inner layers behave correctly the same as the front.
No need to mess up the schematics now. This should be in the documentation

1 Like

please have a look at this connector with a small modify
Conn_PinHeader_6P_2x03_TH.kicad_mod (2.8 KB)
this is how I do it… TH pads just on F o B layer, with different size but same drill
that should look correctly also on pcbnew, not only on 3d-viewer
Maurice

Yeah… that is because of how they were created and in which order they appear in the kicad_mod file (I have no influence on that really within KiCAD).


(pad 6 smd circle (at 2.54 -1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 5 smd circle (at 2.54 1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 3 smd circle (at 0 1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 4 smd circle (at 0 -1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 4 thru_hole circle (at 0 -1.27) (size 1.5 1.5) (drill 1) (layers *.Cu *.Mask))
(pad 6 thru_hole circle (at 2.54 -1.27) (size 1.5 1.5) (drill 1) (layers *.Cu *.Mask))
(pad 2 thru_hole circle (at -2.54 -1.27) (size 1.5 1.5) (drill 1) (layers *.Cu *.Mask))
(pad 5 thru_hole circle (at 2.54 1.27) (size 1.5 1.5) (drill 1) (layers *.Cu *.Mask))
(pad 3 thru_hole circle (at 0 1.27) (size 1.5 1.5) (drill 1) (layers *.Cu *.Mask))
(pad 1 thru_hole circle (at -2.54 1.27) (size 1.5 1.5) (drill 1) (layers *.Cu *.Mask))
(pad 2 smd circle (at -2.54 -1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 1 smd circle (at -2.54 1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
)

See, they somehow managed to get in last there… although the TH’s were first and I created SMD 3,4,5 & 6 as copies from 1 & 2.
It’s really just a draw-order thing in the Default canvas though - see OpenGL for comparison:

So, you can avoid that by sorting the lines in that file into the appropriate order if it’s important for you.

@maui …nice, looks clean.
Did you do it like that in KiCAD or was it a text-editor job (I assume the latter)?


(pad 6 thru_hole circle (at 2.54 -1.27) (size 2.2 2.2) (drill 1) (layers B.Cu B.Mask))
(pad 5 thru_hole circle (at 2.54 1.27) (size 2.2 2.2) (drill 1) (layers B.Cu B.Mask))
(pad 4 thru_hole circle (at 0 -1.27) (size 2.2 2.2) (drill 1) (layers B.Cu B.Mask))
(pad 4 thru_hole circle (at 0 -1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 6 thru_hole circle (at 2.54 -1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 5 thru_hole circle (at 2.54 1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 3 thru_hole circle (at 0 1.27) (size 2.2 2.2) (drill 1)(layers B.Cu B.Mask))
(pad 3 thru_hole circle (at 0 1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 2 thru_hole circle (at -2.54 -1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 2 thru_hole circle (at -2.54 -1.27) (size 2.2 2.2) (drill 1)(layers B.Cu B.Mask))
(pad 1 thru_hole circle (at -2.54 1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 1 thru_hole circle (at -2.54 1.27) (size 2.2 2.2) (drill 1) (layers B.Cu B.Mask))
)

The only problem I have with this: the drill size is defined in two places now and for changing it you have to change both.
I’d rather keep it in one spot only.
Do you think you could get rid of the (drill 1) part in either the front or back and still get clean results?
Like this:


(pad 6 thru_hole circle (at 2.54 -1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 6 thru_hole circle (at 2.54 -1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 5 thru_hole circle (at 2.54 1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 5 thru_hole circle (at 2.54 1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 4 thru_hole circle (at 0 -1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 4 thru_hole circle (at 0 -1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 3 thru_hole circle (at 0 1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 3 thru_hole circle (at 0 1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 2 thru_hole circle (at -2.54 -1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 2 thru_hole circle (at -2.54 -1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
(pad 1 thru_hole circle (at -2.54 1.27) (size 2.2 2.2) (layers B.Cu B.Mask))
(pad 1 thru_hole circle (at -2.54 1.27) (size 1.5 1.5) (drill 1) (layers F.Cu F.Mask))
)

The layout view and the 3D view look weird now though, so probably not a good idea:

Ah, need to be ‘smd’ instead of ‘through_hole’ for the non-drill pads there to make it clean again.

The order in the file is what depicts visual appearance in the Default canvas still, so the TH pad needs to come after the SMD pad to make it look nice… the OpenGL canvas doesn’t have this problem.

Just wish OpenGL would look a bit more like Default really. That green+red over each other give yellow isn’t happening in OpenGL. :sob:

1 Like

@Joan_Sparky
I just used TH pads because they are TH :slight_smile:
3d-viewer doesn’t really render as it is real always (i.e. castellated pads)
I prefer to stay in a cleaner way building up the mod …
Anyway it is just a matter of going to the same result

I often prefer, in these cases, to edit the mod file directly in a text editor coming from a basic canvas i.e. starting from a fp with standard pads…
moreover I use a lot the default canvas because in OGL many functions are still missing … one over the others it is not possible to change the grid during routing…

Does this look OK? Large pads on the back for hand soldering
MKJ6-7.kicad_mod (2.3 KB)

Pad stack’s been on the list of things to do for a number of years now. Unfortunately the people who would like to work on it seem to be overcome by Real Work. On the one hand KiCad seems to be used by more people, but on the other the dev team hasn’t grown much and all devs work on kicad part-time (and most aren’t paid for work so the hours put in are not guaranteed). I also suspect most devs have a long list of things they’d like to do and even those who think a well designed pad stack would be a great feature would have it somewhere near the bottom of their list of things to do.

3 Likes

Now I am finding that Specctra .dsn file export is buggy with these complex footprints. I am seeing pads being ignored and even (pin "Oval( in place of (pin Oval( on some pins.

Does anybody have a copy of the .dsn format, all links seem to be dead