Updating Schematic components rearranges PCB Layout

Hi,

I am having an issue with my pcbnew board layout. When I press “update PCB from schematic” all of my component placement reverts back to the default. I.e I lose the saved component placement. If I press ctrl+Z it goes back to normal, but I am unable to update my pcb without the component placement staying in tact. There’s A LOT of components on this board so I don’t want to have to rearrange them all over again.

***** Here’s some back ground on what happened this morning*****

This morning I opened my schematic only find that the schematic I have been working on for MONTHS has disappeared. I have absolutely no idea how the heck that happened, but that’s besides the point. On my schematic, I had several hierarchical sheets. These sheets were saved on my project folder so when I opened up sheet1.sch for example, that sheet was intact, but the main sheet to access all of the other ones was blank. I was able to recover my schematic by using the “append schematic sheet content.” I created new hierarchical sheets by using the append schematic sheet button and saved them under a different name from the old sheets. All annotations, symbols, and footprints remained the same by using the append schematic sheet content" button.

In my project folder I moved all these old sheet schematics to a new folder so I wouldn’t confuse the new sheets with the old sheets.

When I run PCBnew from my new schematic, the components are placed how I originally had them, but when pressing the update pcb from schematic button, that is when they rearrange. Is there any way to prevent this from happening?

I am using Kicad version 5.1.4. Any help would be much appreciated!

If you have re-created the schematic faithfully as it was, including reference designators (annotation) so that each symbol has the same refdes which it had in the old schematic, you can try “Re-associate footprints by reference” in the Update PCB dialog.

This is nice looking stuff for humans, however, as far as I understand this does not guarantee coherence between Eeschema and Pcbnew.

The real syncrhonisation is done via “Unique ID”, aka “timestamp” in the lower left corner of the properties window:

So the old Footprints on the PCB are now “unused” and get replaced by new footprints when updating and their position is lost. (Same as what eelik wrote). I also suggest the same remedy. Re-associate footprints by reference when updating the PCB from your re-created schematic.

Also, take this as a lesson to make regular backups of your work. A simple way is to simply put an USB stick permanently into the back of your PC. and write your own files to it regularly. That way you do not loose much even if the complete PC crashes. This is a very easy and cheap method. Many other (better?) methodods exist also of course.

I second the backup part. At our company we use git to do revision handling on kicad files, and it works very well, so just a tip.

Thank you! I did that and it worked. I noticed that some reference designators did change slightly, but it saved me from extra hours of work. Thank you!

Hi Paulvdh,

Thanks for the info! I tried the “Re-associate footprints by reference." I would say about half of my placed components remained the same annotation while the other half did not (I guess not all annotations remained the same as I previously mentioned.)
Are you saying the placement is dependent upon the unique timestamp?

No. But with normal settings updating PCB deletes the footprints for which there are no symbols, and adds new footprints. To the user it looks like the old footprints have been moved.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.