Resistor libraries

I think different workflows are getting mixed up here.

For hobbyists, individuals and “occasional users” and for simulations it’s the easy way of being able to just change a value of a part.

When companies get bigger, have multiple full time developers, and employees who’se full time job it is to maintain libraries or keep parts stock up to date (those can be different persons) then workflows change, and having fully defined parts becomes an advantage.

Such companies may have a database with hundreds of resistors, in different sizes, and tolerances. Special flame retardant or fusable resistors etc. And this is where “database libraries” are being used. Such libraries are also coupled with inventory management and the supply chain.

Such libraries may also have integrated in them groups of compatible replacement parts for “generic resistors” or a resistor can be locked to a special type, to ensure the right resistor is being used in production.

Just imagine what can happen in a big factory when for example a special flame retardant resistor is accidentally replaced by a generic resistor and it slips though quality control and tens of thousands of products get shipped before it is detected.

And something like this is not typically how it happens:

I have no experience with such systems myself, but I would guess that you could just select a resistor with the mouse and then replace it with another one from the database.

But KiCad is not there yet. Some progress is being made, and there is now some preliminary support for database libraries in KiCad, but I don’t know much about that area. As a hobbyist I’m quite happy with just changing a string to change a value of a resistor.


Such a database is very proprietary, commercially sensitive and won’t get shared between companies

Yes, for me also having a part for each value was not an option. I did’t want that designers could use parts that had not been approved by the company, had their part number etc. The BOM must be composed only by parts that are officially registered.
But my question (thanks to all that answered) was smaller. I don’t pretend that Kicad == PADS, it was unreasonable. We still today pay many thousands euros per year for a professional product.
I am evaluating Kicad for my personal use only and the point is: OK, PADS has a lot more and costs a lot more… but having a small library for most common components would be very simple… strange that Kicad does not have it.
Now I must check every new component that I need and loose time deciding which decal ist the best. It would be very easier if I directly had an R1/4W… It’s like having a printf function… you can write it yourself but everyone needs it and it is more practical to write it just once.

The problems are: what is common and what is small?

As I mentioned above,
The procedure is find a symbol from the kicad symbols.
Place that symbol into a personal library.
Duplicate that symbol and rename, to suit your needs, as often as required.
Open the symbols’ properties.
Associate a Kicad footprint with each symbol.

End result, you have a personal library with a 1/4W, a 1/2W, a 1W, THT and a 0402 , 0603, 0805 SMD etc.
Do the same with capacitors, electros, diodes, transistors etc.

It only takes a couple of hours and familiarizes the user with library creation and the Kicad libraries.

Let me smile… yes, I can do it… I already suspected that it was possible! :slight_smile: The point was avoiding this work or use the work that somebody else did.

However its a reply and I thank you.

The problem there is you would probably only get quarter through your first schematic before you find you need something that is NOT in that “small library” :slightly_frowning_face:

Sorry, I didn’t understand…

I have only worked with Protel 3 and KiCad. In both I simply deleted the previous element and inserted a new one. All my resistors have the same symbol so new one fits at schematic into the place after previous one. Typically after annotation it gets the same number that previous one (if not you can do it manually).
The only problem with KiCad (that I had not in Protel) is that when updating PCB from schematic it by default is not based on references (as I am used to) but on some hidden element identifiers so in such case I have to remember to change this behavior.

It costs infinitely times more :slight_smile:

If you think of having in library R1/4W, R1/2W, R0402, R0603, R0805, R1206, then it is simply to do it yourself and you will have only elements that you want.
If you think of having in library: R1/4W_1.0R, R1/4W_1.1R, R1/4W_1.2R, R1/4W_1.3R, R1/4W_1.5R,… and so on than it certainly will not be a small library.
I have in my library some 0402 resistors, a lot of 0603, one 0805, few 1206. One 0805 is 100R pulse proof (5 times higher power pulse than standard 0805) I use as RS485 termination. I used some 1206 as hitting elements that I switch on when temperature goes below 0 degrees C.
And (except that 0805 one) I do not force the use of a specific resistor from specific manufacturer. I let the contract manufacturer to use resistors manufactured by factory they are used to use.

My apologies,

The point I was making is:
No matter what is in a “small library of common components”, it will not cater for everyone. In fact, it will probably cater for no one, so, next will be comments on this forum “why isn’t xxxx included in the small common library?”

Or you don’t like that the value is written “1k_1W”, you want it to read “1k, 1W”, or you need “1k_1W_1%”, etc. etc.

It shouldn’t be terribly difficult to automatically create a huge library of all possible and impossible combinations, but it would require some scripting skills.

