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!
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.
@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
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’ 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.