Upon updating the layout from the schematic with footprint refresh enabled the following parameter of some footprints’ reference and values are resetted despite there being no chances to the schematic:
Position, rotation, visibility, layer and font settings
This problem affects only footprints which were imported via LibraryLoader. All other footprints used came with KiCad.
Neither changing the standard heights in file > board setting > layers > text & graphics nor locking the footprint yielded success.
The update pcb from schematic tool is there to update the pcb with changes made in the schematic. It is not the tool to update footprints with changes in the library. For the latter look in the tools menu for “update footprints from library”. That tool allows you fine control what aspect of the footprint to update.
And there is also the option to right click on a footprint and use “update from library” or even “change”.
I already noticed the difference. In my case I would like to update all footprints in the layout where changes were made in the schematic with the “Update layout from schematic” tool in the toolbar. But I see that all footprint labels of a certain library are getting a reset even though there were no changes to this footprint in the schematic. How do I prevent this label reset?
Correct - you import the change of a footprint for a symbol. But I don’t want to redo all text items if there is a change in a single footprint.
There may be some mismatches to the english version of KiCad since I used a non english version and just translated it. I now switched to the english version and the correct word is text items which includes the reference and value (labels) of the component.
I’m not sure you still understood the difference between updating symbol/footprint connections and updating footprints on the board from the libraries.
If you change the footprint association of a symbol you necessarily must load that new footprint from scratch when you propagate the changes from the schematic to the board. The reference and value texts will follow what is in the schematic. Other texts come from the footprint file. The locations and sizes of these texts come from the footprint file. The old footprint is deleted from the board and the new one placed instead as a new footprint.
There can’t be a way to make sure that position, rotation etc. are at all meaningful if the footprint is changed. Therefore everything is loaded from scratch.
In short - updating the footprint when updating the board from the schematic is effectually the same as placing a totally new footprint.
I can see how it could be useful to apply some properties of the old footprint to the new one, depending on the situation. But it would need new options in the user interface.
I feel like we’re still missing each others point.
In case there was a change in the association of a footprint to a symbol I do not expect the labels/text items to still be on the same spot since - as you said - the whole footprint gets loaded from scratch.
My problem is that this text item reset occurs despite there being no changes to any footprint association. There should not be any need to reload these footprints but KiCad still does it consistently upon every update from the schematic with update footprints enabled.
As can be seen in the symbol properties in Eeschema the Footprint reference is “SOT65P210X110-5N”.
When updating in pcbnew from the schematic, the footprint gets the library reference “SamacSys_Parts:SOT65P210X110-5N”. Upon the next update pcbnew only sees the difference and reloads the footprint.
Changing the symbol property Footprint to “SamacSys_Parts:SOT65P210X110-5N” prevents the reload of the footprint and thus the reset of the text items.
I don’t understand what there is going internally.
Footprint references without ‘:’ were in V4 I think. In V5 all footprint references should have Library:footprint format.
I don’t understand why it writes that it changes references from new ‘Lib:ref’ to old ‘ref’ only.
If such old reference format is in schematic then I would expect KiCad would write "I can’t change footprint to (reference without ‘:’ ) as there is no such footprint (according to new footprint indication format there is no such footprint).
May be some procedures to open V4 with V5 gives that effect.
3rd party symbols which are downloaded from some service often define footprints that way because they can’t know the library structure of the system they are used on. But how that works, I don’t know. Does KiCad find the footprint in the current directory if there’s no prepended library name?
May be it searches for that symbol in libraries and if found usus it notating in pcb as Library:footprint.
Then during Update it sees different name and is not clever enough to find that after search it ends with the same full name.