Relating pins and pads [KiCAD pitfalls for newcomers]

Unfortunately I don’t keep the French or English version, only the Spanish one of the old website. More or less Jean-Pierre Charras says:

“Why have I written kicad? Initially I wanted to learn C++ (now, I know…) But, made as a simple style exercise to program in C++ language, this set became a professional CAD electronic tool”

1 Like

Rumour has it that KiCad started as a programming lesson to teach students in writing EDA software. From my personal experience this would explain a lot of the quirks that KiCad still has today :wink:

1 Like

I don’t know what you’re talking about here. I have stated several times that I don’t expect their to be specific devices for simple parts like resistor, inductors, and the like.

“This repository contains the official schematic and 3D libraries supported by the KiCad library team.”

Is that different from the “KiCad library”? If so, I apologize.

If you’re referring to this:, I did RTFM. Point out to me the section where you assign schematic pin to footprint pads when using an existing part with an existing footprint. Granted, it was my mistake that I did not verify that the footprint pin ordering was different than what was in the symbol, but in “my other EDA software” there is an explicit step of assigning schematic pins to footprint pads, which makes it much less error prone.

Sometimes it can be helpful to see where new users stumble and to understand the way other similar software works to maybe makle the process less error prone.

1 Like

I have to disagree there. What is the purpose of a pin number in a schematic symbol? I keep saying, that is the root of the problem.

But that is the way KiCad works, matching pad and symbol pin numbers.

That’s the problem.

Go back to the original post and look at the pin numbering for the different footprints. This part is a 3-pin voltage regulator. The schematic symbol should just be a 3-pin voltage regulator. As soon as you put pin numbers on the schematic symbol, you now need 4 symbols to represent that 3-pin voltage regulator because they all have different pin number->pad correspondence.

1 Like

It allows KiCAD to share the very same SOT-89 footprint with different devices in that very same package. Pin numbers will link any symbol perfectly fine with the correct pins at the correct footprint.

My personal local libraries of symbols contain the package as part of the component name.
I don’t have your problem.
I use atomic parts.
Everyone else who does see the problem you’re having is doing this as well.
KiCAD allows that.
Use the tool.
And for everyone else, who doesn’t care about this or even finds it useful it’s fine as is.


Now the 1000 dollar question for you is this:

Who in their right mind would want to maintain an atomic parts library with all possible (or most) of the parts available out there - for free?

Correct, no one.

I only have in my libs what I use.
I do everything myself.
75% of my time with KiCAD is library work.
Good luck with your personal atomic part libs.
May they be error free.
If you got questions, we’re here.

PS: and screw that Chinese dude who put a Neo 6M label onto a Neo 7M module… that dumbass cost me 2 days of bughunting and the loss of the SPI bus to that thing.


You’re just going to have to get used to the way KiCad works, or find another tool to use. Repeatedly outlining the ideal scenario will make no difference!

One thing that KiCad does not lack is suggestions for better ways to do things. :slight_smile:

1 Like

Thanks. I have now started creating atomic parts. It’s a shame that it’s not a more formal part of the process and not adopted into the parts libraries. I think the one missing piece is that it would be nice to be able to have multiple footprints for a single symbol rather than having multiple symbols with the footprint name in them, but maybe that will come along some day.

Is there documentation/tutorial somewhere that shows the process for creating atomic parts? It seems like I’m going through more steps than I need to to get it to work.

Not really.
KiCAD allows this, but doesn’t really - for lack of a better word - support you with inbuilt tools to actually do it (yet).
There is work being done - from what I read in this forum - which goes towards making this easier, but it will take a while (example: new component selector).

I think @devbisme had some external python scripts that are able to provide you with csv or xls formatted content of symbol libraries, that you then can modify comfortably with OpenOffice/Excel/etc. and import back into the libraries (works even with project schematics, that’s actually where it originated from).
There was another tool that (I think) did run inside KiCAD, but I don’t know if it’s still working - was roughly 10 months ago I think.
Ah, here you go…

