Skip to main content

mege-circuits

mege-circuits is an alignment-first Python DSL for drawing small circuit schematics and projecting them onto diagnostic stripboard-style layout previews.

It grew out of the Ender 3 V3 KE IDEX wiring work, but is now a standalone project for reusable circuit drawing, stripboard visualization, and experiments around hand-buildable electronics layouts.

Status: early open-source extraction. The schematic API and current schematic-to-stripboard projection are useful and tested, but the projection is not yet a verified stripboard router or manufacturing plan.

Install

From PyPI:

pip install mege-circuits

For local development:

git clone git@github.com:m-emm/mege-circuits.git
cd mege-circuits
pip install -e ".[testing]"

Vector A4 stripboard PDF generation uses rsvg-convert. Install it with brew install librsvg on macOS or sudo apt-get install librsvg2-bin on Debian/Ubuntu.

Quick Start

from pathlib import Path

from mege_circuits.simple import *


vcc_net = create_net("vcc")
out_net = create_net("out")
gnd_net = create_net("gnd")

vcc = create_node(Dot, "vcc", net=vcc_net, label="+5V")
out = create_node(Dot, "out", net=out_net, label="OUT")
gnd = create_node(Ground, "gnd", net=gnd_net)

r1 = create_element(Resistor, "R1", "10K", vcc, out)
r2 = create_element(Resistor, "R2", "20K", out, gnd)

r1 = align(r1, vcc, Alignment.STACK_BOTTOM)
out = align(out, r1, Alignment.BOTTOM)
r2 = align(r2, out, Alignment.STACK_BOTTOM)
gnd = align(gnd, r2.end, Alignment.CENTER)

schema = create_schema([vcc, out, gnd], [r1, r2])
render_schemdraw(schema, file=Path("voltage_divider.svg"))

Use a .png filename to render a PNG preview.

Examples

Run the small schematic examples from the repository root:

python examples/voltage_divider.py
python examples/stripboard_blank.py

The main real-world integration example is the Pico-to-TB6600 stripboard interface:

python examples/integration/tb6600_stripboard_interface.py
python examples/integration/tb6600_stripboard_layout.py

Those scripts render both schematic and diagnostic stripboard projection artifacts next to the example by default. The test suite renders them into examples/integration/diagrams/ as gitignored SVG/PNG files so the latest integration output is easy to inspect after changes. Each render uses a unique timestamped filename to avoid local preview caches; stable filenames in that directory are symlinks to the newest generated artifacts.

Documentation

The blueprint describes how the current projection path should evolve into a netlist-driven, verified stripboard planner while keeping the visualization engine.

Development

pip install -e ".[testing]"
python -m pytest

Slow integration and optimizer regressions are skipped by default. Run them explicitly when changing the stripboard router or generated TB6600 artifacts:

python -m pytest --runslow
python -m pytest --runslow -m slow

CI runs the test suite on Python 3.11 and 3.12.

License

MIT. See LICENSE.txt.

Metadata

Release files for mege-circuits 0.1.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 mege-circuits 0.1.1
File Size Uploaded
mege_circuits-0.1.1.tar.gz 124.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mege-circuits 0.1.1
File Interpreter ABI Platform
mege_circuits-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 199.0 kB

Release files / mege_circuits-0.1.1.tar.gz

Download URL mege_circuits-0.1.1.tar.gz
Size 124.6 kB
Tags Source
SHA-256 checksum
How to use checksums
aa81701f2df14184680fc9bff98c3363a4828f10a675fd01f2304c5cd75cd0fa
BLAKE2b-256 checksum
How to use checksums
8fe963ba4692d3bcb37a5afe8cfb80e39c66d1ecc415a9d59b0b466f5e9b2551
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.

Transparency log

Release files / mege_circuits-0.1.1-py3-none-any.whl

Download URL mege_circuits-0.1.1-py3-none-any.whl
Size 74.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8876e4dbb0ff3b1df5ac05b4292c67ba69d1f65f625b0a664c6b9e174c19569a
BLAKE2b-256 checksum
How to use checksums
0381bf3bb7da0294427ded4dbb69ec1db46a0bfd7841bf81686df3cea2942ce6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

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