Import Netlist resets all Fab layer positions

I’m pretty sure that a large percentage of people don’t bother with the Fab layer in Pcbnew. However, I am working on a PCB where the prototype quantities are low enough that they are being hand-soldered (before moving to production). And the company requested a Fab layer to aid in assembly.
No problem, I worked one up, spent a long time rearranging the text on the Fab layer so it was readable, etc., etc.

After making quite a few updates, I came back to the Fab layer, and noticed that every single one of my edits was gone. Back to square one. I started moving Fab text around so it was readable…then decided to change the Fab name on several connectors to a more descriptive name.
…so I changed it in Eeschema -> export netlist. Pcbnew -> import netlist. (“Update footprints” is checked, as always.) And poof, every single change I’d made to the Fab layer was gone.

I did find this old topic sort of on the same subject, but not fully: Importing netlist without resetting ref/value positions. I can understand the ref/value getting reset if the footprint was changed. But if I’m just updating the netlist, it doesn’t make any sense to reset everything.

To sum up: I don’t understand why the Fab layers get reset when the netlist is imported. Ref layer and most other settings do not get reset after a netlist import. So why the Fab layer?

Could someone shed some light on this?

Always tell your Kicad version.

In 5.1 you don’t have to use external netlist; just use Tools -> Update PCB from Schematic. Try that.

1 Like

If you updated only the Fab Layer on the board (Right click->Edit footprint->Save changes to board … ) then you have only changed the footprints on your board, but the library footprints remain unchanged, hence, when you make “Update footprints” the footprints from the library get reloaded an your changes are gone.

You can:

  1. Lock the footprint, it wont get updated when you load the netlist again
  2. Uncheck “update footprints” if you haven’t change them (new stuff will be added, but there will be no reload from the library)
  3. Change your footprints in the library and then your changes will be permanent.

As a side note, have you heard of the Interactive HTML BOM plugin ? The name is a mouthful but the plugin is wonderful and it serves your case if your fab would be willing to try it.

Hope this helps,

We need some more information about the workflow of the original poster. I don’t think footprints were edited at all. Ref and Val fields in the Fab layer can be moved directly on the board. I have done it successfully many time, without them being reset when I use Tools -> Update PCB.

BTW, the “Update footprints” in the Update PCB dialog doesn’t reload footprints from the library. It only changes footprints of those symbols whose footprint field was changed. There’s no way to update all footprints from that dialog; it’s done in Update Footprints from Library dialog, and there’s an option to reset/keep text features of footprints.

1 Like

Sorry, I forgot the basics of error reporting.
Thanks for the suggestion about Update PCB from Schematic…I never had noticed that option (though I did notice the “export 3D model” feature, which is mighty fancy!) Might try it, though it’s not on the toolbar for easy access. In my case, I sometimes add/remove parts from the schematic, and just need to get the PCB up to speed–but at least to me, this should not reset the Fab fields on EVERY part on the PCB.

Application: KiCad
Version: 5.1.6-c6e7f7d~87~ubuntu18.04.1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 4.15.0-109-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.22
Boost: 1.65.1
OpenCASCADE Community Edition: 6.9.1
Curl: 7.58.0
Compiler: GCC 7.5.0 with C++ ABI 1011

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=ON
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

@der.ule
So by “updating the Fab layer” I simply mean “moved Fab field around.” Just the X & Y (and sometimes text size for particular tight areas). At least in my case, reloading the netlist causes a full reset to default for X, Y, orientation and text size for Fab fields. But it does not reset any of those settings on the silkscreen Ref text or other items.

  1. I already have one locked footprint, and it’s a pain. If I have to lock everything, then what is the point of a lock?
  2. That is a possibility. I’m more confused over why Fab field orientation gets reset, but Silkscreen (Ref) text does not get reset.
  3. I am not referring to custom components, these are stock KiCad library components (0603 resistor, 1210 capacitor, etc.) And the Fab text orientation is different depending on where it fits.

Correct in the footprints NOT being edited. I suppose I’m really moving the Val field on the Fab layer…and when I use Tools -> Load Netlist, zip, all of the Fab fields reset to their default positions. But it does not affect the Ref fields on the silkscreen layers.

Anything else?

Humph, I tried to make an example post of the problem, only to not be able to reproduce it. And noticed that the “Update PCB from schematic” button is right there on the toolbar.

Maybe I’m just barking up an empty tree. But I do know that Pcbnew has reset all of the Fab field locations on TWO separate occasions. Once behind my back, and once right in front of my face. And I sure haven’t replaced every single part on the board on an update…

Checked it out. And in a word? WOW! It’s good. Too good in fact. I might like to remove the ability to highlight traces, but that is quite a project. Maybe this “bug issue” was worth it just to get the suggestion for that.

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