Hover the mouse cursor over any existing label, then press c for copy and drag the copy to a new location.
KiCad also use “No Connect” crosses on unused pins. If there is a mis typed label name, then it’s likely that this gets flagged by ERC as an open connection.
In KiCad-nightly V5.99 there is also an ERC check for labels that appear only once, but I have not checked if this works for all label types.
If you’re really paranoid you can look at: Pcbnew / File / Board Setup / Design Rules / Net Classes. Al nets are listed alphabetically in the lower right corner and you can scan though the list for possible typo’s.
Just why this topic exists, the thing you mention is not possible as there is no label available – until you TYPE a label in the schematics. That’s very dangerous.
Your perception of “dangerous” is apparently a lot different from mine.
I’ve learned to read and type some 40 years ago and I keep up those skills almost daily and I find typing in a label name pretty trivial.
On top of that, using auto-generated net names in KiCad as labels does not make much sense. Those names have no associated function. It would probably be a bit better if automatic names were derived from the pin name of an output in a net. But still. I much prefer having to think of a logical name to use as a net label. This also makes a clear separation between auto generated netlist names and manually labeled nets.
Your statement is too short for me to understand what this danger is.
For example I write at 3 wires connected to RS485 driver their net names (TXD, RXD, TEN) at their input to bus. Then I copy that names to wires connecting microcontroller pins to bus. That way I get that RS485 driver pins being connected to right microcontroller pins. If I decide to drive them by different UART at differnet pins I just move that names to other wires.
Where do you see danger in it and what will be the program behavior avoiding that danger?
How do you give sensible (telling you what that signal does) net names without writing? KiCad can’t know (at least yet) what is in your brain.
I suspect this is just a “KiCad is different from Eagle” thing. What I have gathered (I have never used Eagle) is that Eagle supports the concept of “naming” net wires separate from putting any labels on them. KiCad does not have this concept:you either put a label on and the name comes from a label, or you don’t put a label on and don’t worry about the name (it will be auto-generated for you).
There is not that much reason to see what the auto-generated name is in the schematic side: once you start editing the board, it could be useful for cross-probing, etc. But as mentioned, it is now shown in the message panel at the bottom in the 5.99 nightlies.
@craftyjon: I suspect this is just a “KiCad is different from Eagle” thing.
Yes. This was one of the things I had to understood at my switch to Kicad (after 25 years with eagle).
@TheSwede: Is there anything automatic quite similar in KiCad, which doesn’t force us to type in net names ourselves to get them net names showed, with the risk of typos?
For me (I’m likewise on the transition from eagle->kicad) there are these situations:
nets with autogenerated names. I “ignore” them, they don’t get a label. Highlighting+cross-probing between schematic<->pcb works without labels.
a net with autogenerated net-name should get a new name (a first unique name): add a net-label and type-in the new name. As an eagle-user you must take care at this point: If you type an already existing net-name, kicad directly connects the net with the already existing net (without security query like eagle)
a net with autogenerated net-name should get an already existing netname (to connect this net with the already existing net):
copy the existing net-label from the the original location (like paul mentioned). This is actually my favored way.
add a new net-label, the label-properties-dialogbox holds a pulldown-menu with all available labels. Very convenient and user-friendly, no need to type-in the net-name.
If I compare the kicad/eagle reagarding the net-labels:
in eagle the net-label is only a graphical element. It displays the netname, which is either autogenerated or user-set with the “name” command. It’s not possible to change a net through the label-side.
in Kicad the net-label is the combination of the eagle “net-name”-command plus the added graphical label-element. So the label gives the name to the net. If you delete the label, the net goes back to some autogenerated name. (At this point another warning for ex-eagle-users: this is a renaming-action and this means that you potentially get 2 different nets from previously connected nets. These separation/renaming-process gets a security-query on eagle, Kicad don’t asks but does what the user has commanded. So no safety-net, but on the other hand less nag-screens).
Ι haven’t used Eagle so much that I would have even tested creating nets, but IMO Eagle is conceptually cleaner in this. It just feels strange that a label is a text item which can be free-floating and then attached to an arbitrary wire, creating conflicts or errors. (The same with junctions: KiCad has separate junction dot items which on the other hand give some freedom for e.g. visual properties, but which should be needless because a junction should be a property of two crossing wires, not a separate item.)
From user’s point of view it should not make much difference if the UI is thoroughly thought out. Possible problems should be caught on the fly and prevented automatically. For junction dots much work has been done to prevent those problems: e.g. in 5.99 it’s no more possible to add a junction dot in the middle of nowhere, and even in older versions they are added automatically when T-crossings are created. The same kind of logic should be applied to net names: it shouldn’t be possible to give several names for one physical net (wires connected together) in the first place (ERC is too late for that), and existing labels should always remain connected to wires. Renaming should work automatically, at least as an option, without using text search/replace.
Even if something isn’t conceptually clean, it can be hidden with a good UI so that for the end user it would be only “X is just different from Y”. Right now the labels aren’t that good.
There are already wishlist items for some of these details in the issue database.
eelik, that’s exactly what I try to mention here, good explained! And yes, Eagle and Kicad are different, why not, and I can’t say now (as I’m new on KiCad) which is the most preferable/the “best” one as there is no such thing as “this is the best”.
Also very well explained by craftyjon, thanks for that, and even if “freedom” to do things in software can be good, it can also be not all good… as I see it the software has to at least give a warning when things might go all nuts/crazy with the nets (might end up with short circuits just about anywhere)…
I think KiCad is much more clear than Eagle in this case (assuming I understand Eagle correctly). It seems like in Eagle it is possible to short two nets together (after clicking through a nag dialog) with no resulting visual indication on the schematic. What if you did this and then forgot about it later, and then were working from a printout of the schematic?
In KiCad, there will always be a visual indication if two wires are shorted together: they must either be graphically touching or have the same label. It is not possible for two different unlabeled wires to be shorted together without graphically touching.
OK, if I redraw a bit, I still think this should be detected before the ERC check. For example, use the infobar when the user creates such a label or move a label to a potentially wrong place. When a label is clicked (selected), give the other connected net names in the bottom info area or at least tell there are several names for that net. And when a net name is created, the dialog should handle it as a net name, not just a text item, i.e. know and suggest/warn about other labels or whatever can be done to make things more explicit. We don’t like extra nagging question/cancel/ok dialogs, but the actual function dialog could show warnings etc.
I haven’t thought this thoroughly, but for me leaving floating labels behind when wires are moved is a problem. It’s even possible to accidentally change the net of wires if a label is left in place and another wire moved on it. What kind of workflow would be harder? Maybe those problems could be solved in another way?
Staying in my previous example - when I add to bus the RS485 driver with its TXD, RXD, TEN wires I copy that labels and place them floating. The same if I add the RFID IC, Flash / EEPROM memory. That way I have a collection of floating labels. This prevents me from forgetting one of them. Then I just manipulate with them placing at right microcontroller pins and I often do reshuffle between them.
If floating labels will be not allowed then how to swap two microcontroller wires. Should I add a piece of floating wire just to prepare a room to temporary store one label?
I think mf_ibfeew thinks that, too, but expressed it from another viewpoint. It’s a graphical representation of something more fundamental, while in KiCad it’s an independent item which governs how other items are interpreted.
That’s a good one, and I think I have used labels that way myself. I can of course ask if there could be another way to achieve the same goal. Let’s say again, “OK, if I redraw a bit…” Could there be a way to automatically keep labels attached to wires and prevent naming problems etc., yet allow easily detaching and moving them freely if really wanted?
Why? To me it feels natural, I have thought that way long ago. Net can be a property of wires and pins, a label can be just visible element which shows that property.
I don’t think there’s any rush to change KiCad architecture or file formats. Maybe the current way is really better all things considered. What I really want is to identify the problems in the current way and possible solutions so that KiCad could be easier to use. I don’t really care how Eagle works, but the pressing problems with KiCad’s labels are:
Because they are just text, KiCad doesn’t give much help for naming, renaming etc.
KiCad doesn’t prevent or warn about problematic situations on the fly.
It seems for me more complicated. With labels you can simply swap pin assignment by moving labels. With pins - you can’t. You have to edit their nets with all danger of mistakes during edition. Then what with piece of wire that happened to be connected to that pin - gets new net automatically?
So may be only wires has assigned nets (there should be some way to see that net - the best will be without user action - just if wire has net assigned you see it - what with many segments wire - each one shows its net?). But if only wires then how you copy my TXD net from RS485 driver to microcontroller pin. You copy a piece of wire (with its property net set to it) and collect floating pieces of wires to be then connected to microcontroller pins. I have wires length from microcontroller do bus different then from RS485 driver and other devices as I place there pull-up resistors and sometimes 0R resistors. So manipulating with such pieces of wires would then need to fix their lenght.
For me natural is that net label defines the net and wire gets it from net label. I don’t see any need to improve anything in that. Maybe I’m just not a visionary.