Chapter 8. Note about portability of KiCad project files

Chapter 8. Note about portability of KiCad project files

What files do you need to send to someone so that they can fully load and use your KiCad project?

When you have a KiCad project to share with somebody, it is important that the schematic file .sch, the board file .kicad_pcb, the project file .pro and the netlist file .net, are sent together with both the schematic parts file .lib and the footprints file .kicad_mod. Only this way will people have total freedom to modify the schematic and the board.

With KiCad schematics, people need the .lib files that contain the symbols. Those library files need to be loaded in the Eeschema preferences. On the other hand, with boards (.kicad_pcb files), footprints can be stored inside the .kicad_pcb file. You can send someone a .kicad_pcb file and nothing else, and they would still be able to look at and edit the board. However, when they want to load components from a netlist, the footprint libraries (.kicad_mod files) need to be present and loaded in the Pcbnew preferences just as for schematics. Also, it is necessary to load the .kicad_mod files in the preferences of Pcbnew in order for those footprints to show up in Cvpcb.

If someone sends you a .kicad_pcb file with footprints you would like to use in another board, you can open the Footprint Editor, load a footprint from the current board, and save or export it into another footprint library. You can also export all the footprints from a .kicad_pcb file at once via PcbnewFileArchiveFootprintsCreate footprint archive, which will create a new .kicad_mod file with all the board’s footprints.

Bottom line, if the PCB is the only thing you want to distribute, then the board file .kicad_pcb is enough. However, if you want to give people the full ability to use and modify your schematic, its components and the PCB, it is highly recommended that you zip and send the following project directory:

  1. tutorial1/
  2. |-- tutorial1.pro
  3. |-- tutorial1.sch
  4. |-- tutorial1.kicad_pcb
  5. |-- tutorial1.net
  6. |-- library/
  7. | |-- myLib.lib
  8. | |-- myOwnLib.lib
  9. | \-- myQuickLib.lib
  10. |
  11. |-- myfootprint.pretty/
  12. | \-- MYCONN3.kicad_mod
  13. |
  14. \-- gerber/
  15. |-- ...
  16. \-- ...