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)
| File | Size | Uploaded | |
|---|---|---|---|
| mege_circuits-0.1.1.tar.gz | 124.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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