Scripts, templates, and examples for managing KiCad projects.
Project description
Welcome to kicad-helpers
Scripts, templates, and examples for managing KiCad projects
Project goals
- provide a sensible default structure and scripts for managing KiCad projects
- automate everything that can be automated with continuous integrations scripts (e.g., update BOMs, produce manufacturing files, run tests, generate documentation, etc.)
- configure git and KiCad to play nicely together
- support customization via command line arguments, environment variables, etc.
- make everything easy to install/setup/use
- make awesome documentation
Install
pip install kicad_helpers
Setup a new project
Open a command line shell and navigate to the directory containing your KiCad project. Then run kh_update
to apply various project templates to the project directory:
cd kicad/project/path
kh_update
By default, this will install the following templates:
- .github/workflows/build.yml: a github workflow for updating the BOM, producing manufacturing files, running tests, generating documentation, etc.
- kitspace.yaml: metadata file for the kitspace service
- .kicad_helpers_config/config.kibot.yaml: configuration file for KiBot which allow automation of various KiCad actions
- .kicad_helpers_config/manufacturers/PCBWay.kibot.yaml: KiBot configuration to generate manufacturing files for PCBWay
To overwrite existing templates, run kh_update
with the --overwrite
flag:
kh_update --v --overwrite
kitspace.yaml already exists
Rendering kitspace.yaml template.
settings.ini already exists
Rendering settings.ini template.
.github/workflows/build.yml already exists
Rendering .github/workflows/build.yml template.
.kicad_helpers_config/config.kibot.yaml already exists
Rendering .kicad_helpers_config/config.kibot.yaml template.
.kicad_helpers_config/manufacturers/PCBWay.kibot.yaml already exists
Rendering .kicad_helpers_config/manufacturers/PCBWay.kibot.yaml template.
tests/tests.ipynb already exists
Rendering tests/tests.ipynb template.
To see the options that are available, run the command:
kh_update --help
usage: kh_update [-h] [--v] [--overwrite] [--root ROOT]
Install various templates from the `kicad_helpers/templates` directory (ignoring anything in the project's `.gitignore`
list). Similar to `nbdev`: [nbdev_new](https://nbdev.fast.ai/tutorial.html#Set-up-Repo). Templates are stored in the
[kicad_helpers/templates](https://github.com/ryanfobel/kicad-helpers/tree/main/kicad_helpers/templates) folder, and are
included with the python package by adding the followingline to the `MANIFEST.in` file: ``` graft
kicad_helpers/templates ```
optional arguments:
-h, --help show this help message and exit
--v verbose (default: False)
--overwrite overwrite existing templates (default: False)
--root ROOT project root directory (default: .)
Export a BOM from the KiCad schematic
kh_sch_to_bom --v
/home/ryan/miniconda3/envs/kh/bin/python3.9 -m kifield --nobackup --overwrite --group -aq -x /mnt/c/Users/ryan/OneDrive/dev/python/kicad-helpers/_temp/40-channel-hv-switching-board.sch -i /mnt/c/Users/ryan/OneDrive/dev/python/kicad-helpers/_temp/manufacturing/default/40-channel-hv-switching-board-BOM.csv
Import data from the BOM into the KiCad schematic
kh_sch_to_bom
/home/ryan/miniconda3/envs/kh/bin/python3.9 -m kifield --nobackup --overwrite --fields ~quantity -x /mnt/c/Users/ryan/OneDrive/dev/python/kicad-helpers/_temp/manufacturing/default/40-channel-hv-switching-board-BOM.csv -i /mnt/c/Users/ryan/OneDrive/dev/python/kicad-helpers/_temp/40-channel-hv-switching-board.sch
Run all tests in the tests
directory
kh_test
testing /mnt/c/Users/ryan/OneDrive/dev/python/kicad-helpers/_temp/tests/Tests.ipynb
All tests are passing!
Contributors
- Ryan Fobel (@ryanfobel)
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
kicad_helpers-0.8.2.tar.gz
(21.7 kB
view hashes)
Built Distribution
Close
Hashes for kicad_helpers-0.8.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d84e7d6e2ba47f22a8e56b20b56e936dabdfd316d26a0cc0d26f41dbd29a5616 |
|
MD5 | 543c4314fb68cbba347423bd4538c713 |
|
BLAKE2b-256 | 6761172ddf48210a40f3cb8232f12a1d366b89e9621efa447380fef4a4e85d7a |