This happened only on my computer and was caused by the missing footprint-library. (Some symbols-footprints were excanged during the update, and for others this did not work because of the missing library, so the update process was incomplete and ended with doubled footprint-references).
How do I get rid of the extra footprint?
Normally: Delete one of the double footprints (highlight in DRC-error-window, than select in board, than delete) in the board. If the âupdate from schematicâ runs without errors such double footprint references would also be deleted.
Every time I would try to update the PCB, some footprints would change back to the old library, even though the symbol called out a footprint from the SLM_footprints library.
I canât reproduce this.
I have attached your project, with your footprint library added inside the project-directory as project-library. (This makes itmuch easier for all to reproduce a issue).
The saved state is: schematic+board are synchronized. If I now âupdate board from schematicâ no new changes are introduced.
If you experience a different behaviour (changing footprints back to some old library) than we need exact steps and explicit which footprints are affected.
Thank you so much mf_ibfeew! Everything looks good.
Was it easy to synchronize the schematic and board? If so, I would like to learn how in case it happens again. I will avoid cutting and pasting from now on.
relink with refdes checked: footprint is preserved if already a footprint with same reference exists. The internal UUID for symbol+footprint are synchronized
relink with refdes unchecked: if existing footprint +symbol have different UUID-numbers (because of cut/paste/paste special): existing footprint is deleted, new footprint is added
As far as I know this is the simplest way to do it. Paste Special can keep the reference designators, otherwise you have to re-write them manually.
This is not a difficult workflow once you know it, but not certainly user friendly for those who donât yet understand how the schematic <-> PCB linking works in KiCad.
The important thing to remember is to first ensure that the schematic and the PCB are fully in sync before doing this. If there are other pending updates at the same time, it may lead to troubles.
The answer from eelik already contains all points, I have only put it together as a bullet point list for better overview:
make sure boards + schematic are in sync (update âboard from schematicâ with option "relink with refdes"unchecked).
select and cut the desired symbols from the source sheet
Paste special (from context menu) with option âpaste with existing Refdesâ set
directly run the command âupdate board from schematicâ, with option ârelink with refdesâ checked. This should update the syncronization (and therefore the UUID-numbers) between board+schematic, without changing the footprints or their positions.
again run the command âupdate board from schematic,â this time with standard option ârelink with refdesâ unchecked.
additional list with remarks to the above list:
If you are using the update-command regularly (as recommended above) than step 1) (synced state) is already the normal case
between step 2+3: no other actions with symbols (adding, deleting, reannotating, ⌠) on board+schematic, as this would influence the current Reference deisgnators
step 5) is not 100%needed, but recommended (by me): as Kicad saves the dialog-settings the state of this checkbox would be saved and on your next dialog-usage you may overlook this non-standard setting. So better take this step 5) and run a second time with option reset to standard value (unchecked).
so in practice step 2+3+4 remain (and step 2+3 == copy/paste are required in any case)
I suppose that even if footprint with the same reference exists, but footprint assigned in schematic to the symbol with this reference was changed then footprint will not be preserved. But I have never checked it as I donât change at schematic footprint assigned to symbol.
For me standard I use is checked. It is because in my workflow changing the symbol value is not accepted. If I want to change the value I delete the symbol and insert the new one (with its value). So the Ref is the same, but UUID changed. Thanks to that I avoid the risk of changing value to not existing one (like changing 1uF to 10uF without changing the footprint). In V7 inserted symbol automagically gets the same reference as just deleted on .
I use unchecked only once at the end when I do the order in symbols references. I divide schematic into parts distributed out of sheet, run Annotate, then put those parts back at schematic and then run Update PCB with this option unchecked.
Thank you for the detailed step-by-step process. I performed steps 1-3. When I tried to update the board again (step 4), I got the âUpdating requires a fully annotated schematicâ error message. The pasted components still have their ref deses. I could not find any missing ref deses.
So I let it annotate and it said there are duplicate reference designators for the symbols I cut and pasted. The duplicates are on the schematic. I change the ref des on the cut-and- pasted symbols to conform to their footprints.
I then updated the board with ref des checked and it seems to have worked. I just donât know how I ended up with duplicate designators.