References from Symbol to Schematic Not Updating

Hi, I’m new to KiCad and was not able to find a similar question to solve my issue.

I am creating a simple high level wiring diagram only using eeschema and I’ve created symbols of all the components first with references i.e. ‘J20’ and then when I go into eeschema to import them the references change to ‘J?’ and I have to manually change them. I could make a reference in text on the symbol and that would transfer over, but I’d rather use the references so that when I go to update symbols, it will show the correct reference.

Any help would be appreciated and thanks in advance!

So each symbol of yours is only used once? Symbols are designed to be able to be instantiated multiple times in a schematic, so the reference number is chosen at schematic edit time.

That makes sense. So is there a purpose of putting a number after the letter in the symbol editor? Will it always be replaced with ?


You should place your individual part number in the “value” line not “ref” line.
Ref is just the position on the board and a way of equating footprints to symbols.

You can make “Ref” invisible globally by:
Schematic Editor / Edit / Edit Text & Graphic Properties / then in Scope tick Ref Des and bottom RHS untick “Visible”.

Just to clarify: usually when making a schematic the “ref” is left alone without numbering. When the schematic is complete you’d go to Tools / Annotate Schematic / Select what you desire / then Annotate.
This automatically gives an individual “Ref” number to every component on the schematic.
If you then “Update PCB” it will place the same numbers in the appropriate Ref fields of all the PCB footprints.

I have never even thought about it.
I would expect that such numbers used in reference name will become a part of reference so symbol with reference J20 placed at schematic I would expect to get J20? reference and then after annotation would get a reference J201 or J202, or … .
If KiCad notices that 20 in J20 is a number and removes it than it is an example of program knowing better than user what user wants what I hate most in programs.
I decided to check if I should hate KiCad. And no - I have copied in my library a varistor symbol and gave it a reference V20 and when placed at schematic it became V20? and after annotation it got V201. Everything correct as I would expect.
I am using KiCad 5.1.12.

I re-checked 6.0.2
I placed a symbol on the LHS, called it V20, re-annotated and out came V1!!!
Obviously either the dumb, stupid program is trying to be smart or there is a bug… Probably both. :slightly_frowning_face:

@Piotr You had better stay with 5.1.12 rather than 6.02 to save yourself a lot of swearing and angst…
Bloody annoying programs that think they know better.

Bug reported

@bebob235 will still need to use the “value” line as that line does not alter with annotating. If 6.0.2 does have a bug (probably) assigning ref of V20 when the bug is fixed will still result in another number on the end. eg. V20? which may become V201 or V206 depending on its placement on the schematic.

I have the feeling that the v5 behaviour is ambiguous and that v6 has tightened the rules. Suppose you had a symbol with the ref Q1. In v5 this would become Q1? when you place an instance. Suppose you had another symbol that starts off as Q and then you have Q? when you place an instance. Now what happens when you instruct eeschema to annotate and it reaches Q10. Which one gets it? Suppose Q1? gets Q10. Now what happens when you edit the instance properties. Should it prevent you from changing the entire number and insist on Q1something? How would it remember that?

I have done the next experiment (V5.1.12)
I placed my symbol with reference V20 at schematic - it got V20?.
After Annotation it got V201 - til now nothing new.
But after next annotation (with “Reset existing annotations”) I got V1.

So that means that KiCad don’t remember that 20 is a part of reference from library symbol.

The whole subject is stupid from the beginning :slight_smile:
No one should use as reference the text ending with numbers.
As I said in my first sentence - I have never even thought about it. The idea that it is possible I got today reading the OP post.
I would not expect any program to worry about consequences so I said that ‘I hate’ :slight_smile: if it would be done.
If user does something like that that as he asks for problems himself so let give him that problems.
If KiCad tries to do something with it then the right solution (in my opinion) would be to not allow to left the digits at the reference end in symbol definition. The other possible solution (but I see not practical usefulness of it) would be to remember the whole symbol reference text and not take it in account while annotation but to avoid ambiguities with other symbols then probably some char (like ‘-’) should be added before the number. Doing that automatically has no sense for me - the better would be to require the user to end reference with ‘-’ what is the same as just not accepting numbers at end.


As I stated above somewhere: the OP should be using the “value” not the “ref”

Yes, agree. I’d better kill off that issue as @Piotr ended up with the same result in 5.1.12 after repeating the experiment.

Issue already closed with comment “as designed”

The “keep existing annotations” needs to be on to keep the numbers showing.

I’d better do more exploring before jumping in and wasting someones time in future. :slightly_frowning_face:

1 Like

Thanks for the great info! This cleared up my misunderstanding with references

1 Like

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