Personally I created my resistor/capacitor libs with external python scripts from scratch and most other parts as I did go along, at some stage even editing the libraries directly via a text editor.

Things you want/need to do:


Add similar fields - read through this “Standard symbol field names initiative” and see what fancies you. Set the Default Value as underscore or whatever - don’t leave it blank, otherwise this field isn’t added when you change parts in the library or add them to your schematic.
Existing parts in the lib won’t get those fields automatically. I hope one of the tools I mentioned do that. If not, either python scripting or text editor…

Make sure you understand how symbol and footprint libraries are maintained. They’re different for the foreseeable future.

If you do personal atomic libs, you run them locally and probably want to set up KiCAD along these lines (older post of mine, with some outdated info):

1 Like

NOTE:!!! webbbn is TROLLING.

He very conviently left out the rest in the link he provided. Take a look at the complete text:


DEF MCP1754ST-5002E/MB U 0 30 Y Y 1 F N
F0 “U” 100 -150 50 H V C CNN
F1 “MCP1754ST-5002E/MB” 0 150 50 H V C CNN
F2 “” 0 0 50 H I C CNN
F3 “” 0 0 50 H I C CNN
ALIAS MCP1754ST-1802E/MB MCP1754ST-3302E/MB
S -200 -100 200 100 0 1 0 N
X VI 1 -300 0 100 R 50 50 1 1 W
X GND 2 0 -200 100 U 50 50 1 1 W
X VO 3 300 0 100 L 50 50 1 1 w

I’m now out of this one, and just grabbing the popcorn to watch the theater being presented.

1 Like

Don’t think so…

He picked the MCP1754 from the KiCAD lib, assuming that the symbol would fit either the SOT-23 or the SOT-89 package, without noticing that KiCAD does map the symbol fields to the package pins via numbers instead of function.

The lib symbol had the correct mapping for a SOT-89 footprint, but not for a SOT-23.
And by changing the footprint to SOT-23 and not checking the pin mapping he screwed up.
This is not trolling, this is a simple mistake.
It happens.

PS: I myself did draw a wrong SOT-23 footprint once… had to turn the actual devices 120 degrees to make it work after the boards came back from the fab. :head_bandage:


Thank you Joan_Sparky and Andy_P (and others) for the helpful advice, unlike some that just seem to want to throw insults around.

But he already knew this.

Even though it happens to be there are actually 6 different ways, instead of 4, of arranging the pins numbers on a 3 legged part.

1 Like

And this is why there will never be a universal solution. Atomic part numbers are in house.
In my Marconi days we used NATO stock numbers as base part numbers.
In RACAL we used a proprietary in house system.
I am aware of many other independent numbering systems, every time a company has its own SAP etc manufacturing system a new structure gets created.
The best KiCad can do is support all of these variants and not get in the way of the peculiarities of their numbering


But it isn’t. The SOT-223-3 and DFN variants have additional pads, GND or NC and you have to tell the PCB tool what to do with these.
In the end your purchasing has to buy exactly the right package variant or your manufacturing will be screaming at you with a reel of parts that don’t fit

You’re missing the point. The schematic symbol only has 3 pins. The footprint might have 3 grounds and 4 NC, but you don’t show that on the schematic.

And, yes, I’m of the camp that would like to put the exact part with all the BOM information in the schematic, which includes the part number down to the exact footprint, but KiCad has chosen to separate schematic from footprint.

Which means that you need hidden pins, something many of us here hate

The Manufactures DataSheet on page 3 only shows 3 pins as a symbol on their Block Diagram for every package…

ON EDIT: NO hidden pins.

[quote=“webbn”]And by changing the footprint to SOT-23 and not checking the pin mapping he screwed up.

Not according to the original 1st post.
Check the numbers on the package pins, the SOT89 package has pin #2 two times.
Someone that is unbiased and not familiar with the behavior could assume - I admit - naively, that all would be going well. Especially after having not have to deal with a problem like this in other CAD tools where this kind of mapping is not normal and every part is atomic, not sharing anything (no idea if that is true and I don’t care actually).