Before doing a mess I’m going to ask you the right procedure for this scenario.
I have a quite complex hierarchical board, already routed out. Both schematic and layout are “consistent” and in sync. For some reasons I want to annotate again the whole board. I did this few times in my life (with kicad and also with EAGLE) and I always did a mess!
As far as I understand the procedure should be:
from EEschema: Tools > Annotate schematics > Reset existing annotation
from PCBnew: Tools > Update PCB from Schematic > Re-associate footprints by reference
is it correct?
Of course the goal is to keep the footprints, positions and connections for all components even if their reference has changed after annotation.
That is the way I have done it in the past on the stable version (v5.x) and it has worked.
But you can always try it out, and if you made a backup right before that point or do not save anything after trying out you can always easily correct unwanted results and try again.
If you re annotate everything then “Re-associate footprints by reference” will make you a big mess at PCB, as it will work based on references you have just changed in whole schematic.
The default (“Keep existing symbol to footprint association”) will work for you good.
I select “Re-associate…” when I replace element with new one and give to that new the reference of that old.
For normal association KiCad uses the “Timestamp” (or UUID in KiCad-nightly V5.99) and the RefDes is just for us mere humans.
What the Re-associate footprints by reference does is exactly the opposite of what you want. With this you tell KiCad to use the current RefDes values of both the schematic and the PCB to create new matches between the the schematic and the PCB. The result is that your “newly changed R42” from the schematic gets connected to the " old R42" on the PCB.
About der.ule’s post:
Indeed. make a backup before you experiment with this. Doing an Update PCB from Schematic (which can be started from either Eeschema or Pcbnew) can seriously mess things up with the wrong settings, and having a backup takes the stress out of the procedure.
You can also create a dummy project with a handful of components to experiment a bit with different settings until you know how it works.