Akhil Velagapudi d56b034f3e Draw dashed strokes, text boxes and knockout text in STEP silkscreen (ENG-1789) (#1283)
* Draw dashed strokes, text boxes and knockout text in STEP silkscreen (ENG-1789)

* Draw a dashed circle shorter than one dash as a ring
2026-09-13 14:59:48 -04:00
2026-09-10 16:41:51 +00:00
2026-07-21 19:32:41 +00:00
2025-07-01 04:06:08 -04:00
2026-08-30 23:07:33 -04:00

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

S
Description
datasheet-reader: Read datasheets and technical PDFs with pcb scan.; zener-language: Read or edit Zener HDL, package APIs, and tool-managed dependencies.
Readme MIT 99 MiB
Languages
Rust 92.3%
Python 3.9%
Starlark 3.2%
JavaScript 0.2%
Shell 0.1%
Other 0.1%