Releases: diodeinc/pcb
Latest Main Build
Automated build from main branch (commit: 76ea310)
0.3.71 - 2026-04-20
Release Notes
Added
- Extended house Schottky and TVS BOM ladders with additional higher-voltage entries.
Fixed
- Avoid collisions in generated footprint library names.
Added
pcb fmtnow supports--include=kicad-sym|allto format.kicad_symfiles during directory walks.
Install pcb 0.3.71
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.71/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.71/pcb-installer.ps1 | iex"Download pcb 0.3.71
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.3.70 - 2026-04-17
Release Notes
Fixed
- Unresolvable inherited KiCad symbol datasheet paths are now dropped silently instead of emitting build warnings.
Install pcb 0.3.70
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.70/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.70/pcb-installer.ps1 | iex"Download pcb 0.3.70
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.3.69 - 2026-04-17
Release Notes
Fixed
- Fixed
ioprelude handling forgenerics/Rectifier.zenandgenerics/Zener.zen. - Generated component .zen files now omit KiCad
no_connectpins fromio()andComponent(..., pins=...).
Install pcb 0.3.69
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.69/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.69/pcb-installer.ps1 | iex"Download pcb 0.3.69
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.3.68 - 2026-04-17
Release Notes
Migration Guide
Prefer template-first io(template) over io(type, default=...). default= for io() remains source-compatible for now, but it is deprecated and now emits a warning.
Before:
VDD = io(Power, default=Power("VDD", voltage="3.3V"))
GND = io(Ground, default=Ground("GND"))After:
VDD = io(Power("VDD", voltage="3.3V"))
GND = io(Ground("GND"))Example warning:
Warning: io() parameter `default` is deprecated; prefer template-first `io(template)` instead
╭─[ /Users/akhilles/src/diode/registry/reference/TCA9517Ax/TCA9517Ax.zen:46:6 ]
46 │EN = io("EN", Net, optional=True, default=Net(VCC_A))
│ ╰──────────────────────── io() parameter `default` is deprecated; prefer template-first `io(template)` instead
Omit explicit connections for pin.no_connect pins. If a pin is marked no_connect, leave it out of pins and Component() will wire NotConnected() automatically.
Before:
NC = io("NC", Net)
Component(
name="J1",
...,
pins={"A": A, "B": B, "NC": NC},
)After:
Component(
name="J1",
...,
pins={"A": A, "B": B},
)Example warning:
Warning: Pin 'NC' on component '1-2199119-3' is marked no_connect but was explicitly connected to Net net 'NC'; omit it from `pins` and Component() will wire NotConnected() automatically
╭─[ /Users/akhilles/src/dioderobot/demo/components/TE_Connectivity/1M2199119M3/1M2199119M3.zen:38:8 ]
38 │ NC=io("NC", Net),
│ ╰─────── Pin 'NC' on component '1-2199119-3' is marked no_connect but was explicitly connected to Net net 'NC'; omit it from `pins` and Component() will wire NotConnected() automatically
Avoid rebinding the same top-level name in a module. If you need to derive a final wiring choice, bind it to a new name instead of overwriting the original io() or intermediate value.
Before:
RT = io("RT", Net)
if rt_value == "GND":
RT = GND
elif rt_value == "VCC":
RT = VCCAfter:
RT = io("RT", Net)
if rt_value == "GND":
rt_pin = GND
elif rt_value == "VCC":
rt_pin = VCC
else:
rt_pin = RTExample warning:
Warning: Rebinding 'CURR_FDBK1_OPAMP_MINUS' in the same scope
╭─[ /Users/akhilles/src/dioderobot/demo/boards/DM0001/src/ShuntSense.zen:43:1 ]
43 │CURR_FDBK1_OPAMP_MINUS = GND
│ ╰─────────── Rebinding 'CURR_FDBK1_OPAMP_MINUS' in the same scope
Use Power() or Ground() for io()s that feed power pins instead of plain Net.
Before:
VDD = io("VDD", Net)
GND = io("GND", Net)After:
VDD = io(Power())
GND = io(Ground())Example warning:
Warning: Pin 'VDD' on component 'LIS3DH' is a power pin but is connected to plain Net 'VDD'; consider using Power() or Ground()
╭─[ /Users/akhilles/src/dioderobot/demo/components/STMicroelectronics/LIS3DH/LIS3DH.zen:16:9 ]
16 │ VDD=io("VDD", Net),
│ ╰─────── Pin 'VDD' on component 'LIS3DH' is a power pin but is connected to plain Net 'VDD'; consider using Power() or Ground()
Migrate deprecated generics/Diode.zen usage to the more specific diode generics:
- Use
generics/Rectifier.zenfor standard and Schottky diodes, including small-signal / signaling diodes. - Use
generics/Zener.zenfor reverse-breakdown regulation and reference diodes. - Use
generics/Tvs.zenfor transient-voltage suppressors.
Package mapping:
SMA -> DO-214AC
SMB -> DO-214AA
SMC -> DO-214AB
SOD-123 / SOD-323 / SOD-523 stay the same
Rectifier / Schottky:
Diode(package="SMA", variant="Schottky", v_r="40V", i_f="1A", v_f="500mV", A=A, K=K)
Rectifier(package="DO-214AC", technology="Schottky", reverse_voltage="40V", forward_current="1A", forward_voltage="500mV", A=A, K=K)Zener:
Diode(package="SOD-123", variant="Zener", v_r="5.1V", A=A, K=K)
Zener(package="SOD-123", zener_voltage="5.1V", A=A, K=K)TVS:
Tvs(package="DO-214AA", direction="Unidirectional", reverse_standoff_voltage="24V", reverse_clamping_voltage="38.9V", peak_pulse_power="3000W", A=GND, K=VIN)Added
- Added
generics/Rectifier.zenandgenerics/Zener.zenwith expanded package support and house-part BOM matching coverage. pcb layoutand board publish now fail early when a board was last saved by a newer KiCad major version than the one installed locally.pcb buildnow accept repeatable--config key=valuefor settingconfig()parameters.- Net type physical-value fields now coerce string and scalar inputs like
io()/config(). - Unnamed
Net()/typed nets and generated interface child nets now infer names from assignment targets when possible. - Add
io()direction metadata plusinput()/output()sugar. config(),io(),input(), andoutput()now allow omitting the explicit name when assigned to a top-level variable.config()now supports discreteallowed=sets for scalar and physical-value inputs.- Preserve KiCad symbol pin metadata and add
Component()pin/net compatibility warnings. - Added style advice for redundant explicit names on
io(),config(), nets, and interfaces. - Add pass-based schematic ERC plumbing and net-site
pin.no_connectdiagnostics with inline suppression support. io(template)now infers placeholder types and enforces typed-net voltage compatibility.
Changed
- Component generation no longer automatically scans datasheets.
- Component modifiers can now override
spice_model. - House Murata caps now use vendor MLCC models when available.
voltage_within()now accepts nets with voltage metadata or directVoltagevalues.pcb new componentandpcb searchcomponent imports now place datasheet artifacts under each component'sdocs/subdirectory.- Layout sync and KiCad netlist export now normalize file- and package-based footprints to library-aware FPIDs.
Component()now infersspice_modelfrom symbolSim.*properties.Simulation()now acceptsbom_profile=.- Module-scoped variable rebinding is now a warning.
- Removed the 10uF 100V 1210 stdlib house capacitor from generic matching due to severe derating.
NetandPowernow expose unsetvoltageasNone.- Deprecated
NET=net casts now warn; use positional forms likePower(other_net). - Remove legacy
pcb forksubcommands and reservepcb forkfor future use.
Fixed
- LSP diagnostics now publish to the
.zenfile that owns the root diagnostic span.
Install pcb 0.3.68
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.68/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.68/pcb-installer.ps1 | iex"Download pcb 0.3.68
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.3.67 - 2026-04-10
Release Notes
Added
- Added workspace-scoped Diode endpoint overrides via
[workspace].endpoint, with auth tokens stored per resolved endpoint.
Changed
- Loading deprecated stdlib physical-unit
*Rangealiases now emits a deprecation warning pointing to the corresponding base unit type. - Deprecated the stdlib
pins.zenandmetadata.zenmodules. - Deprecated the
Schematics()helper. - Deprecated generic modules
generics/Bjt.zen,generics/Diode.zen,generics/Mosfet.zen, andgenerics/OperationalAmplifier.zen. - Deprecated non-standard packages in
generics/Inductor.zen. - Newly added KiCad symbol properties now default to
justify left topandhide yes. pcb scannow resolves local PDFs through the shared datasheet materialization cache by default, and--outputcopies the materialized Markdown and images out of that cache.pcb scannow prints bothPDF:andMarkdown:output paths, with local PDF scans reporting the original input PDF path and URL scans reporting the materialized cached PDF path.pcb searchnow merges docs full-text results for registry packages and KiCad symbols, with consistent phrase handling across indices.
Fixed
pcb build --offlinenow reuses selected locked pseudo-versions for rev-pinned workspace deps.PhysicalValueis now hashable in Starlark, including after freezing.- Layout sync no longer creates empty footprint
(embedded_files)blocks that KiCad removes on save. - Fixed an LSP memory leak during reparsing.
- Rev-pinned dependencies now override stale lockfile-seeded pseudo-versions during resolution.
Install pcb 0.3.67
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.67/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.67/pcb-installer.ps1 | iex"Download pcb 0.3.67
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.3.66 - 2026-04-06
Release Notes
Install pcb 0.3.66
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.66/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.66/pcb-installer.ps1 | iex"Download pcb 0.3.66
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.3.65 - 2026-04-03
Release Notes
Added
- Added 10uF 100V 1210 house capacitor in stdlib
Fixed
pcb layoutno longer crashes when a managed component path is numeric-only, such as1053091102.pcb buildnow warns and drops invalid inherited symbol datasheet paths instead of failing the build.
Install pcb 0.3.65
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.65/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.65/pcb-installer.ps1 | iex"Download pcb 0.3.65
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.3.64 - 2026-04-02
Release Notes
Added
- Added support for KiCad 10.
Install pcb 0.3.64
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.64/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.64/pcb-installer.ps1 | iex"Download pcb 0.3.64
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.3.63 - 2026-03-30
Release Notes
Changed
- KiCad symbol is now the source of truth for component metadata (footprint, datasheet, part); generated
.zenfiles are minimal wrappers. Component()inheritsskip_bomfrom the KiCad symbolin_bomflag (inverted) when not explicitly set.pcb fork addis now blocked and points users topcb sandbox;pcb fork removeandpcb fork upstreamremain for existing forks.
Added
- Warn when module
io()s are declared but never connected to any realized ports.
Fixed
- Stdlib
CrystalandMountingHoleno longer expose unused variant-specific ports. - Untagged
branch/revdependencies now use0.1.1-0...pseudo-versions so they outrank plain0.1.0deps.
Install pcb 0.3.63
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/diodeinc/pcb/releases/download/v0.3.63/pcb-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/diodeinc/pcb/releases/download/v0.3.63/pcb-installer.ps1 | iex"Download pcb 0.3.63
| File | Platform | Checksum |
|---|---|---|
| pcb-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pcb-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pcb-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pcb-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |