Derive and modify KiCad symbol libraries with spreadsheets
Project description
KiSkeleton 🩻
Derive and modify KiCad symbol libraries with spreadsheets
The problem
You have a large number of KiCad symbols with differing parameters derived from existing symbols.
You want a single source of truth for these that's easy to manage.
Example:
You have 100 different resistors, each with different values, datasheets, footprints, and manufacturer metadata.
Keeping a library of discrete symbols for each variation helps you place these and not sweat backfilling this metadata per project.
This is a task that is much easier to manage from a spreadsheet rather than creating every single part from scratch; after all, they're all the same base resistor symbol!
Installation
This project uses uv to manage stuff.
You can run it directly without installing with uvx:
uvx kiskeleton
Manual install
Clone this repo somewhere, then do:
uv tool install -e PATH_TO_CLONED_REPO
Now you can run it from wherever:
uv run kiskeleton
Usage
There's two phases to using the tool:
- Creating a new spreadsheet (possibly from an existing library/symbol)
- Generating a symbol library from the input spreadsheet
Creating a new spreadsheet
The new command helps you scaffold your spreadsheet.
With no options provided, a blank spreadsheet with the minimum required
fields is created.
You can also pass in the library and symbol options, which let you bootstrap
it from a full existing library, or an existing symbol.
This example uses the default resistor symbol as an input:
kiskeleton new \
--library /Applications/KiCad/KiCad.app/Contents/SharedSupport/symbols/Device.kicad_sym \
--symbol R \
--output my_cool_new_library.csv
This will generate the spreadsheet with a row pre-filled with the properties taken from the existing symbol.
You will now fill this out with all of your parts.
Generating from the spreadsheet
With the spreadsheet filled out, it's time to generate the symbol library:
kiskeleton generate \
--input my_cool_new_library.csv \
--output my_cool_new_library.kicad_sym
Required columns
The name, template_library, and template_symbol_name columns are required:
nameis the name of the symbol in the new librarytemplate_libraryis the library to pull our "template" symbol fromtemplate_symbol_nameis the symbol within the library to base our new symbol off of
Any new properties that exist on the spreadsheet but not in the template symbol will be added and marked as hidden by default. If you wish to style/position these fields make sure they exist on your template symbols already (the value will be overwritten).
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kiskeleton-0.1.2.tar.gz.
File metadata
- Download URL: kiskeleton-0.1.2.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bb758f94b18e8802315b8102a519d32c67389b4d537551a63051f37b6ff9dcf
|
|
| MD5 |
452bb26a2a006a0171841efefe61afef
|
|
| BLAKE2b-256 |
d6fd583e5c48ca33f96c6ece4d947d3eefad4a5dcc82f1240082615a9cdc91a0
|
File details
Details for the file kiskeleton-0.1.2-py3-none-any.whl.
File metadata
- Download URL: kiskeleton-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24b02e5e45488793dce72835cfeaf107a27da151d582875532ec630c7366dafc
|
|
| MD5 |
89c2f24d6572a5ddc40ff66ef208faa3
|
|
| BLAKE2b-256 |
980d0b22693ec3507d682681c9daa4ab5571e129e8269d5ccd42f7bc48e66ddd
|