Docs / Reference

Troubleshooting

kipcb: could not find a Python with KiCad's pcbnew module Install KiCad 9. If it's installed somewhere unusual, point KIPCB_PYTHON at a Python that can import pcbnew: on macOS /Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3, on Windows C:\Program Files\KiCad\9.0\bin\python.exe (or set KIPCB_KICAD_ROOT to KiCad's install folder).

kipcb is not found in Claude Code The plugin's bin/ folder is only on PATH while the plugin is enabled. Start a new session after installing. Outside Claude Code, run bin/kipcb from the repo.

Freerouting: Java too old / not found Freerouting 2.1 needs Java 21+, and newer versions need Java 25. Run java -version, install a newer JRE (macOS: brew install --cask temurin; Windows: winget install EclipseAdoptium.Temurin.21.JDK), then kipcb setup-router again.

Routing leaves connections unrouted kipcb already retries with different strategies and runs a completion pass. If connections still fail: - give the board more room (larger width/height, or "spacing": "roomy") - spread crowded groups, or use place hints so ICs face their partners - move to 4 layers for dense boards (fine-pitch QFNs like the RP2040 currently route better on 2) - run kipcb route <project> --attempts 6 to try more strategies

Each run is remembered, so later boards start with strategies that worked.

DRC errors after routing Run kipcb drc <project> for details. Clearance or edge errors usually mean a part sits too close to the edge or to another part; adjust placement and rebuild. Silkscreen warnings are cosmetic.

Noise check FAILs See the table in layout-guidelines.md. The usual fix is a near hint on the exact supply pin for its decoupling cap, or more board room so routes stay on the top layer.

The schematic or board changed after I edited it in KiCad kipcb build regenerates the KiCad files from the spec, which overwrites hand edits. Iterate through the spec first, then polish in KiCad at the end.

A part isn't in KiCad's libraries See "Custom parts" in spec-format.md (stock equivalents, easyeda2kicad, or a hand-made footprint).

Not routing: U1 is outside the board outline A part didn't fit and was parked beside the board. Make the board larger, use "spacing": "normal" (or "compact") on small boards, or free up fixed positions, then rebuild. Routing refuses to start in this state, because it could never succeed.

regulator heat warning A linear regulator turns (Vin − Vout) × current into heat. Use a bigger package (SOT-223 instead of SOT-23), lower the input voltage, or switch to a buck converter.

kipcb ref shows an older knowledge base than you built A locally built base (knowledge.json in kipcb's data folder: ~/.local/share/kipcb on macOS, %LOCALAPPDATA%\kipcb on Windows; from pcb-knowledge's pkb install) takes priority over the copy shipped with the plugin.

Windows: \r: command not found or bad interpreter A script was checked out with Windows (CRLF) line endings. Reinstall the plugin (claude plugin uninstall viaduct@viaduct, then install again); the repository pins scripts to LF, so a fresh install fixes it.

Windows: Claude Code can't run commands Claude Code on Windows needs Git for Windows (winget install Git.Git). Restart Claude Code after installing it.

Something else Run kipcb doctor and include its output when you open an issue.