Placing net label should offer existing name

Hi All,

in complex schematics, I often use net labels on more than one place of a net to save the user from having to visually track the connection themselves.

Currently, I need to set the name of the label for each label set, even if the net already has a label. I consider this a bit inconvenient, and also error-prone, because I can set/select the wrong name and get no error until invoking ERC.

Wouldn’t it be nice if KiCad offered the existing net name, if I already placed a label on this net?

At first sight, this seems a bad idea. Adding such redundant information makes it easy to make mistakes, and harder to modify the schematic later.

I have not seen your schematic, so don’t know details, but adding more labels does not clarify a wiring mess, it just makes a bigger mess.

Currently, KiCad asks for a label name before the label is placed, and this is not compatible with your wish. For me, it would also be more logical that during placement of a label, the coordinates are chosen first, and then a net name is chosen. Labels do have a drop down menu with already existing label names, so that helps to prevent spelling errors.

You can also simply make a copy of an existing label (hover and press [Ctrl + d]) Then you can rotate and mirror the new label before placement.

1 Like

Having several labels in one network is not a problem in itself, and it can improve readability.

The real problem is the design decision how labels work in KiCad: Labels only want to set a net name, but don’t follow changes of the net name. A net and labels attached to it are not handled a unit (IOW synchronized).

Not only the scenario described in my OP (adding a label to an already named net), but also renaming a net is much harder because of this limitation.

Another problem is that I can attach conflicting labels to a net.

Think about what it would be like if labels would act as an indicator for the net name? Then, when I rename a net with two or more labels attached, the labels would also be renamed.

If the net is split into several segments, KiCad would ask me whether to rename only this segment or all segments on this sheet or all segments on all sheets.

All labels would always reflect the net name, and I could not attach conflicting labels to a wire.

What would be the drawbacks of such an implementation?

This is by design.
There are several different situations where you want to connect two different labels to each other, and KiCad allows for this. It does issue a (suppressible) ERC warning for this though, because KiCad can not know by itself whether this is intentional or not.

Is there a way to show the net name?
I could see this being useful if (as I prefer) the schematic was drawn with lines rather than the “connect by name” style so many people like.

can you tell me about these situations?

What is the resulting connectivity then?

Euhm, not much…
Sometimes I use it myself, but my mind is a bit fuzzy, and then I forget in which project I used this or why. I think this mostly happens when schematics have distinct sections. Sometimes a single net has different meanings, depending in which section of the schematic it is used. And similar to simple labels, whole buses can also be renamed when they are going through a hierarchical design.

When Labels are connected to each other, the nets merge into a bigger net, and the name of the net is chosen according to some rules. You can read more about those rules in the manual. Schematic Editor | 9.0 | English | Documentation | KiCad

OK, I just tried it, and it does do this.
If you click on the “add label” tool it brings up a dialog box to type in the label name, but if you cancel that, and just click on the wire with the tool, it will place the existing name.

I just duplicate the label. This fits well in the workflow, as I assign one label to (usually) “both ends” and then do the next one.
The slightly annoying part is changing the direction (input/output). A hotkey would be helpful in this case. But as I’m not one of those that needs two labels for every resistor, I don’t bother too much.

But yes, there are cases where you need a lot of labels and buses.

The slightly annoying part is changing the direction (input/output). A hotkey would be helpful in this case

mirror horizontally? (“X”)

No, change the input to output or vice versa.

Great, thanks!

With your hint, I found an even simpler method: Place the cursor over a net and press L, then the correct label is set.

1 Like