Schematics component(s) get disconnected after library edit

Hopefully the schematic API will be there in v9. It shouldn’t be too difficult to write a plugin which does the cleanup after the update. What you show in the Eagle video is a simple case, just a little misalignment.

Thanks eelik, I don’t think this will be updated, or a plugin, in V9, as it seems no one needs it. To me this is like basics even if my “workflow” may seem to be “wrong”.

It’s not wrong to want that kind of functionality, but your basic tenet that KiCad shouldn’t allow loosing connections when symbols are updated isn’t shared by others. Your workflow should be a rare case, I would be surprised if someone’s daily workflow includes editing existing symbol pins and updating them to shcematics en masse.

If you find moving a bunch of symbols problematic, there may be a workaround. You can use the Search panel and select symbols for example by value or footprint. Then you can move all of them at the same time by the same amount.

I think at the core this is the disagreement between tools like Eagle and tools like KiCad when it comes to schematics. This isn’t specifically an Eagle vs KiCad thing, as there are many other tools out there. The others I have used all work like KiCad, not Eagle, but probably there is some other tool out there that works like Eagle.

The mechanism that Eagle uses is “once a wire is drawn to a pin, that pin is attached to a net, and the pin will stay attached to that net until the user specifically disconnects it”

The mechanism that KiCad uses is “pins form connections with items they graphically touch, and making items no longer graphically touch disconnects them”

Neither is necessarily better than the other. Both make some things easier and some things more frustrating. At this point it is unlikely that KiCad will change to work like Eagle in this regard, especially because KiCad is not standing alone here – there are other ECAD tools out there that also use the “graphically touch” connection system.

1 Like

@TheSwede

Your worry seems to be about editing a symbol, making a global change to the schematic with that symbol, and then not noticing some broken connections.

Your method results in the wires staying connected, but needing to be redrawn to make the schematic aesthetically pleasing.
The Kicad method means redrawing the wires to remake the connections as well as make aesthetically pleasing.

Using Kicad, ERC will prompt you if you have missed reconnecting any wires, thereby also warning you of any wires needing adjustment.

Using your method, it is your responsibility alone to adjust the wiring. It is possible some wire adjustments, especially on a large, complex drawing, can be missed.

I prefer the Kicad system because the program will assist to remake corrections.

1 Like

I disagree. :grinning:

For the reason given in my above message to “TheSwede”.

1 Like

Thanks for all input in this. I will try to forget this unnessesary topic now.

You have a better understanding of what is happening now . . . even if you don’t like it’s behaviour, so you have increased your understanding of how KiCad works, that is always necessary :slight_smile:

I don’t think there was any anger in this thread, perhaps a little frustration, but people are just here trying to help you . . . and will be here again if you need help in the future, don’t hesitate to ask.

2 Likes

Thanks, RaptorUK. “so you have increased your understanding of how KiCad works, that is always necessary :slight_smile:” Yes, but to me it’s actually more how it doesn’t work :slight_smile:

1 Like

The conclusion from this discussion can be that, based of how this problem is solved, all existing PCB design software can be probably divided into two classes.

From what you write:

it looks that for you only one of these software classes behavior is acceptable. If you rely on logic then the natural consequence would be not to use software not belonging to this one class.
Not using KiCad can protect you against error generated, in some unspecified future, by KiCads “design security” issues.
Seriously, it can be worth considering to not use KiCad as such error can be costly so better is to avoid it in advance than wait for it to happen.

1 Like

Does it have to be just one or another? What’s wrong with development and progression, options, why decide only one way is possible? A few years back I happened to mention here a “follow-me-router”, which was a function – to be used if you like or not use it if you dislike it (a personal option) – also that in an early version of Cadsoft Eagle ("Follow Me" (wish list)). That topic was not very hot here which is ok for sure but it was posted by the same reason as this topic – the possibility of something, not to force everyone to use and accept it. Even if this follow-me router may have generated a lot of, not preferable, via holes in the first place it may have been a good starter for making a PCB pretty fast, to be post-optimised if wanted. For sure I like the KiCad software and many of its functions – it’s a great tool which can be even more useable, more safe and even more versatile! Thanks.

