A package manager for KiCad projects
Project description
KiCad Package Manager
This is a package manager for KiCad symbols, footprints, 3d models, simulation files, and hierarchical sheets.
Goal
Create a format for distributing the following kind of KiCad features:
- Symbols
- Footprints
- 3D Models
- SPICE Simulation Code
- Sub-sheets
- Unit Tests
- Command Runner
- Plugins
Projects can be created that programmatically generate these files.
Currently Supports:
- Symbols
- Footprints
Up Next:
- Subsheets
- Command Runner
- 3D Models
Installing KPM
Open the "KiCad Command Prompt"
pip3 install kicad-package-manager
In your KiCad project directory, run
kpm init
Then edit your kpm.json
file as needed.
How to Install a Package
Find a package you want to use:
kpm list
kpm list | grep something
kpm search something
kpm show some_package
Then edit the dependencies
list in your kpm.json
to include a package and version. Example:
{
"name": "cool-project",
"version": "0.0.1",
"author": "danroblewis",
"homepage": "http://githab.info/magic/stuff",
"commands": {
"test": "./fictional-spice-tester"
},
"dependencies": {
"kpm-jlcpcb-basic": "0.0.5",
"eurorack-parts": "0.0.1"
}
}
How to Create a Package
Create a directory, it can be a KiCad project directory or any directory. Probably put it under version control with something like git.
kpm init
This creates a kpm.json
file. Add the dependencies your package will require to the dependencies
list.
Your package will include your kpm.json
file and any of these directories if they are present:
/symbols
/footprints
/3dmodels
/3dmodels
/plugins
/simulation
/sheets
/tests
/scripts
To build the package
kpm build
You should now have a package.zip
file in your project directory.
To upload a package to the registry, first create a ~/.kpmrc
file:
{
"name": "yourname",
"token": "arbitrarytokenonlyyouknow"
}
Then update the version in your kpm.json
file.
Then run
kpm upload
You should then see your package in the kpm search <yourpackagename>
Usage
kpm init
kpm list
kpm search jlc
kpm show kpm-jlcpcb-basic
kpm install .
To add a new package to the package index, submit a pull request
kpm.json
{
"name": "cool-project",
"version": "0.0.1",
"author": "danroblewis",
"homepage": "http://githab.info/magic/stuff",
"commands": {
"test": "./fictional-spice-tester"
},
"dependencies": {
"kpm-jlcpcb-basic": "0.0.5",
"eurorack-parts": "0.0.1"
}
}
Refresh Symbols and Footprints
After updating your libraries, the symbols/footprints in your schematic files won't have the latest changes. Do this to synchronize them:
- In
eeschema
, clickTools > Update Symbols from Library...
, then save - In
pcbnew
, clickTools > Update Footprints from Library...
, then save
(If we can find a way to do this within kpm, that would be awesome.)
Package Directory Structure
/kpm.json
/symbols/
/symbols/mysymbols.kicad_sym
/footprints/
/footprints/myfootprints.pretty/
/footprints/myfootprints.pretty/myfootprints.kicad_mod
/3dmodels/
/3dmodels/something.step
/plugins/
/plugins/kicad-eurorack-tools/
/plugins/kicad-eurorack-tools/__init__.py
/simulation/
/simulation/mysim.spice
/sheets/
/sheets/mysubsheet.kicad_sch
/tests/
/tests/mytest.py
/scripts/
/scripts/mycommand.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for kicad_package_manager-0.0.15.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e42105fec475b75cfffb9a520c20076efd3a865c851859d11b4b85ec5cddd81 |
|
MD5 | 4714aa3645eae327cf1b71981f730f8e |
|
BLAKE2b-256 | f4e3b69f37c401429220edba66a36faa76b6e8450264e0f090f51308de2d180a |
Hashes for kicad_package_manager-0.0.15-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef02b70b76d165cfc9e7ae367614329b9c03e8629e884998d4984f68f5ef33f2 |
|
MD5 | 4dc5d4430d4d4f69ef9b1a4b8d144159 |
|
BLAKE2b-256 | 2cd581d1edce30f9b4ee7d58bccdfa5b311b8a40cf94ca5ff2150421b6db6298 |