[SOLVED] Force update of footprint?

How can I force an update of a footprint on my board from the library?

“Update footprints from library” doesn’t seem to work if the only changes I’ve made are things like text formatting and placement. The only thing I’ve found is deleting the component and updating from schematic, which sucks…

EDIT: my version info

Application: kicad
Version: 5.0.0-fee4fd1~65~ubuntu17.10.1, release build
wxWidgets 3.0.3
libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
Platform: Linux 4.13.0-46-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
Boost: 1.62.0
OpenCASCADE Community Edition: 6.8.0
Curl: 7.55.1
Compiler: GCC 7.2.0 with C++ ABI 1011
Build settings:

For a single footprint edit the footprint (shortcut E) -> Change footprint

unfortunately, that doesn’t work. it reports the footprint changed, but nothing is updated.

I’m guessing there’s some comparison to decide if the library footprint has changed, that doesn’t get triggered by small changes like updating silk placement?

I have used this tool hundreds of times. I cannot check it with 5.0.0 version, only with 5.0.2 and it works fine.

Nothing is compared. Even if the footprint has the same name the tool works.
Are you sure you saved the changes in the same library?

Try the tool with a very different footprint to check it works. You can always undo the changes.

yes. I just created a new test project with a single library and single footprint to verify. it does not work.

I will try to record a screen session to demonstrate.

Here is a screenshot from the development version. It works fine. Note that you can choose whether to leave text items untouched or not. Maybe you meant that you changed text items but nothing else in the library? And tried to get those changes to the board? Maybe they aren’t updated in 5.0.


Text fields (reference and value) are not coupled to the footprint when placed on the pcb. Otherwise you could not have different text field placements, sizes, … for different instances of the same footprint.

The way it works is that these things are initialized when the footprint (for a specific identifier) is loaded for the first time on the board. After that these values are fixed with the pcb file. There is a edit all footprint field tool that can be used to patch edit this sort of thing. If you only want to change it for a single instance then go via the text field properties dialog from within pcb_new.

1 Like

This is what I mean.

You can see that “Update Footprints” does not reflect the changed positioning of the REF silk. However if I add a new copy of the footprint it does get the updated version.

That’s rather silly. If the silk is not part of the footprint, why is it edited through the graphical footprint editor, not simple a text property field? Sounds like this is a “working as intended” bug then.

The full update options section is missing from current stable. So it might be that these things can not be done easily in current stable but will be possible with version 5.1.x

Thank you. Looks like I need to update to nightlies

How would you implement that? You can move text fields independent from footprints. This is an important feature

It is seldom the case that all 50 resistors you have on a board can have their reference and value field at the same position. Sometimes they even require different text sizes. And we have not even started to think about having the same footprint in different projects.

But yes a way to reset these values to the default setting coming from the lib is a nice additional feature. This is why this seems to have been added to the update footprints dialog for version 5.1

You can edit all kinds of things on the board independent of the library, but you lose those changes when you update from library if you don’t lock the component. Why treat REF silk differently?

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