Why is an automatic annotation enforced?

After inserting the symbol “Conn_01x01” from the Library “Connector_Generic” KiCad enfoces a autonnotation, which is messing up my banana plug names:

Power+
Power-
OhmMeter+
OhmMeter-

It appends a “1” to everything, including my single one IC.

This happens once I hit the Update PCB from schematic button:

I really want to keep my names and there is no real reason why I should be forced to have my names ending with a number.

Marko

1 Like

What happens if you name them PowerN and PowerP instead of Power+ and Power-?

It’s the same:
PowerP1
PowerN1
OhmMeterP1
OhmMeterN1

If I look into the KiCad Symbol, then it tells me something about a script generated thing. Is this the reason?

You can turn off auto annotation. But I don’t remember offhand if KiCad will be happy with a refdes that doesn’t end in a number (it might be fine, I just don’t remember).

See Schematic Editor | 8.0 | English | Documentation | KiCad

The script generated bit is unrelated; that just means the library team used a script to make the whole family of symbols at once.

You are trying to use the reference designator field to give names to things. That’s not what the field is for. Refdes is a way to identify each component in a brief, “standard” way which can also be written on the board (at least in theory). If you want other than J1, J2… R1, R2… etc. you should add your own field and hide the reference designator.

8 Likes

I really want to keep my names and there is no real reason why I should be forced to have my names ending with a number.

The reason lies within kicad - it’s a kicad requirement that reference designators must end with a digit. You may read the kicad user manual → documentation for schematic editor → section “Reference Designators and Symbol Annotation” (see link posted by @gkeeth )

If you want this restriction to be removed you may support one of the existing gitlab issues:

1 Like

Can you substantiate this claim in any way?

IMO there are quite often situations, where “things” may/should have names not ending in a number.

Why should “Jumper_A” not be a valid refdes? Why may I not use R7A and R7B?

Forcing reference designators to end in digits is a really annoying limitation.

2 Likes

From the user manual that gkeeth already linked above and mf_ibfeew referred to.

You may have your own opinion about what a reference designator means in general, but in KiCad it means a very specific thing.

1 Like

by “substantiate” I asked for some independent source, not the KiCad manual just stating the debated behaviour.

I still see no technical reason to force refdes ending in numbers.

An independent source doesn’t matter. We are talking about KiCad.

That is how KiCad works today. The feature requests you can upvote to change how this works were already linked above.

You may disagree with this behavior, or think it’s a good idea to change it, but it’s important for the OP of this thread to understand the way things work today.

6 Likes

Reference designator - Wikipedia.

This gives good support for certain kind of flexibility which KiCad doesn’t offer at the moment, but certainly it doesn’t give room for handling reference designator as free form text. If you need free form text field, create one. It’s as simple as that.

2 Likes

This is the funniest remark I read on this forum of the last year (or two).

A few years ago I posted a question (or a suggestion?) to use KiCad’s internal UUID’s for anything software related, and using the RefDes only for “human references” and special cases such as “repairing” imported projects. The answer was something like: "Yes, that would be nice, but the current usage of the RefDes is coded deeply into KiCad. Fixing that would take a lot of work, while developer resources are limited, and there are a whole lot of more important issues.


But apart from that, I also agree with eelik’s remark. The RefDes is an identifier, and should not be used for other purposes.

Not names but references.
I’m curious if you also give the resistors references like SdaPullUp and SclPullUp instead of R1 and R2? Schematic with all symbols having references constructed that way could look fantastic.

Having spent many years doing assembly work I can tell you that RefDes that are not “Standard” (ending with a digit) can cause issues with some assembly equipment. We saw it often when folks did there own think for multi channel PCB designs.

Bob K.

My request for an independent source related to eelik’s statement: “giving names to things is not what the field is for”, so a yet unanswered question is:

What exactly is the difference between a (unique) name and a reference designator?

The cited Wikipedia article states “…usually consists of one or two letters followed by a number” but it doesn’t state that it is a requirement. On the contrary, the WP article gives examples for reference designators not ending in digits: “…e.g. R17A, R17B”.

If the purpose is to make a unique identifier descriptive, what’s wrong with that?

I have seen descriptive names many times in my decades of professional work. I have not observed problems with placement machines.

Although the OP has somewhat stretched the freedom of naming, I wouldn’t go so far as to declare it unacceptable.

Blaming the OP for doing something supposedly unusual didn’t answer his original question “why is it enforced?”. Neither did the quote from the manual.

I may be wrong, but in my understanding, the OP’s question is whether this restriction in KiCad has a technical reason or is arbitrary.

1 Like

Reference designator should make it possible to easily find by software if it is a whole element identifier (if the end char is digit) or identifier of one of many parts from one element (if the end char is letter).
If you use (unique) name like ChannelA and ChannelB then which way do you suggest software should determine if these is one IC having two parts od two separate ICs?

If you want an “independent” source, please read IEEE 315 which captures the preferred prefix for component types. Obviously you are free to use whatever prefix you like but standards exist for a reason

While Kicad (and other eCAD) tools use internal UUID to ensure consistency in what is place and what isn’t, there is not enough room on silkscreen, assembly drawings etc for such a long reference

You are trying to mix a human label to a tool reference such that a specific resistor might be a pull up but the tool doesn’t know this and thus needs means to suffix for more possible parts to ensure a unique silk/label/UI DRC feedback. What will you do on a card that has say 100pullups ?
Would you want each one to be individually named pullup_for_safety, pullup_for_weakoutput, pullup_for_powerup or accept it is a resistor and thus a R# notation is the most practical

Every single part has a unique usage on everyone circuits and thus notes would be a better way to manage this

And finally, your unique workflow isn’t something the vast majority would want to consider and we would want the tool to manage providing a unique label because a computer is better at this then a human is (as we forget) and also you can do back annotate based upon relative position on the PCB such R1 might be top left and R1000 would then be bottom-right, something that is invaluable for thos of us that have had to debug cards

Interesting question, Piotr.

The “end char” is not necessarily a…z but can also be a digit, and there can be various separators (.-_), see Schematic Setup → General → Formatting → Symbol unit notation.

So you can set your notation to -1, then you get U1-1 U1-2 U1-3…

You can name a single unit symbol U1-1

This is a valid schematic in KiCad

it’s not about the prefix but the question whether a reference designator may end in a non-digit, as R17A, R17B.

you mix up my workflow (which I didn’t describe) with that of the OP. As I wrote before, the OP used a somewhat unusual naming, but the example “R17A, R17B” is even mentioned in the Wikipedia article cited by eelik.

Just so people are clear who don’t already know, the answer in KiCad at present is: Yes, if the “A” and “B” refer to different units of the same symbol, and if the symbol unit annotation mode is set to use letters as you mention above.

People in general (outside of KiCad) don’t always use a suffix to refer to different units of one symbol. Sometimes they mean different instances of a component in a repeated multichannel layout, for example. This meaning is not supported in KiCad today.