Home

Awesome

KiCad footprint collection

This repo uses git submodules. A submodule is a way of including another git repo in your repo holding it at a particular version until you want to update it. This is useful as you can keep a local copy of all the libraries and only update them when you want to.

Usage

Initialization

git clone https://github.com/kitspace/kicad_footprints
cd kicad_footprints && ./init

This downloads all the libraries in parallel but it can still take a while.

If you are stuck on KiCad version 4 or version 5 can use the kicad-4 or the kicad-5 branch. These branches are not being updated though.

Ignoring Modules

Create a file ignore_modules.txt and add a sub-string to match per line for module names to ignore. For example to ignore the official KiCad modules from this repo (since they are already included with KiCad) ignore_modules.txt would be:

kicad-official

If adding lines to ignore_modules.txt having already run ./init then run ./deinit to de-register the modules affected by the lines.

Updating

If you want to update all libraries to their latest versions do:

./update

Warning: ./update will git reset --hard the submodules so don't make changes in these folders that you want to keep. Make a separate clone of the submodule respository for that.

If you want to pull in any libraries that have been added since your initial clone:

git pull && ./init

Registering with KiCad

You can add these libraries manually through the KiCad GUI of course. You could also use generate_table to generate an fp-lib-table, the file KiCad uses as a footprint registry, with all the footprints from this repository. You can use this to replace your existing fp-lib-table. You will need to restart KiCad for this change to take effect.

Warning: This will overwrite your existing fp-lib-table, discard any customization you made to it and also switch to using our copy of the "official" libraries included with KiCad (these are henceforth prefixed with kicad-official/). In our instructions below we make a backup copy of the fp-lib-table so can restore it if you need to.

Linux

cp ~/.config/kicad/6.0/fp-lib-table ~/.config/kicad/6.0/fp-lib-table.backup
./generate_table ~/.config/kicad/6.0/fp-lib-table

Mac OS

cp ~/Library/Preferences/kicad/6.0/fp-lib-table ~/Library/Preferences/kicad/6.0/fp-lib-table.backup
./generate_table ~/Library/Preferences/kicad/6.0/fp-lib-table

Windows (using git-bash)

cp ~/AppData/Roaming/kicad/6.0/fp-lib-table ~/AppData/Roaming/kicad/6.0/fp-lib-table.backup
./generate_table ~/AppData/Roaming/kicad/6.0/fp-lib-table

Restoring original

If you don't like the new way of organizing footprint libs and want to restore your original fp-lib-table:

Linux
cp ~/.config/kicad/6.0/fp-lib-table.backup ~/.config/kicad/6.0/fp-lib-table
Mac OS
cp ~/Library/Preferences/kicad/6.0/fp-lib-table.backup ~/Library/Preferences/kicad/6.0/fp-lib-table
Windows
cp ~/AppData/Roaming/kicad/6.0/fp-lib-table.backup ~/AppData/Roaming/kicad/6.0/fp-lib-table

3D models

You can try and hack the 3D models to be correctly associated to the footprints through absolute paths by running this script:

python3 rewrite_3d_model_paths.py

Adding submodules

If you know of any KiCad footprint repositories that have not been added please file an issue and I will add them.

If you want to maintain a private fork of this repository with some private submodules you can add them simply by:

git submodule add <git url> <folder>
git commit

They should work fine with the rest of the scripts once they are added.

License

Any scripts in this repository are MIT licensed. All the footprints have their own licenses of course.