Avoid automatic numbering?


Kicad keeps adding numbers after each component names
it’s annoying beyond imagination, and I cannot find a way to disable this feature



How much do you know about PCB design? Are you talking about ‘R1’, ‘C2’ etc.? If yes, they are reference designators which are meant to work like that. The letter isn’t a “name”, it tells what kind of component it is, and the number is unique. It makes possible to tell apart each component instance and to refer to it in different contexts. In KiCad you need to annotate manually with a dialog, otherwise there are no numbers, only question marks.

If you are are talking about something else, please clarify. KiCad doesn’t automatically add numbers to component names.

ok I mixed the reference with the component name
I renamed SW1 SW2 SW3 to KEY_UP KEY_DN _KEY__LEFT and of course kikad added numbers

Unlike OrCAD or Altium Designer, KiCad doesn’t allow you leave certain references without annotation with number.

One of my customers always asked me to use “P+” and “P-” for power connection pads. But they will become “P+1” and “P-1” when auto-annotation is executed. So, I have to hide both references and place two new text labels for that. Then, I made a mistake… when I swap the location of P+ and P-, I forget to swap the two labels. Yes, the board is damaged when supply supply is connected.

As in your case, I have some projects which use 6 key switches. In Altium Designer, these keys are named KEY_UP/KEY_DOWN… Recently, I ported these projects to KiCad, they were auto-annotated as KEY_UP1/KEY_DOWN1… My customer asked me: what’s that? I really don’t know how to explain this issue to a non-tech guy. So I changed the references to SW1/SW2… then my customer said he doesn’t understand what function is SW1/SW2… Then he asked me to change them back to KEY_UP/KEY_DOWN… That issue is very annoying in real projects.

When auto-annotation is executed, it will be much much better to only annotate references ended with number or ‘?’ and keep others as they are.

But… you must know KiCad is not commercial product. There must be enough complains before the design team put this issue in schedule… just like the coordinate system issue.

I don’t see any issue here. Reference designators aren’t meant for naming. As I said before, they are meant for design reference only and they are a standard thing in PCB design. See https://en.wikipedia.org/wiki/Reference_designator. Don’t misuse them. They are not for comments or instructions or naming. If you need something else than internal unique identification you have to use normal text fields, and I don’t see what’s the problem with that.

Who is the user?
If he writes the software and needs to know which microcontroler pin gets what information I would just left SW1/SW2,… and use net names like KEY_UP/KEY_DOWN at lines connecting keys to bus and then the same nets where microcontroller pins are connected to bus.
If the user is someone who just reads at PCB the key description then…
I have never used Protel generated silkscreen gerber, but placed what I need (texts) at another mechanical layer and send that layer to factory to be used as silkscreen. In my case that were terminal block pin descriptions.

I suppose you have user type 1, as if 2 then keys have to be wrongly placed if user don’t know which one is Up, and which Down.

I would also argue that using the refdes for this usecase is at best a hacky workaround.

I think the correct way to do it is to have a separate field in the schematic that is synced to the layout and can be placed onto the silk layer (example have the field “end_user_descriptor” and then have this field visible in the schematic and pcb)

I seem to remember that v6 will allow adding such custom fields in footprints and have them filled from the schematic but don’t quote me on that. If this is indeed possible then you have your correct solution without the need to misuse the refdes.

Isn’t this what kiBuzzard is for

There are two unfair comparisons there. First, if a product is commercial it doesn’t mean you can just wish something and it will be implemented. And you can actually pay for features if you want something in KiCad, provided that it fits in with the overall plan and vision of the lead development team. You can even code it yourself if you know programming, unlike in a commercial product.

Second, the coordinate system issue has been a recurring wish and a cause for debate for years. This refdes numbering, on the other hand, I saw for the first time in your post. Please report it to the bug database, who knows if someone takes it for implementation. I don’t see a reason in principle why it couldn’t be implemented, even though using it would break the standard use or reference designators. The current development decisions have shown that the developers don’t want to dictate and restrict too much how KiCad can be used, even when using it in a non-standard way may lead to some problems.

While I won’t try to speak for the whole team, I think we are somewhat more likely to want to make it easier to add and display additional fields rather than changing what refdes means.


Sorry, I can’t fully agree with this:
“Don’t misuse them. They are not for comments or instructions or naming.”

It is no doubt that RefDes is the name shown on schematic and also the default label printed in PCB. When I see “R1” in schematic, I know I SHOULD be able to find a component named “R1” in PCB.

If I hide “R1” and add a new text field like “RG” to replace it on PCB, then there are inconsistent. When my customer see “RG” on PCB and try to find it on schematic… guess what, he can’t find it.

You may say that I can also add a text field with value “RG” and shown it on schematic… then, should I hide “R1” in schematic? That will make things even complicated since the generated BOM doesn’t include RG, it only has R1.

Or, should I keep both R1 and RG shown on schematic and PCB?

Please don’t make things complicated when easy&simple method is already there for decades and used by many commercial products such as PowerPCB and Altium Designer…

I have been using schematic and layout tools for more than 20 years. I do know what PCB design is.

Why not? A former colleague of mine use to say when people tried to make a variable or record field in a program do multiple duties, that this was overloading and the design would prove to be brittle. He was often right.

I would opt to have a RefDes visible for all components, with descriptive text when needed. Why RG? Why not Gate Bias or something like that? Why limit yourself to something starting with R? Ok maybe resistors are a poor example. I have for example where the switch is labelled SW2, and additional text says Set Hours. I abuse the Value field for this but I would use another field when it’s available in future versions.

Ok, it’s not true that I leave the RefDes visible for all components. I turn them off for mounting holes. I suppose for some boards it’s important to make sure you can identify the holes, maybe they fit the case in a certain way.

What you really need is: Annotation should only annotate elements with names ended with ‘?’.
It will be useful solution but what if the user by mistake give the same name for two elements.
Currently after annotation KiCad can be 100% sure there are no two elements with the same reference.

There is a difference between what is done and what could be done.
In Kicad today refdes are exactly what was stated and thus the stance of "don’t misuse them" is valid because of this.
What could be done is a different thing… Do other packages ? maybe (Mentor doesn’t…) Could Kicad? sure but suggestions are raised via gitlab. Does kicad? no

So have many of us, not sure how this is relevant

KiCad should report error if two elements have the same reference when doing DRC.

The ERC in the Schematic Editor will indeed report an error if two or more components have the same reference.

Where I need additional information on the PC board beyond the designator and/or value, I have used the Text tool to add the information. If I already had descriptive information in the value, I would simply set that field to be visible on the silkscreen. Are these not options in your workflow?

That is obvious, but may be after annotation and before DRC KiCad could be confused enough to not work properly (connection lines, user routing control). I don’t know. If so - the question arise - is it important enough to spend a time on solving that confusions to allow not numbered symbols.
I all the time agree with you - even I don’t need it I understand that it will be useful solution.
You should add that as a wish in KiCad bug report system.

Seem like you may want to take a look of using the “Value” field for those special components instead of References field.

The Value field could be turn on as Silk Screen in PCB. So I use this field for Connectors, and buttons.

In addition, most of my connector footprint would default the Value field as Silkscreen, and Reference as a Assembly layer. Where other normal component (Capacitors, Resistors etc.) foodprint the Reference use for both Silk Screen, and Assembly layers.

Hope this help your issue.

1 Like

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