Skip to content

Repository files navigation

pcb

pcb is a command-line tool for circuit board projects written in Zener. Zener is a Starlark-based language for describing PCB schematics; pcb builds those designs, manages dependencies, and generates KiCad layout files.

Documentation | Language reference

Installation

Install the pcb launcher on macOS, Linux, or WSL2:

curl -fsSL https://raw.githubusercontent.com/diodeinc/pcb/main/install.sh | bash

For native Windows, run this command in PowerShell:

powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/diodeinc/pcb/main/install.ps1 | iex"

The launcher downloads the toolchain selected by each project. KiCad 10.x is required for layouts, but not for building Zener designs. Native Windows support is experimental; use WSL2 if needed.

Quick start

Create blinky.zen:

# ```pcb
# [workspace]
# pcb-version = "0.4"
# ```

Resistor = Module("@stdlib/generics/Resistor.zen")
Led = Module("@stdlib/generics/Led.zen")

VCC = Power()
GND = Ground()
LED_ANODE = Net()

Resistor(name="R1", value="1kohm", package="0402", P1=VCC, P2=LED_ANODE)
Led(name="D1", package="0402", color="red", A=LED_ANODE, K=GND)
Board(name="blinky", layers=4, layout_path="layout/blinky")

Build the design and generate a KiCad layout:

pcb build blinky.zen
pcb layout blinky.zen

See Getting Started for board setup, toolchains, and CI authentication, and Packages for repository structure and dependencies. Run pcb help for commands.

Developing from source

git clone https://github.com/diodeinc/pcb.git
cd pcb
./install.sh --local

Requires Rust. See AGENTS.md for test commands and repository conventions.

License

Diode-authored code and docs are licensed under the MIT License except where otherwise noted. See LICENSE and THIRD_PARTY_NOTICES.md.

Acknowledgments

About

PCB tooling by Diode Computers, Inc.

Resources

Stars

440 stars

Watchers

16 watching

Forks

Releases

Packages

Contributors

Languages