Resistor libraries

I am newbie with Kicad. I used PADS for many years… many years ago! Now I am going to start again with Kicad.
I was surprised having no resistor libraries. In PADS I used to have a part even for each value, as it is logical to be. In Kicad I have… no library? Must I start again choosing the right decal for every passive component? Is it possible that nobody prepared libraries for at least the most common components?
Did I lost something?
Thanks for understanding and help.

1 Like

Generic passives can be found at the device-library. Value and footprint must be assigned after insertion into schematic.
Maybe there is a fully defined (–> symbol has already the correct footprint and maybe additionally fields assigned) parts library somewhere on the internet, but at least not included in the official library pack.

Did I lost something?

Yes. Kicad !=Pads.

1 Like


Before starting to use KiCad I made my own libraries.
KiCad V4 had aliases for symbols so I defined 0R with 0603 footprint and a set of aliases like 1k, 1k2, 1k5, 1k8, …
In V5 it was the same.
In V6 library was converted and each alias became a separate symbol derived from 0R. I have not time to work with V6 libraries so I don’t know how to make the next symbol being derived from but not expect problems if I will have to do it.

1 Like

Having a symbol for each value is, IMHO, insane.
KiCad already has way, way too many variations of the same symbol - one for each possible transistor pinout, for example. I would far prefer to have one symbol with the pins labeled B, C, E and then match that to the correct footprint than have 250 variations of pinout / footprint /specs.

But, I didn’t design the system, so I’ll use what it offers.


Aye I agree.
A mitigating factor is that programs that use seperate “parts” for the values often also have some method of assembling such entities from other info or lists.

When I switched to Linux, I was in need of a new EDA program and I tried a bunch of different programs. I also tried eagle, and in a test schematic I wanted to use a 0.2 Ohm shunt resistor, because that was what I had in my parts bin, but I could not select that value from the drop down list. I very much prefer the way KiCad works, were a “value” is just a text string that appears in the BOM.

When I found KiCad there were a lot of things I liked about it, and quite quickly I abandoned evaluation of the alternatives and just settled on KiCad.


Hello and welcome @Tubetron

You will need to create your own personal libraries then copy the generic symbols from the Kicad libraries to your personal libraries. After which, organise as you wish.
As @mf_ibfeew mentions, start with the Kicad “Device” library.

If you are uncertain about creating personal libraries see this FAQ :

After creating your libraries the easiest way to populate them is to:

Open the Symbol editor,
Find the part from the appropriate Kicad library in the LH column,
Hover over the symbol chosen,
Right Mouse click,
Select “save as”
Rename symbol (only if you wish)
Scroll through the library list in the small opened window 'till you find your personal library in which you wish to place the symbol.
Left click (highlight) your personal library in the small window

You now have a symbol in your library.
Repeat as required :grin:
Exactly the same workflow for footprints.

You have in library all elements you have in stock and no other.
This guarantees that each decision of using new value have to be aware.
We have bought (about 1995) a semiautomatic machine for placing elements on the PCB. It has a wheel with 55 drawers for elements. Rotating the wheel machine provides you the right drawer at the right time to take element from and then guides you to the right place on the PCB.
The best would be to not have to replace elements in the drawers or have to replace drawers with some other drawers as it is easy to make mistake during that. If you put elements in wrong drawer than you will wrongly assemble all PCBs serie. Having list of elements used as short as possible (not at one PCB but at all your PCBs) helps to avoid it.
Many times instead of designing in a new R value I decided that I can use here a value we already have in one drawer (as I noticed that I don’t have that new R in library).
Having all elements with their value specified is also a way to avoid mistakes like placing at schematic 0603 capacitor and then changing its value to 22uF or more.
When I place a symbol from my library at schematic I am sure such element (combination of value and footprint) exists and we have used it before. If I have to use a new element I add it to library and then use it.

You still have to decide on a value.
Rather than have to make an entirely new symbol when you add a new value to your stock, it makes a lot more sense to just edit the generic resistor symbol with the value you want. When I design a board, I often have to change resistor values several times, based on things like voltage regulator references. Having to delete the symbol and find a new one is more cumbersome than just editing the value.
Also, with the current supply chain problems, I don’t want a part tied to a specific stock number. I need to be able to choose whatever part distribution has available at the moment.

It practically not happens to me.
The only questionable values are the resistors that determine the current of the LEDs. I always get the LEDs I plan to use and check what current is needed so I know the R value before I start to design schematic.

I can get over this waste of time at the cost of protecting myself from making a mistake.
But it happens very, very rarely that I have to change the element value.

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?”