Ok, I’ve been a bad boy. I so loved using KiCad for the first time I couldn’t resist poking and prodding every corner of the program and it’s got me in a bit of a pickle. I now have a lovely schematic and layout that each pass their electrical and PCB design tests.
The quirk is, if I go to the schematic and “update PCB from schematic” (even though no updating is required and no components are selected) the layout will have a collection of a few duplicate components off to the side of the PCB. Those parts are already on the PCB! The PCB design rule checker will have nothing of this and indicates that those parts are duplicate. Back to the schematic and the original parts are now highlighted! (selected).
Oh, I can go to an earlier backup that has none of these problems and rebuild to the latest design. But I wonder if I can clear this up somehow.
It depends on exactly what you did, but probably you can fix this by doing an update PCB from schematic with the re-link footprints to schematic symbols based on their reference designators option checked.
Usually KiCad uses an internal unique ID to keep track of which symbols correspond to which footprints on the board. Depending on what poking and prodding you did, you may have confused that mapping.
As long as your reference designators match up between the PCB and the Schematic, you should be able to do an update with that re-link option, which will make KiCad re-associate each symbol with a footprint based on the reference designators instead of the internal unique ID.
Few sentences that can help OP, I think.
I have my own rule - I don’t edit symbol after placing it at schematic. That ensures me that I will never end with element not belonging to my library. So for example to change resistor value I delete one symbol and insert the next one (there is also something like replace).
After deleting-inserting KiCad has at schematic the symbol with the same reference, but with different internal unique ID (new symbol get new ID).
Because of this I always update PCB having the “Re-link … designators” checked.
After having PCB ready I divide schematic into blocks that I position out of sheet and Annotate whole schematic ignoring the previous references ( just to have some kind of order in references).
This one time I update PCB from schematic with “Re-link…” option unchecked.
My advice is contrary to what Piotr does. Delete a symbol only if you want to delete it permanently. If you want to for example change to an alternate symbol but basically keep the part the same or at least functionally similar, use “Change Symbol” context menu item. Learn the workflows which allow you to keep the “Re-link footprints” option unchecked as much as possible.
You will end up to the situation you see now for example if you delete that bunch of symbols from the schematic and then add them as new ones again, or move them between hierarchical sheets by cutting and pasting. This may also depend on the annotation settings.
This may sound complicated at first, and to a degree it is. KiCad works this way. Fortunately it’s not difficult to learn how it behaves, and you will soon know how to fix things if some situation arises.
I agree with it. It is better as when you delete one (2 pin) symbol and insert second you can have it reversed what will be next problem when updating PCB. It is why I have written that there is some replace (I was writing from Win7 where I can have only KiCad V5 so couldn’t check exact menu function name). I, personally, have no problem with reversing as I place always such elements rotated 0 or 90 degree only.
I spend lot time using KiCad V5 and “Change Symbol” is not there in context menu so I didn’t get used to use it. Second - how often it happens to change resistor/capacitor value - for me it is close to never. I suppose I have done it may be 3 times since KiCad is V7 and twice with my old method and once with “Change symbol” - but I can’t be sure if next time I will just not press Dell key before I remind about this function.
Yup. That did it. A simple re-link footprints check box fixed everything. I gotta get used to looking at the little check boxes sprinkled around the commands.
For me, if there have to be any changes to symbols or footprints, the changes are done in the symbol or footprint library, and then the PCB/SCH updated with the new symbols/footprints. It takes time, yep. But to avoid a mess of different parts and variations… That’'s why many ops suggest you build your own libraries.