Library Symbols Browser : "Symbol Name" vs "Value"

Hi,

I’m building a private lib (as a test).

In some cases, I want the name displayed in the library explorer (left column) to be different of the “Value” field.

I can’t do it, as it seems that the 3 displays are linked. The field “Symbol Name” is clearly an alias for the field “Value”(not present in the *.kicad_sym filed).

I’d like to decouple the displayed text (left column) from the “Value” field.
The subject is not the library format (it is very flexible), but the current incarnation of the library browser.

=> Maybe there is a way to have the library browser use an (optional) “Display Name” field, when present and not empty, and to revert to the “Value” field otherwise without modifying Kicad (but some “format” description file) ?
Quite unlikely, but better ask…

I have a memory from long ago that it was a requirement that the “value” of a symbol is set to the same text string as the name of the footprint itself.
They are not the same or “aliases”. Each has a specific meaning.
For IC’s the “value” is set to the same as the device name, but for resistors, the value is always “R” if it is a fresh copy from the library, and you set it to the value of the resistor (for example: “2k2”) to use it.

It’s an old memory though. Maybe from KiCad V4 or earlier, and I do not know if this is still a requirement.

Interacting with libraries is an essential part of the design process.
Then, I will elaborate a little more on the subject.

My point of view is influenced by my professional experience.
Other may have a different approach, indeed.

As I said previously, Kicad libs seems well thought and flexible, and are obviously the result of an incredibly huge (an successful) effort of design and standardization. :+1:

IMO, what may benefit from a few little improvements is the way we can search and select the elements in the libraries. Namely : the library browser.
The impact on the current official libraries is nil, but improvements would become easy.

=> In the Library Browser / Editor, it would be nice if we could decouple the component name, displayed in the “display tree” (left column), from the “Value” field.

As this displayed name is what is used for components filtering, this is really important, not just cosmetics.

Moreover, as the “Value” field is often automatically used by SPICE, its actual content is not free-form, but bound by what format SPICE expects.
This can be individually overridden, but leads to extra work and more risks of error.

Decoupling the displayed name from the Value field would require an extra “Name” field in the libraries.
But if this “Name” filed is not present, or left blank, we would revert to the (mandatory) “Value” field .
This is totally backward compatible with all the official and current libs.
But enhanced libs could be created or derived from these official libs, even automatically, and still be compatible.

Example : I’m used to libs where I have “atomic” components with “Name” of the form = “Res 17.4k 1% 0603”, or even “E96 Res 17.4k 1% 0603”, and “Value” = 17.4K.

Here is what it looks, transposed in Kicad :

Note that the current Kicad’s Library Browser’s display tree will always display “17.4k”, and nothing else.

Add 0402, 0805, MELF0204, etc… libraries, and you get an hard to browse mess.

Honestly, all the libraries and libraries management tools I’ve used so far professionally made a clear difference between “Component Name” (sometimes both in “short form” and “long form”), “Component Value” and “Component Description”.
There’s are certainly good reasons for that…

My 2 (euro-)cents.

AFAIK, the only place where the Symbol Name and the Value are necessarily the same is within the libraries. Once you place a symbol in a schematic you can change the Value and the Symbol Name will stay the same. I haven’t done any simulations, but I would expect that the simulation would take the Value field from the schematic, not the Value from the library…

Now, I could imagine a use case where one would want the Value different than the Symbol Name in the library and that would be if you wanted the Symbol Name to be your in-house part number. But since the search function in the Library Browser supports searching in all fields one can have the in-house part number as “just-another-field” in the symbol when building your in-house fully specified (atomic style) library.

Yes, it is always possible to make things work, mostly because the filter searches all the possible fields.

But in the case I described, simply “ browsing ” the library (without using a search engine, keywords etc…) is still less intuitive (for me) than what I’m used to.

Not a big deal anyways… and that’s mostly personal preferences:slightly_smiling_face:

I think the broader question here has more to do with a fully integrated parts database, and ways to find stuff in it.

This is not a part of KiCad yet, (also does not has my personal interest), but it is a recurring request, and there are some plans on the roadmap for going into that direction for the “next” version of KiCad, and there is an issue for it:

Different parts in KiCad work differently for finding either schematic symbols or footprints.
For example Eeschema / Place / Add Symbol (normal a shortcut for the “Choose Symbol” dialog does a regular expression like search on sub strings and partial matches in multiple fields, including the “Keywords”, while the “Symbol Library Browser” is just that. It’s a browser without search capabilities.

I sometimes use the footprint editor to search for footprints, as it also has the partial string search for finding partial names of footprints. For example searching for the sub string “P1.27mm” finds all kinds of connectors ( & PLCC & SOIC & more) with that pitch, and the search can be refined by adding a space and more text.

I am also using “atomic” components approach.
But in ‘my KiCad’ :slight_smile: (v5.1.10) Symbol editor looks differently:


I didn’t noticed that I would need something more than I have got.

1 Like

Hi Piotr,
I’m using the development version 5.99 (future v6.0).

At your screen-shot it looks that elements list has something to the right (tool at bottom to shift window). Because of this I suppose that may be you can see more info in it and I suppose that it is what you are asking about.
I have only Windows 7 so I can’t check 5.99 yet.

Try Linux, works like a charm on older PCs (if this is the reason for Win 7).
Some live USB keys allows persistent storage, alleviating the need for HD space and or formatting.
This may be your Kicad 5.99 key (once installed :wink:

Just in case, one of the myriad of links :


Personally I use Linux Mint Cinnamon + Win10 on my PC (Ubuntu derivative), but there are gazillons of others distros compatible with live storage.

I write some programs that have to work at Windows so I have to have Windows.
I don’t wont to have two systems.
When I will have Win 10 I will switch to KiCad v6.

I agree with @pmx. The fact that component name and value name must be the same, cause many difficult in library organization: how do you would name for example different capacitors with the same value? Example:

100n-100V-x5r-0805
100n-100V-x5r-0603
100n-100V-x5r-1206
100n-100V-x7r-0805
100n-100V-x7r-0603
100n-100V-x7r-1206

100n-50V-x5r-0805
100n-50V-x5r-0603
100n-50V-x5r-1206
100n-50V-x7r-0805
100n-50V-x7r-0603
100n-50V-x7r-1206

The fact that symbol name and value name are the same, force to add all possible variants in the value field. If you use the same capacitor value in different case, type, voltage, manufacturer, lcsc code etc. it is very hard to add these possible variants in the value field… And also totally wrong for me…

For each capacitance/voltage combinations I select one capacitor I will use. That is our practice since ‘always’ just to limit number of boxes needed to store them. So I will have one 100n/50V and one 100n/100V. I will probably select 100n/50 0603 and 100n/100 0805. I will specify for them X5R and X7R as possible replacement.
I have 3 capacitor libraries called: C,C1,C2. C is the library for 0603 capacitors as it is our default size. C1 is for 0402 (C1 as 1mm length), and C2 is for 0805 (C2 as 2mm length). So in my libraries both 100n/50V and 100n/100V will have the name 100n (as they are in separate libraries). In C1 100n is 100n/16V X5R/X7R 0402.
But it is only my own solution based on fact that I can decide myself which capacitors I will use and which not.

1 Like

Ok, now understand how you work. But im convinced that it would have been better to have symbol name and value as separate fieds like in pretty all other Ecad softwares. In my opinion field “value” must represent uniquely the component value (1k…100n…) without any other indication.

If I understand things correctly, I have to agree with pmx and Gio-dot. But also, I’d like the possibility of showing the Name field on the schematic. If SPICE uses the Value field, it doesn’t make sense to me that the Symbol Name and Value are the same within the libraries.

I’m in the progress of switching to Eeschema and so far I’ve only tested it a little bit, so I might be wrong in my assumptions.

For me personally, I will definitely set the Name field to our in-house part number. Nothing else really makes sense. This means that every resistor value will get it’s own name and be completely unique. The in-house part number is also what I want to show in the schematic.

If I understand correctly, this means that I have to change the Value of every single resistor placed on the schematic to something like “4k7” if I want to be able to run SPICE simulations on these resistors.

My problem is then not only that I have to change the Value manually, but also that the text on the schematic next to the component will change. I don’t want to show the Value on the schematic, just the Name (in-house part number).

Of-course I can work around this by adding yet another field called “PartNo” which has the same value as the Name and Value fields, and show this field instead of the Value field. But the thought of always duplicating the Name to another field and to always (or at least often) having to manually change the Value after placing the symbol on the schematic doesn’t really make me jump of joy. Especially when having to teach new colleagues to do the same.

My rule (my way of working) is to never ever change element value after placing it at schematic. This way I assure myself that I never add (by mistake) new element without conscious decision of adding new element to my library. It is a kind of self-control. So if I decide to change 1k to 1k2 I delete 1k from schematic and 'A’dd 1k2.
Updating PCB after such change needs to update by element references.

That’s a good rule! That’s how I’m working as well, but in another application which I’m about to switch from. I really like to keep it that way.

Edit: And to be frank I can and probably will keep it that way. This just means that I will probably not start using the SPICE functionality in Eeschema, which is a pity. Or I have to work around it in SPICE. The only problem being that my Value fields are part numbers and not values.

I’m happy that you found a way around this. Unfortunately your solution to this problem doesn’t quite work for me for historical reasons. This would simply give me to many libraries. With my current database of components that would give me over 45 libs for capacitors and over 45 libs for resistors.

As @albin say it would be impossible for me to have a library for each voltage / case/ etc. Too many libraries to build…
Working a bit with KiCad i believe i found best solution for me:

  1. Create a C library
  2. Put inside symbols with basic features in its name/value ex. : 100n-100V-X7R-1206. In this way i can use only one library for all smd capacitor.
  3. When i pick a component from library to place it in the schematic, there i edit value cleaning up all extra info: 100n-100V-X7R-1206 - > 100n.

I think it is not a big issue to simply edit a bit the value field in the schematic.

Is this ok? There can be issues?

It’s certainly a possibility and that’s the workaround I tried to describe in my first post.

However, I don’t want this new Value of 100n to be shown in the schematic since it’s redundant. I still like the part number (“100n-100V-X7R-1206” in this case) to be shown in the schematic. And the work around for this is of course to add “100n-100V-X7R-1206” not only in the Name/Value field in the library but also to a custom field. Then to hide the Value and show the custom field.

The drawback of these work arounds (apart from the work needed to be done and the risk of doing it wrong) is that when adding components to the schematic the components are no longer sorted by their part number, but on a value. I would then have to write the part number to a third (or forth if you count Name and Value as separate), namely to the beginning of the Description.

All and all I believe that I will just not use SPICE in Eeschema at all to make things easier (not just for me but for co-workers).

Regarding the field to be shown in the schematic, for me is better to see only the short form (100n - 1k -…) for this reason i will edit value field in the schematic leaving in it only the value without extra info.