Common symbol in library

I am trying to get used to Kicad, and with 5+ years experience in Eaglecad there is somethings that I can’t figure out.

I got a library in Eaglecad that contains many CC0603 capacitors, So 1 symbol, 1 footprint and multiple devices
This I want to create in Kicad, but the library management is really confusing. As I understand it the Symbol has your footprint information in it and is a device/component but it also has the actual symbol in it.
But how do you then have a symbol common among all devices so if for example there is a drawing mistake i can edit one symbol and then it changes for all devices/other symbols?

You need to create separate symbols for each device. You can use derived symbols (create new symbol → derive from an existing symbol) to create many devices with the same graphical symbol, but they will still appear as separate symbols.
There is no separation between a device and a symbol in KiCad.

1 Like

And when you have many symbols derived from one, then changing the one ‘root’ symbol graphics will also change all the derived symbols.

Yeah i just figured it out and was about to write it!

I really don’t like the concept of no separation between a device and symbol, it is a bit confusing but again… it works
Thanks for your reply

1 Like

Yeah that was the goal of having a reference symbol, less work and more efficiency.


In KiCad V5 each symbol could have Aliases (included in that symbol definition). Since V6 it was little changed and now you have reference symbol.

May be everyone understand what you mean but I not. Could you explain what is the lack of separation you don’t like. May be I don’t understand because I have never used Eagle.
So what exactly should be separated from what and why?

In Kicad you have a symbol that can be a reference. The reference symbol is no different from a normal symbol except in the normal symbol you refer to it as a symbol that refers to another symbol
Very confusing.
In Eaglecad you have a footprint, a symbol and then a components/devices . So if you have 2 components/devices that uses the symbol and footprint there only exist 1 symbol and footprint.

In my case to make it easier in Kicad I now call every symbol that is a reference symbol “REFSYMBOL” which works fine but I just see it as more of a hack rather than a solution to a problem but surely there are people who disagree and highly prefer the flow either because they are used to it or other reasons.

But your understanding is incomplete. KiCad since v6 uses inheritance. So any symbol, even derived ones, can derive more symbols. So every symbol can be a reference symbol as you call them. And you don’t have to use inheritance, you can have distinct symbols even if they are similar.

Also although the symbol can have a footprint associated that can be overridden in the schematic. So say a 7400 IC could be associated with DIP or SMD footprints depending on what you have used. The footprints are often generic, say one for all 14 pin 0.1" DIP ICs.

In KiCad you are not forced to use symbol and footprints in the only one right way.
In V5 I used it that way that each symbol or alias was a separate device. So for example I had a symbol called 0R that was linked with 0603 footprint and it had aliases like 1k, 1k2, 1k5, 1k8, 2k2,…
Thanks to that I had only one R symbol drawing stored in library.
When updated to V6 it was changed and now I have one reference symbol 0R and all others reference to it. Since I moved to V6 I had no time to investigate it in detail but I suppose that now I also have only one drawing for all my 0603 resistors, but may be each ot them have separate footprint link (but footprint is still only one).
If I want to have the same symbol names for 0402 resistors I have to have separate library and of course there will be second copy of drawing. But if I want to have different names for 0402 resistors I can reference them to the same basic symbol and have only one R library.
Why it was changed that way I don’t know but if I would follow developer discussions when V6 was designed I would probably understand it. They are going toward some database approach what is inserted in V7 I think. How it is exactly planned to work (or already works) I don’t know.

My approach is that if I define first OpAmp than I simply define its symbol and link it with footprint. And when I need to add to library the next OpAmp I reference it to this first one and it can have the same footprint or the other one.

I used eagle for many years and I see what you are saying. I now use the kicad database feature and I love it. It is much like the “device” in eagle was – for each unique part it maps to the proper symbol and footprint. There is only one 0603 cap footprint (with its 3d model) and all the 0603 caps in the database use it.

I have now another weeks experince in Kicad.
I still think the library way is very complicated, but the REFSYMBOL way I made seems like the best solution until now.
I do get the structure and so on but it does lack some features or I simply haven’t figured it out yet.
Example: Creating a dual package transistor requires you to have 2 of the same symbol sine you have to be able to change the pin number for them, I do see the problem as then you do “modify it”. That is surely the strong point of the device that you have in Eaglecad as you can have 2 of the symbols which just appears as a set of pins 1-2-3 or base, collector, emitter that you then set to the footprint pinout.

The database part sounds really interesting, I am looking forward to that but also a bit scary as it may require much more work to set up but sounds great.

The database thing sounds awesome. Looking forward to check that out.

I use only SMD parts and I suppose that if one transistor is in SOT23 and SOT323 packages than assigning transistor pins to footprint pads agree so in many cases you need not to have two symbols.
I am avoiding using one element in several packages. This allows me to have only one and short name for transistor I use. BC847 at my schematic means BC847CW.