1 Like

There is a possibility of killing two birds at the same time here though. Reverse engineering people keep asking for ratsnest in schematic. Now what the system could work by automatically ratsnest the moved pins. Then you would still keep the info what should have been connected for verification. You could then clear this option after fixing somehow. Its kind of a different way of fixing the thing, and much less annoying if you need to reroute the drawing.

There is however a bigger danger at hand. Kicad can connect things when pins are moved. Because the system works as drawn. no solution for that.

Its not a very good idea though to have a user option to change dramatically software behavior. That just means bugs in less used areas and hard to debug issues to users. It is indeed better to be clear but annoying than unclear but less annoying.

Thanks, joojala, well explained!

I am with @TheSwede on this since I think it would also be possible to change the schematic by updating a part from the parts library. If there happens to be a new pin at that location, the part would get connected incorrectly upon updating. It would be great if the pin number was remembered when a wire gets connected to a part. Then, if the pin moves, so would the connected wire.

If I make the change to the part in the library, then it’s on me. However, having this wire feature following the pin on the part would still be great. So when I want to rearrange a part in my global library that might be used on multiple schematics, I don’t need to remember what I did three months ago when I opened one of the schematics I had not updated and took the update.

I use Linux, so I get parts library updates often. At times, there are many updates to the parts, and then you are warned by the ERC to get those updated. These changes would be unknown to me. If pins are moved by someone at Kicad and happen to line up with a wire that I placed, it could connect incorrectly. Also, it is painful to get an updated parts library and have a bunch of broken connections. This happened a few times.

Using somebody elses library is risky. Leave that to newbies.
If using some “managed library”, change/copy it to your personal, and have full control over them.
Changing a symbol in a " managed" should not be done.
When changing your own library’s symbol, and updating schematic there will be a “conflict”, which should be EASY to resolve:
Pop-up dialog asks:
Do you want to update the schematic by net-names OR physical position?
On a related topic, the size of most symbols generally seem to be too big.
Arranging symbols by logic functions to understand them better is useful in some cases, mostly logic chips, but is not optimal for RF parts where signal routing is preferred with minimal number of vias, especially as few programs do “back-drilling” or “controlled depth drilling”, and “blind and buried” via boards are many times more expensive and fewer board houses even offer them.
I make all my RF chip symbols as the physical package, to ease top layer routing.
I have hope that Ki moves along to become a first choice program, not a fall-back option for amateurs.

Here’s another thing with about the same issue as the library thing—very dangerous! This is not unique in just KiCad, many (most) other software does this the same, which means KiCad could be one of the first thinking about this and get it fixed.

Why would you move something and drop it on another net ? and I’m sure the ERC would moan. Why videos ? it tells us very little, what I just watched seemed dumb to me.

2 Likes

Why would? It could happen by accident at any time. My apologies for making videos to show, even if that example was a bit simple/ or if you like to call it dumb. Tried to show what may not really be allowed without getting at least a warning (why not at least have a setting to forbid connections to happen like that/or is it already a setting available which I missed?). Isn’t this behaviour quite similar to allowing a "connection to happen” on a PCB when we, also here maybe by accident, temporary move or place a component on top of a routed track, as if the PCB editor allows to skip the rules from an annotated schematics. And about the ERC, in this specific example, it will probably not say anything. Sorry, but here’s one more video :slight_smile:

Just a final comment from me:

  • A part is deliberately modified.
  • That part is then deliberately used to replace an existing part on a drawing.
  • Making the above two actions should be enough to warn the user to check that modified part for its connections.

For it is not quite similar as netlist is generated from schematic and connections at PCB are generated from netlist so connections at PCB have something to be checked to while connections at schematic are the source of everything so when you do them they can’t be checked with anything.