This is actually saying that you’re using KiCAD as an inventory system, which is not what it’s designed for.
But OK, if that’s your workflow, fine with me.
Personally, I like to keep the global libraries as simple as possible. For managing parts for a project, then creating a project library makes more sense IMO.

As I tried to explain in a previous post. A close link to The PCB design software and an inventory system is a very important part of a PCB design program for a lot of the bigger companies, and KiCad is also evolving into that direction. For a lot of other users maintaining such a database would be a bigger nightmare than it’s worth and ad-hoc parts management for each project is just fine.

I have no personal interest in these database driven libraries, but I do think it is a huge thing for the KiCad project. From what I understand there are quite some companies where this lack of coupling with a database is the single feature that prevents them from using KiCad. I’m hoping / expecting that if a few of such companies can switch from an expensive commercial EDA suite to KiCad, they’d also be willing to make some substantial donations to the KiCad project.

For me inventory means to have information of how many pcs of each element you have. I don’t use KiCad library for it.
I use library to:

  • have (at hand during schematic design) a list of elements I can freely use (any other element - requires consideration),
  • not have to worry what footprint I should select for 22uF/16V ceramic capacitor (as it is assigned in library to that element value).

If I decide to add a new element to my library it becomes at once one of those I can freely use.
When I finish schematic I can at once start to design PCB.

I’m currently working on creating a new library for personal use, and I can tell you that your request is either not very well thought out, or insane :slight_smile:

Have you looked at some manufacturers datasheets, more specifically the part numbering systems? Do you want all of the possible parts a manufacturer has to offer? For myself, I’ve gathered all the part data I need for only the E24 series (which is a ridiculous amount of work already) but I’m sure others require E96 or above.

Yageo has the reel size in the middle of the part number, so unless you know the typical reel size your company/distributors offer, you cannot generate a full part number. Or, brute force all the combinations :upside_down_face:

Yageo thick film SMD chip resistors come in 11 sizes, all at 4 different tolerances, supplied on 3 different reel materials and 6 reel sizes / power ratings, and then there’s your different resistance values. 11x4x3x6 = 792 possible part values. Multiply by (at least) E24: just over 19000 part numbers.

While you are building the library, will you be so kind to include other information while you are looking at the datasheet? Tempco, power rating, max working voltage, part dimensions, etc. etc. etc. What is critical information for one person, can be useless clutter for another. Who decides on a standard?

Now, you probably want to link these symbols to footprints. For SMD resistors, this is fairly straightforward, but consider to think of all the variations for THT resistors - I haven’t seen anyone mention pitch variations yet :slight_smile: And again, do you just want a single “1/4W size” resistor, or do you want to take into account the small size differences between manufacturers when it comes to silkscreen, courtyards and 3D models?

You also want 3D models? Do you want the parts at the nominal size, or perhaps the maximum size? For THT resistors, you want different manufacturer body sizes, lead thicknesses, pitches? Vertical mounting? Color rings? :crazy_face:

Even if someone were to provide this biblical amount of work for you, would you trust the parts and information contained in them, or would you be willing to go through the trouble of checking all the parts = symbols and footprinst and 3D models?

So much to write, so many (rhetorical) questions, such rabbit hole this is :smiling_face_with_tear:


Nice comments @Jules ,
however you failed to mention the very small matter of keeping this extraordinary work up to date. :rofl:


If you have not found the symbol libraries and footprint libraries and how to interact with them the following tutorials may help a lot. The first one shows you a “work flow” which I can summarize as draw schematic with symbols. Then edit to choose foot prints. Then design PCB.
This work flow was counter to how I had always operated where I was starting with an assumption of a fully defined part which had schematic symbol, PCB footprint AND a Manufacturer name and Manufacturer Part Number.
I hope these suggestions help.
Forrest Erickson

The three best KiCad tutorials I have found to date 20221121.

Start here:
Robert Feranec

What is KiCad about? Starting with KiCad …

The following two are longer series and will each teach you things the other does not (Or else I may not have watched the full series on either)

KiCad 6 STM32 PCB Design Full Tutorial - Phil’s Lab #65

John’s Basement on KiCad 5 #17 Hierarchical Labels & Pins

Finally help us help you. When asking for help do not make us guess.

Share your entire project or a simplified version with the problem(s) you have.

1 Like

If you’re using jlcpcb for assembly take a look at Autogenerated kicad libraries for jlcpcb assembly updated for 6.x

Libs for common caps and resistors with their part numbers pre-loaded.

Thanks for your suggestions, I found them very useful.

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