Skip to main content

KiCad Symbol Tool

kicad-symbol-tool is a command-line tool that assists with managing KiCad part libraries.

Introduction

KiCad is an Electrical CAD tool that is used to design schematics and PCBs. A well-designed part will have:

  • A proper graphical representation of the part and its pin numbers
  • A link to the datasheet
  • A link to the proper footprint
  • Information on sourcing the part. This can be as basic as a manufacturer and manufacturer part number. Additionally, distributor information could be provided.

Unfortunately, it is laborious to define all this information in KiCad itself, as each part must be created and edited one at a time. This tool aims to remedy this. It is run by running the command:

kicad-lilbrary-manager <name of .kicad_sym library file>

It then performs the following:

  • If the library doesn't exist, it throws an exception.
  • If the library format is before 6.0, it throws an exception.
  • If the file <root name of .kicad_sym file>.xlsx does not exist, it will be created, and the utility will exit.
  • If it does exist, then if the xlsx file is newer than the kicad_sym file, the changes in the xlsx file will be applied to the symbol's properties.

Template Parts

Each library should contain template parts. These parts will be used to derive new symbols. This is particularly useful for resistors and capacitors. These template parts should contain all of the properties that are desired on the derived parts. Note that while KiCad itself does not copy properties to directly derived parts, this tool explicitly copies the properties to the derived symbols. More than one template can exist in a library.

Generally, you don't want to instantiate these symbols. By convention, I precede the symbol name with a tilde ('~') and set the description to "Do not use - Template."

Format of xlsx file

The xlsx file will contain several tabs, one for each template part. Parts that are not derived will not be listed because it is assumed that the properties would have to be manually edited anyway. The data consists of one row for each part.

The following columns will always be present in the spreadsheet:

Name Description
Status The status of updating the part from the spreadsheet. This can be "OK" (no error), "TemplateError" (the specified template doesn't exist), "PropWarning" (the property does not exist in the template and was ignored).
Name The name of the symbol
Reference Symbol reference designator letter(s)
Value The value property (required)
Footprint Symbol footprint (required)
Datasheet Link to the datasheet
ki_keywords Keywords used to search for parts
ki_description Description of the part
ki_fp_filters Filters used to select footprints

Additional columns are the additional properties on the template part.

Installation Instructions

The tool can be run without installation using the Astral UV package manager.

Alternatively, the program is on PyPi under the name kicad-symbol-tool so it can be installed with pip or pipx.

Example Usage

Astral UV

If uv is installed, the program can be run by:

uvx kicad-symbol-tool <name of .kicad_sym file>

Pip or Pipx

kicad-symbol-tool <name of .kicad_sym file>

Supported KiCad Versions

The dependency is based on the symbol library file format. It has not changed since version 6.0, so it will work for any version greater than or equal to 6.0.

Contributing Guidelines

To be written...

License

The license is MIT.

Limitations and Future Work

To be written.

Implementation Notes

  • The program will be written in Python.
  • Astral uv will be used as the package manager.
  • Packages used:
    • Typer to implement the command-line program.
    • sexpdata will be used to parse the library file.
    • Unit tests will use pytest

Metadata

Release files for kicad-symbol-tool 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kicad-symbol-tool 1.0.1
File Size Uploaded
kicad_symbol_tool-1.0.1.tar.gz 9.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kicad-symbol-tool 1.0.1
File Interpreter ABI Platform
kicad_symbol_tool-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / kicad_symbol_tool-1.0.1.tar.gz

Download URL kicad_symbol_tool-1.0.1.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
373a59939273fbd03c173eb5f6de7a0fa9e3e58197f6c790b35e4c0e3b57cd49
BLAKE2b-256 checksum
How to use checksums
846702b69b5d751557292071686991da50e52cf6da725a843b00d4842fc6412b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.17

Release files / kicad_symbol_tool-1.0.1-py3-none-any.whl

Download URL kicad_symbol_tool-1.0.1-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06d7d2f1ed7f48c7638258740f929e7f2956eb26280eac9e02a434057a1b29ed
BLAKE2b-256 checksum
How to use checksums
16800700e6fa50cb76d72fd0bb9aa551550e9c3f65d544a9e0acfa395c4d9b98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.17

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page