Update footprints without resetting the reference and values

Greetings,

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.

Edit: Using KiCad 5.1.4

Best regards
Arktarus

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”.

2 Likes

Thanks for the reply.

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?

Update from library didn’t reset the labels btw.

Please be more careful with the wording.

What changes in the schematic? You don’t make changes in footprints in the schematic. You change the footprint of a symbol.

What is a footprint label?

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.

1 Like

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.

Stepping through the steps:

Before the update from the schematic:


As you can see I have moved the value on the F.SilkS layer and the reference on the F.Fab layer. Both text were resized. The T1 above the footprint is just text.

Since I am not allowed to share all pictures in one reply I had to split up.


Now I update the PCB with no changes made to the schematic - especially no changes to the associations of the symbols to footprints.


After confirming the update with “Update PCB” the text items were moved back to their original layer, resized to their original height and the visibility of the value text got disabled.

As said - this problem only affects some footprints. Others will not have their text items reset.

The dialog message says that there has been some change. Maybe your library setup has changed? For example SamacSys_Parts:SOIC… -> SOIC…

Those footprint identificators are different, handled as two different footprints.

2 Likes

Indeed - I didn’t pay attention to the changes…

Seems like the problem results from LibraryLoader setting the symbol properties incorrectly.


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.

Thank you for your help.

2 Likes

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.

Even v4 had footprints with the library:footprint syntax.

You might be thinking of symbols where this is indeed new in v5.

You are right. I was not sure, so I added ‘I think’.
So where from such references could come - from V3 (I don’t know how it was before V4).

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.

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