kicad-developers team mailing list archive
Mailing list archive
Re: How do we envision Pad Stacks?
Hi, my answers below
On 11/06/2020 16:54, Jeff Young wrote:
I had been assuming that you could define a separate shape for each
layer. Full flexibility, but time-consuming to edit (even with
commands such as “push current layer to other layers”).
One could have a simple mode and advanced mode. The simple mode allows
defining your typical run of the mill stuff and the advanced mode gives
full flexibility. In this case the simple mode could be the same shape
on all layers and advanced mode would allow defining differing shapes on
Most users are looking to route traces on inner layers between tight
pads. This is commonly done with the definition of a “capture pad”.
The constraint on inner layers that have connecting tracks is simply
not to have a butt joint between the track and the plated hole. A
capture pad is therefore a circular pad with an annulus width of the
drill wander plus 1 or 2 mils; other capture pad shapes get you
This sounds like a good idea in general. But especially for vias.
There were also a few requests for SMD pads on a single inner layer
(or perhaps multiple) — but importantly not for different shapes on
SMD pads on a inner layer (or lets call them a "pad on the inside
without a hole") make sense for some usecases. However currently they
are mostly requested as a workaround for missing features. Like a lack
of support of area defined layer differences (for example in rigid flex
or 2.5D technology where some components are inset into the board) and
even for net-ties. I suspect a lot of these workarounds will be made
obsolete as kicad develops further.
So one could imagine allowing the pad shape to be placed on any number
of layers, and a capture annulus width for any other connected layers.
While it doesn’t have same flexibility, it would be a /lot/ easier to
This really only works if your base shape is circular. All current kicad
THT footprints however have at least one non circular pad as we mark pad
1 that way. (We use rounded rect or rect for this purpose)
And footprints meant for handsoldering are often made with elongated
pads (oval pads).
Another possible complication is wanting a different shape for mask
(or paste) layers. Is this ever required?
Paste and mask layers can already be made different by having paste or
mask only pads placed and removing these layers from the normal pad. I
am not sure we win much by having this as part of a single pad but can
see the appeal.
There is however something that would be awesome. If such a feature
could also create split paste pads and allow specifying the amount of
paste coverage then this feature would make a lot of sense especially if
the user can then easily change the coverage during the layout phase.
Even better would be if it could also add "vias" in some limited grid
patterns and have paste avoid being placed on top of them (or have every
paste section be influenced in the same manner by vias created that way
for consistency) then this would be even more powerful. However i would
assume this is more than a simple pad stack feature.
As an inspration take a look at the exposed pad class of our footprint
and for resulting footprints take any QFN footprint generated. One good
example from the official lib is
And regarding mask. well in most cases clearance specification is
enough. But especially for mask defined pads clearance is not really the
setting one cares about. So a way to enter the requested final size
would help a lot here (right now we workaround here by making a mask
only pad that allows us to enter the required final size).
Where true mask control could come in handy would be a top tenting
option for vias inside a center (or exposed) pad (i think cypress still
suggests top tenting in their application notes).