Skip to main content

stripboard

Design stripboard (protoboard / veroboard) circuit layouts in Python, and render them to a PDF you can solder from — plus a silkscreen label, laser g-code, an SVG, and a 3D-printable carrier.

Stripboard is prototyping board with parallel copper strips running across one face. You place components on the grid, cut the strips where two nets must not share one, and add jumper wires where a net has to cross between strips. Doing that on paper is tedious and easy to get wrong. This library lets you write it down instead:

from stripboard import project

def draw(sb):
    sb.text(1, 'A', 'BLINKER')
    u1 = sb.dip(6, 'F', 3, 4, '555', pins=['GND', 'TRIG', 'OUT', 'RESET',
                                           'CTRL', 'THRESH', 'DISCH', 'VCC'])
    r1 = sb.resist(13, 'F', '10K', l=3)
    led = sb.led(16, 'N')

    sb.net('VCC', u1.pin('VCC'), u1.pin('RESET'), r1.pin(1), color='r')
    sb.net('GND', u1.pin('GND'), u1.pin('CTRL'), led.pin('K'), color='k')
    sb.autoroute()

project(draw, name='blinker', width=18, height='T')

A 555 blinker, autorouted

You declare what is electrically true and autoroute() works out the copper — which strips carry which net, where the jumpers go, and which tracks to cut. Or route it yourself with jumper() / cut() / trace() and keep full control. Both workflows are in examples/.

No runtime dependencies. Pure standard library, including the PDF writer and the autorouter.

Install

pip install stripboard

Requires Python 3.12 or newer.

Getting started

stripboard new my-board     # scaffold my_board.py in the current directory
python my_board.py          # -> my_board.pdf

Edit draw(sb), re-run, look at the PDF. When the layout is right, flip designing = False to get the build sheet.

Output

project() decides what to emit from its keyword arguments:

Argument Produces What it's for
(always) <name>.pdf The board. designing=True gives a one-page DESIGN preview; designing=False gives the FRONT / BACK / DESIGN build sheet.
label=True <name>-label.pdf Black-and-white silkscreen, for toner transfer or a laser.
gcode=True <name>.nc GRBL laser g-code that etches that silkscreen onto the board top.
carrier=True <name>.stl A 3D-printable carrier that the finished board slots into. Needs OpenSCAD.

The three views on the build sheet are the three ways you actually look at the board: FRONT as you place components, BACK mirrored as you cut tracks and solder, and DESIGN with each net flood-filled in colour so you can check connectivity by eye.

A silkscreen label

Coordinates

A 1-based integer grid. Columns are numbers running along x; rows are letters ('A' = 1 … 'Z' = 26) or plain ints, running along y. Copper strips run horizontally, so two pins on the same row are already connected — that is the whole trick of the format, and most of the design work is deciding where to break it.

Board sizes take either spelling: width=18, height='T' is the same as width=18, height=20.

Routing

Every part builder returns a handle whose .pin(name) gives a netlist reference:

u1 = sb.dip(6, 'F', 3, 4, '555', pins=['GND', 'TRIG', ...])
sb.net('GND', u1.pin('GND'), c1.pin(2), color='k')   # a whole net at once
sb.connect(u1.pin('OUT'), r3.pin(1))                 # or one edge at a time
result = sb.autoroute(seed=0)

autoroute() returns the solver's result — status, cost, per-net status, validation — and draws the jumpers and cuts it chose. Pass locked=False to a part builder to let the solver place that part too, and it will be drawn wherever it lands.

The solver lives in stripboard.router and is usable on its own; see docs/router-spec.md.

Development

git clone https://github.com/Stocko-2073/stripboard-py
cd stripboard-py
pip install -e ".[dev]"

pytest                  # fast suite
pytest -m ''            # everything, including the solver tests
ruff check src tests
mypy

Licence

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stripboard-0.1.0.tar.gz (160.5 kB view details)

Uploaded Source

Built Distribution

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

stripboard-0.1.0-py3-none-any.whl (94.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stripboard-0.1.0.tar.gz
  • Upload date:
  • Size: 160.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for stripboard-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aaa0761f0291a3ad6c166961aa388429443e8ec3012ec98ef6cb7a34f47b7b36
MD5 8b86dd8eb04a2ea09f9310d1e5d4a64a
BLAKE2b-256 f4d4e787e6b8dda80ffff9def65f5002ec17637bdb802f8bc5dcf4040fe12c2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for stripboard-0.1.0.tar.gz:

Publisher: publish.yml on Stocko-2073/stripboard-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: stripboard-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 94.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for stripboard-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ce211b6d9447bab87d6559240434d1e7afc06dfb29d073e309be2db4fde66ce
MD5 95f83b27de7c810e024a8f068527bce9
BLAKE2b-256 981af11a7c8e7fda3b1cc5b53e4a960f116dbf38b7e2dc305baeb1c490155483

See more details on using hashes here.

Provenance

The following attestation bundles were made for stripboard-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Stocko-2073/stripboard-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

2 files

0.1.1

2 files

This release

0.1.0 This release

2 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