Skip to main content

Measure exact routed pad-to-pad signal lengths from KiCad PCB files.

Project description

kicad-signal-path

kicad-signal-path measures exact routed pad-to-pad signal lengths directly from KiCad .kicad_pcb files.

It supports:

  • single pad-to-pad path measurement
  • regex-based source and destination net matching
  • automatic 2-pin bridge detection for series resistors and similar pass-through parts
  • separate Track mm, Via mm, Total mm, and Delta mm reporting
  • CLI and Python usage from the same package

Install

Run it without installing:

uvx kicad-signal-path --help

Install it as a CLI tool:

uv tool install kicad-signal-path

Add it to a Python project:

uv add kicad-signal-path

Quick Start

Single path measurement:

kicad-signal-path board.kicad_pcb --start U1:B3 --end J1:H23

Regex batch matching:

kicad-signal-path \
  board.kicad_pcb \
  --src-net-regex '/AXIS_I_(.*)/' \
  --dst-net-template '/FMC_AXIS_I_($1)/'

Verbose path breakdown:

kicad-signal-path \
  board.kicad_pcb \
  --start U1:B3 \
  --end J1:H23 \
  --verbose

Use the module form if you prefer:

python -m kicad_signal_path --help

Development

Create a local environment and install the project in editable mode through uv:

uv sync --dev

Run tests:

uv run pytest

Build distributable artifacts:

uv build --no-sources

Local smoke test against built artifacts:

uv run --isolated --no-project --with dist/*.whl tests/smoke_test.py
uv run --isolated --no-project --with dist/*.tar.gz tests/smoke_test.py

Release

This repo is prepared for public PyPI publishing with uv and GitHub Actions.

  1. Create the PyPI project kicad-signal-path.
  2. In PyPI trusted publishing, allow GitHub repository Leonui/kicad-signal-path.
  3. Set the trusted publishing workflow to .github/workflows/publish.yml.
  4. Set the trusted publishing environment name to pypi.
  5. Push a version tag such as v0.1.0.

Manual local publish also works after authentication is configured:

uv publish

Test Data

This repository intentionally ships no KiCad board design files. Tests generate a small synthetic board description at runtime so the package can be validated without bundling proprietary PCB data.

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

kicad_signal_path-0.1.0.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kicad_signal_path-0.1.0-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file kicad_signal_path-0.1.0.tar.gz.

File metadata

  • Download URL: kicad_signal_path-0.1.0.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","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

Hashes for kicad_signal_path-0.1.0.tar.gz
Algorithm Hash digest
SHA256 feed75d3869d298d91a8a1b1e2b4cc736e3b32cb6f6f3f193686fd9e07b19726
MD5 bd2f9762aed5b4ac3771e943dcd615d7
BLAKE2b-256 8eeb09df953a9363b30d4414c3407e39c9730d3c579b4128020600308926ca4d

See more details on using hashes here.

File details

Details for the file kicad_signal_path-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kicad_signal_path-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","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

Hashes for kicad_signal_path-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8b4c1867456bfbb32c149c49e672a21954f81028adb43fd1e417fc333bcc51a
MD5 2701c5199af0d11d851577bd268f0c73
BLAKE2b-256 e6011012cbfc3e0f9639bb0503798bba661330f5710d1f89dad39a8c69f6ff03

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page