Invalid zero-sized pad pinned to 1µm in file error in footprint file

I got in KiCad 7.01 this error:

“17:18:08: Invalid zero-sized pad pinned to 1µm in
file: /Users/andreibucsa/Documents/KiCAD V7 libs/_custom_footprints.pretty/xxxxxx.kicad_mod
line: 52”

I’ve checked line 52 and is no such pad…

Weird… any idea?

Weird… any idea?

without further info (==attached footprint file): no

Sure here it is:
T4145515041-001.kicad_mod (4.0 KB)

17:18:08: Invalid zero-sized pad pinned to 1µm in
file: /Users/dfdfffffdfdfdf/Documents/KiCAD V7 libs/_custom_footprints.pretty/T4145515041-001.kicad_mod
line: 52
offset: 93

I’ve stumbled upon a similar error recently, with a third-party footprint.
I finally got what was wrong, and it’s 99.99% likely that’s the same with your footprint here.

The culprit is with the ‘np_thru_hole’ items. The second parameter of their ‘size’ attribute is 0 (such as ‘(size 2.4 0)’), which gets converted to a minimum of 1µm by KiCad when opened, and leads to this error message.

I would call this a ‘bug’, although it’s debatable. The second parameter of the ‘size’ attribute here is the pad diameter. Since this is a ‘NPTH, mechanical’ hole, many people actually get confused by this and set inappropriate values for the pad, even when they mean no pad at all. In this case, 0 is not a proper value. If no pad at all is meant, the pad diameter should usually be set to the hole diameter, or any smaller value, but minimum 1µm.

So set the pad diameter (pad size X) with the rule above and your footprint should be fixed.

I’ll try then let you know; any size of pad between 0 and the hole diameter for NPTH shouldn’t impact the board manufacturing result, however I my opinion a NPTH hole has no pad so KiCad shouldn’t give that error for pad size 0.

Thanks for help,
Best Regards,
Andrei

By making the pad of NPTH same as the hole diameter solve the issue; this is an acceptable compromise, but still the NPTH had no pad…

Thanks Asterix

This is why I called this a potential bug.
A few points about that:

  • You can make NPTH with pads, and even though I’ve never had to do this myself (pads but no plated TH), I guess the option to do it can make sense.
  • In that regard, using 0 as a diameter/size to mean “no pad” doesn’t work with KiCad which considers that an error. This is what is questionable, but that could be justified.
  • If you want no pad, select the “none” option for the copper layers list.
  • Now if “none” is selected for the copper layers, I think KiCad should assume there is no pad and should gray out the whole Pad section. It doesn’t, and this is what I consider a bug in the footprint editor. If there is no copper, there can’t be a pad.
  • The footprint editor still lets you define a 0 size in that case without giving any error, but KiCad will give an error when opening the footprint. This is also a bug IMO.

There are some mixed points together.

Now if “none” is selected for the copper layers, I think KiCad should assume there is no pad and should gray out the whole Pad section. It doesn’t, and this is what I consider a bug in the footprint editor. If there is no copper, there can’t be a pad.

yes, no copper means no copper, but there still can be the other “technical layers”. So there could be a usecase for pad-definition, but without copper.

The footprint editor still lets you define a 0 size in that case without giving any error, but KiCad will give an error when opening the footprint.

If that’s the case (pad==0 is possible) that would probably be a bug (as non-positive values should be rejected from the pad properties dialog). Can you describe the exact steps how you set pad diameter == zero?

As background: the limitation “pad diameter > 0” was introduced last autumn. At the same time the warning-message (see first post) and the automatic pad-diameter increase to 1um was introduced. So both action were deliberately done.

Ok for your first point. I see the idea. I think calling this a “pad” with no copper is kind of confusing though, but I get the idea.

As to the second point, obviously any footprint created with a zero-size pad, before you introduced this last autumn change, would now trigger this warning message. So if just for backwards compatibility, it’s a bit disorienting. As you can see, I think many users would expect a size of zero to mean, no pad. You may have a different view, but from a user’s perspective, this would make sense.

As to being able to create footprints with pad diameters of zero with latest versions of KiCad, it lets you do this. You can try, nothing special to do. KiCad will pop up a warning message when validating the hole dialog though, but with a weird message : “Warning: Pad size is less than zero.” As it’s not less than zero, this is confusing. So you scratch your head, click OK and move on. And next time it reads the footprint you get the " Invalid zero-sized pad pinned to 1µm in file" message.

As to being able to create footprints with pad diameters of zero with latest versions of KiCad, it lets you do this. You can try, nothing special to do.

I have, and I can’t create a pad with diameter zero. Hence my question above:

  • which kicad version exactly?
  • what do you click+type exactly - step by step

I don’t want to annoy you, it’s just I can’t create such a pad anymore (exception is the properties-panel - this is already reported as bug) and so I need more than “nothing special to do”.

example for such a description (what I did):

  • start kicad Version: 7.0.1-5-g4e775a4090, release build, Win10
  • open footprint editor, select any personal writeable library
  • open any footprint with tht-pad
  • doubleclick the THT-pad
  • can be done (but not necessary): set THT to NPTH
  • set pad-shape to circular
  • set pad-diameter to 0
  • click OK-button → get error-message: Error: Pad must have a positive size.
  • dialog can’t be closed, zero value is not accepted.

So with this situation it’s impossible (on my system/installation) to create zero-sized pads anymore. So the warning-message "Invalid zero-sized pad pinned to 1µm " shows up only for old projects/libraries.
This is typical behaviour if older files are loaded/converted to a newer software version. (albeit many software-packages are not so transparent and do such automatic changes silently in the background).

Please keep in mind that the part layout can be a 3rd party or created by an early version of KiCad (eg. V5); as long as you import old models or open old designs expect to see that error.

Should have stated which version I was using for this: 6.0.11.
My point was that it was still possible to inadvertently create such zero-diameter pads in v6 even after you added this “invalid zero-sized pad” message. And in 6.0.11 you get the warning message I indicated above.

I tried in v7, and indeed it’s not possible anymore, so it’s fixed in v7.

But indeed we are talking about footprints created before v7, and keep in mind that apart from brand-new users, most of KiCad’s users will be coming from v6 with a number of projects and libraries from v6.

I now understand the full context of this issue, but maybe a more explicit message when opening a footprint created in v6 with a zero-diameter pad could be helpful here.

The zero diameter is possible without error because in case of circular pad only first parameter is parsed and used, the second one is redundant, useless.
Then the warning message is about a not erroneous condition; useless itself.

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