atopile/atopile
Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️
atopile – Code‑first hardware design
What it is – atopile is a domain‑specific language, compiler, and VS Code/Cursor extension that lets you describe electronic circuits in declarative .ato files. The tool resolves constraints, picks parts, runs checks, and can generate or update a KiCad PCB layout, BOM and other fabrication data.
Why it matters – Traditional PCB design is a manual, graphical process. atopile brings software‑engineer habits to hardware: reusable modules, parametric component selection, unit‑aware equations, and automated validation. This speeds up iteration, reduces errors, and makes designs more reproducible.
How it works
- Write
.atofiles that declare modules, interfaces, units, tolerances, and assertions. - The
atocompiler solves the constraints, chooses components from a package registry, and produces KiCad files. - The VS Code/Cursor extension provides language services (syntax highlighting, autocompletion) and a one‑click build button.
Typical workflow
- Install the VS Code extension (or CLI).
- Open an example or create a new
.atomodule. - Press the ▶ button or run
ato build. - When ready, open the generated
.kicad_pcbin KiCad for layout and routing. - Export BOM, fabrication, and assembly data.
Ecosystem – A public package registry (packages.atopile.io) hosts reusable modules. Projects built with atopile include a smart speaker (NONOS), a multi‑channel DSP board, a “Humane Pin” AI‑Pin, a high‑brightness display, and a battery‑cell simulator.
Getting started – Install via the editor extension (recommended) or follow the CLI guide. The tool runs on macOS, Linux, and Windows (WSL). KiCad is optional for early stages; it’s only needed for final PCB layout.
Community & support – Discord channel for help, issue tracker on GitHub, and optional commercial support.
License – MIT.
All details are taken directly from the repository’s README.
Related
- Project
- Project
- Project
- Project