Have PCBnew only update selected parts from schem?

Hello. Is there a way to tell PCBnew to only update certain parts from the schem?
Example, I have a few footprints that I’ve modified just for this PCB (not in the library because they are only for this PCB). Before finalizing my PCB I saw a couple caps I forgot to add on the schem. If I choose to “update from schematic” to bring in the new parts, KiCad changes all the edited footprints back to how they originally were.
Any convenient way to only bring in the added parts and leave everything else alone?

It’s not my preferred workflow. If you let the schematic and PCB get out of sync you progressively get into more trouble, and at some time you can’t keep track anymore of the changes you’ve made. For this reason I always prefer to put any footprint I’ve customized into a project specific library, and then make the links in the schematic symbols point to the footprints in that library.

Part of my workflow is also to do a checklist at the end of a project and just before I create Gerber files, and a full Update PCB from Schematic is a part of that checklist. If it updates anything during that step, it fails the checklist and I restart the checklist just as many times as needed to get though the checklist without changes or ERC or DRC violations.

But that said, if you prefer sloppy work and quick fixes, then you can Schematic Editor / Tools / Update PCB From Schematic [F8] and then read the text for the options before you click [Update PCB].
One of the options is Replace footprints with those specified in the schematic and if you turn that option off, then the footprints you’ve modified on the PCB will not get updated and remain as they are.


It’s important to understand what you mean by this. I think Paul understands correctly, because if this is understood in another possible way there’s a bug in KiCad or you use a workflow which you shouldn’t use.

It looks like you mean that you replaced the footprint on the board with another footprint so that the footprint Library:Name is different. This can be done with Change Footprint action. In that case the update process replaces the new footprint again with that which is defined in the schematic, unless you change the option in the dialog.

If not – if you just opened the footprint on the board with the footprint editor, edited it and saved it back to the PCB – there’s something else wrong.

Yes, I was asking for the “sloppy work and quick fix method”
Thx for sharing.

It’s not a matter of not knowing proper workflow or how to keep things organized. It’s much more simple than that.
There are a few pots where I edited the silk screen to keep things looking nice and tidy and are unique to the board. Purely a visual thing. I intentionally choose to edit these footprints only (not in the library) just before finalizing everything. As mentioned, for design purposes tacked on 2 caps at the end.
Seemed reasonable that there would be a way to import 2 caps at the end and leave everything else untouched.

But KiCad doesn’t change existing footprints that way when you update PCB from schematic. It doesn’t replace them with another footprint or update them from the footprint libraries. It does what you want, " import 2 caps at the end and leave everything else untouched".

Actually, in pre-6 development version, the UI was changed to avoid giving an impression that KiCad would update the footprints at the same time. People tried to edit the library footprints and then update the board by using the Update PCB from Schematic dialog, and it wasn’t meant for that.

1 Like

It does change them. That’s why I made the topic. Unless there is a setting that I can’t find.
I made a workaround, had to save a new footprint for each individual pot, update on the schem, that way it wasn’t changed. But obviously, less than ideal.

I just tested with v6.0.5. It doesn’t change edited footprints. Please show us something, describe your workflow step by step (mouse clicks, menu items, dialog settings etc.) starting from a situation where the schematic and the pcb are completely in sync. Maybe take a screencast and attach it here, that way nothing what you do is hidden from us.

If possible attach the archived project.

It does change them. That’s why I made the topic

As eelik said this is unusual. My guess is that schematic and board already out of sync prior to adding the two new capacitors.

To clarify, here is an example:

Lets say I have a potentiometer placed on my PCB. To accommodate the board, I may have to move around the silkscreen graphics (in this case, I’ve noted on the PCB that this is a A100k pot, for “VOLUME 1”.
If I update the from schem, everytime I do this, it resets the placement of the text to default. So I have to back and more the stuff back again. Thats one example. thx

I understand your description, but like eelik I can’t reproduce it. As said it’s also not normal behaviour.

Currently I think your description is not correct or, more likely, the description is not complete. To recreate a problem you have to write an really exact step-by-step description, starting from a new project and writing every action/mouseclick.
Or post an example-project - if you want help you should help us.
If you create such an example: either use kicad-standard-libraries or include the libraries into the archived project. Otherwise the issue also can’t be recreated.

For you to play around I have attached an example-project (normally I expect this from the questioner):

  • Two symbols J2/J3 in schematic, with the same original kicad-pinheader footprint assigned (Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical).
  • Board updated from schematic, both footprints got imported.
  • Footprint J2 selected → doubleclick → footprint properties dialog opens → button “Edit Footprint”
  • the footprint opens (with yellow warning “editing J2 from board, doesn’t saves to library”)
  • some texts on silkscreen added, → exit modifying J2 (saved)
  • this is the archived status you should see at opening my project
  • now run Tools–>Update board from schematic → nothing happens, footprint modifications are retained

forum_update_board_01.zip (18.8 KB)

This should not happen:

And I just tested this in a simple example and KiCad does not do this.
At the moment I assume it is a result of either “sloppy work”, or using a workflow you do not fully understand.

To diagnose this, I ask yo to:

  1. Create a new project just for this.
  2. Put a few resistors on the schematic, connect them, do footprint assignment etc.
  3. Put those footprints on the PCB.
  4. Move some silkscreen text, and then post a screenshot.
  5. Update the PCB from the schematic again.
  6. Post another screenshot if the texts have moved from step 4).
  7. Zip up the project and post it here.

ok, I will try this later tonight. But just to clarify from the replies above, there is no way (or workaround) to tell PCBnew to only update a specific part from the master schematic, correct?

there is no way (or workaround) to tell PCBnew to only update a specific part from the master schematic, correct?


KiCad is built around the assumption that the schematic and the PCB should always be kept synchronized with each other, and if you attempt another workflow you are constantly fighting against KiCad and that can only lead to headaches and other pains and is also error-prone.

In general, your schematic is the reference and has all the information, and you do not change texts on the PCB. (Adding silkscreen texts such as version number or extra labels is normal though).

It’s even normal (and advised!) to place mounting holes on the schematic, and assign the footprints to them in the schematic, just to Keep KiCad happy with a neat synchronization between the schematic and the PCB. Maybe this sounds silly to you (It did to me at first, a long time ago), but if you do this, then KiCad helps you by doing a lot of automated error checking that is both very tedious and error prone if you have to do it manually.

Or, to say the same in other words:
Computers are very good at repetitive tasks, but the time the KiCad developers have available to work on KiCad is limited, and they are unable to implement each and every possible workflow. Therefore, to work effectively with KiCad, you may have to set aside some stubbornness (or pride?) and adjust to a workflow that “works”. After you’ve done this a few times, you get used to the workflow that “works” and you forget your old habits. But this does take some time and practice. And this is not only true for KiCad, but for all programs. There are always limitations and learing to work with them is often half the effort of learning to work with a new program.

1 Like

This is how I understand your workflow from your description. Look, it doesn’t happen. The modified footprint stays modified. Now, how your real workflow differs from this?

How do you do that, exactly?

how do you add the text info? Is that what you mean?

Yes, and I’m adding words to make sure this response exceeds the minimum.

After 12 days it seems that a sloppy fix isn’t so quick after all.