
Esp32
CopperPilot/copper-pilot-cli
CopperPilot in your terminal: a thin, open-source client for CopperPilot electronics design agent, the best AI for PCB Design.

CopperPilot in your terminal: a thin, open-source client for CopperPilot electronics design agent, the best AI for PCB Design.
Cm5 camera is an open-source printed circuit board by CopperPilot, from the CopperPilot/copper-pilot-cli repository on GitHub, published under the MIT licence. It is a 6-layer board of 55 × 40 mm with 90 parts on 197 nets, routed with 396 tracks and 58 vias.
It is built around the MP1658GTF-Z, RT9742GGJ5 and EMK105B7104KV-F, with the G800W305018EU, TPD2EUSB30DRTR and SRP5030CC-2R2M among its other parts. Its parts include 31 capacitors, 29 resistors, 8 ICs, 6 inductors and 2 transistors. It belongs with the computers and single-board computers boards and the Raspberry Pi (Linux) boards of this library.
CopperPilot in your terminal: a thin, open-source client for CopperPilot electronics design agent, the best AI for PCB Design.
PATH only if you run examples/001_esp32 or examples/002_cm5_camerapip install copper-pilot-cli
copper-pilotTo let the agent import LCSC/EasyEDA parts (symbol, footprint and 3D model) with
easyeda2kicad, install the optional extra, which is AGPL-3.0 licensed:
pip install "copper-pilot-cli[easyeda]" (or
uv tool install "copper-pilot-cli[easyeda]"). Agent shell commands can run
command-line tools installed alongside the CLI even when pipx or uv tool keeps
them off your PATH.
The first interactive launch opens a browser for CopperPilot device login. With no path argument, the current directory is the workspace and a new chat starts immediately. Any existing directory is valid.
CopperPilot checks for feature updates once per day without delaying your work.
When a release adds a feature, it prints one line with the feature and
copper-pilot update. Use copper-pilot update --check to inspect the latest
release, or copper-pilot update to run the owning package manager's update.
copper-pilot ./my-board
copper-pilot --resume
copper-pilot threads list
copper-pilot -n -m "Review this board" --json
copper-pilot -n -r # resume the most recent thread's unfinished turn
copper-pilot --mode plan --effort intelligence -m "Survey and plan this board"Long turns survive dropped connections, server restarts and LLM provider rate
limits (the CLI shows "High demand — waiting to continue" and resumes on its
own): the CLI keeps a
journal of the turn on your machine and resumes it automatically. If a turn
still does not finish (or the CLI was closed mid-turn), type /resume in the
TUI, run copper-pilot -n -r, or send "continue"; the turn picks up where it
left off without re-running finished tools. See
Turn durability.
Both copper-pilot and copper-pilot-cli run the same program.
copper-pilot --help lists flags; docs/cli.md is the full
command reference.
Balanced effort is the default. Paid-plan users can select Intelligence with
--effort intelligence or interactive /effort; Intelligence runs on Gemini 4
Argon. Picking another model (--model <id>, /model) is turned off for now
(ENABLE_MODEL_SELECTOR in copper_models.py). Intelligence uses
server-owned survey subagents and shows their lifecycle through the existing
Deep Agents task rows; Intelligence Plan turns survey before writing a plan.
copper-pilot validate ./my-boardRuns a stage-gated graph of read-only reviewers over the KiCad workspace:
kicad-cli checks (ERC, DRC, schematic parity, board rules, Gerbers) plus
hosted Agent-mode reviewers, each scoped to one concern, in the order a hardware
engineer reviews a board. It never edits design files. The verdict, a
REPORT.md, and next_actions.json (only the earliest failing stage, worst
first) land in .copperpilot/validate/latest/; --emit-fix-prompt prints a
ready message for copper-pilot --mode agent. Exit codes: 0 pass, 1 fail,
2 config error, 3 incomplete, 4 not logged in or usage limit. See
docs/validate.md.
CopperPilot stays the electronics agent. Copy
skills/copper-pilot-review/SKILL.md into
your harness, or expose the same agent over MCP:
claude mcp add copper-pilot -- copper-pilot mcpClaude Code can also install the in-repo plugin:
/plugin marketplace add CopperPilot/copper-pilot-cli
/plugin install copper-pilotThat plugin starts copper-pilot mcp (tools status, ask, plan, run,
resume, threads_list, validate) and adds @copper-pilot plus
/copper-pilot-review. Editors that speak the Agent Client Protocol, such as
Zed, can run copper-pilot acp after pip install "copper-pilot-cli[acp]".
Setup for Cursor, Codex, Zed, and approvals: docs/harness.md.
https://copperpilot.aiCOPPER_PILOT_API_URL~/.copper-pilot/.state.copperpilot/Credentials are stored in a private, atomically replaced auth.json; on POSIX
the parent directory is mode 0700 and the file is mode 0600.
from copper_pilot_cli.copper_protocol import CopperEffort, CopperMode
from copper_pilot_cli.langchain import CopperPilotAgent
from helper import drc_violations, erc_errors, render_pcb, run
PLAN = CopperMode.PLAN
copper_pilot = CopperPilotAgent(
workspace="esp32",
effort=CopperEffort.INTELLIGENCE,
model="claude-opus-5-5", # optional; Intelligence defaults to Gemini 4 Argon
)
run(copper_pilot, "Build me an ESP32 dev board.", PLAN)
run(copper_pilot, "Let us build this plan.")
run(copper_pilot, "Inspect the PCB, check for any missing 3D models, and apply them accordingly.")
assert erc_errors() == 0
assert drc_violations() == 0
render_pcb("esp32.png")CopperPilotAgent is a Runnable, not a chat model. It represents a complete
hosted agent run, including local tool requests. Use as_langgraph() for graph
composition or as_compiled_subagent() for explicit delegation from an outer
Deep Agent. The compatible deepagents runtime is installed and pinned by this
package.
That snippet is the runnable example in
examples/001_esp32. A phased CM5 camera carrier lives in
examples/002_cm5_camera.
The hosted agent may request local filesystem and shell tools. Reads and
searches run freely. Writes, edits, deletes, and shell commands are gated by
Manual approval by default. Auto permits only deterministic routine actions;
unknown actions still ask. YOLO must be selected explicitly. Shell commands
that reach outside the workspace (find /, grep -r ~, other projects under
the home directory, docker, sudo, ssh) ask in every mode, YOLO included,
and are refused when nobody can approve them (headless, MCP). See
docs/cli.md.
Filesystem, search, edit, and shell execution use Deep Agents' native
FilesystemMiddleware tools and LocalShellBackend; CopperPilot's adapter only
normalizes hosted tool names, approval decisions, and result envelopes.
Computer use, model/provider selection, local model execution, LangSmith
tracing, content telemetry, MCP host/plugin-runtime controls, and server
implementation code are not part of this package. A thin MCP server
(copper-pilot mcp) and an ACP server (copper-pilot acp) that delegate
to the hosted agent are.
See UPSTREAM.md and NOTICE for the retained Textual client attribution.
To report a vulnerability, see SECURITY.md.
pip install -e ".[dev]"
make fmt
make lint
make testmake test runs pytest -m "not live". Live tests skip unless a CopperPilot
credential is stored. Release tagging is make release. Details:
docs/development.md.
Bug reports, features, and pull requests are welcome. Please read CONTRIBUTING.md and the Code of Conduct. Use the bug report form so we can reproduce the problem.
MIT.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 10 | 1uF | cm5_camera:C_0402_1005Metric | C2, C6, C7, C8, C9, C15, C16, C21, C29, C30 |
| 9 | 0.1uF | cm5_camera:C_0402_1005Metric | C17, C18, C19, C23, C24, C27, C28, C31, C32 |
| 8 | 0R | cm5_camera:R_0402_1005Metric | R1, R17, R22, R24, R29, R31, R32, R33 |
| 4 | 10k | cm5_camera:R_0402_1005Metric | R11, R14, R30, R34 |
| 4 | 4.7k | cm5_camera:R_0402_1005Metric | R4, R7, R35, R36 |
| 3 | 100k | cm5_camera:R_0402_1005Metric | R15, R19, R20 |
| 3 | 100nF | cm5_camera:C_0402_1005Metric | C3, C10, C14 |
| 3 | 10uF | cm5_camera:C_0805_2012Metric | C4, C11, C22 |
| 3 | 2.2uF | cm5_camera:C_0402_1005Metric | C1, C5, C12 |
| 3 | Conn_01x03 | cm5_camera:PinHeader_1x03_P2.54mm_Vertical | H3, H4, H5 |
| 3 | MCF1210BF2-900T01 | cm5_camera:L_CommonModeChoke_Coilank_ACM1210 | L1, L2, L3 |
| 2 | 1k | cm5_camera:R_0402_1005Metric | R12, R13 |
| 2 | 2.2k | cm5_camera:R_0402_1005Metric | R5, R8 |
| 2 | 22uF | cm5_camera:C_0805_2012Metric | C25, C26 |
| 2 | 5.1k | cm5_camera:R_0402_1005Metric | R2, R3 |
| 2 | DIO7003HCST5 | cm5_camera:SOT-23-5 | U4, U7 |
| 2 | DMG1012T | cm5_camera:Texas_DRT-3 | Q1, Q2 |
| 1 | 10R | cm5_camera:R_0402_1005Metric | R16 |
| 1 | 10pF | cm5_camera:C_0402_1005Metric | C20 |
| 1 | 120R | cm5_camera:R_0603_1608Metric | FB1 |
| 1 | 20k | cm5_camera:R_0402_1005Metric | R21 |
| 1 | 22R | cm5_camera:R_0402_1005Metric | R10 |
| 1 | 4.7uH | cm5_camera:L_Bourns_SRP5030CC | L7 |
| 1 | 47k | cm5_camera:R_0402_1005Metric | R28 |
| 1 | Camera_Module_IMX219-D160 | cm5_camera:Camera_Module_IMX219-D160 | J1 |
| 1 | ComputeModule4-CM4 | cm5_camera:Raspberry-Pi-4-Compute-Module | Module1 |
| 1 | DSI_15P | cm5_camera:Molex_200528-0150_1x15-1MP_P1.00mm_Horizontal | DSI1 |
| 1 | FSUSB42MX | cm5_camera:UQFN-10_1.4x1.8mm_P0.4mm | U6 |
| 1 | HDMI_Mini_C | cm5_camera:HDMI_Mini-C_Molex_47151-0001 | HDMI1 |
| 1 | LED Green | cm5_camera:LED_0603_1608Metric | L6 |
| 1 | LED Red | cm5_camera:LED_0603_1608Metric | L5 |
| 1 | MP1658GTF-Z | cm5_camera:TSOT-23-6 | U5 |
| 1 | Micro_SD_Card_Det | cm5_camera:SDCARD_MOLEX_503398-1892 | TF1 |
| 1 | OSC_24MHz | cm5_camera:Crystal_SMD_3225-4Pin_3.2x2.5mm | X1 |
| 1 | RT9013-12 | cm5_camera:SOT-23-5 | U3 |
| 1 | RT9193-18GB | cm5_camera:SOT-23-5 | U2 |
| 1 | RT9193-28GB | cm5_camera:SOT-23-5 | U1 |
| 1 | Raspberry_Pi_40Pin_GPIO | cm5_camera:PinHeader_2x20_P2.54mm_Vertical | PI1 |
| 1 | STMPS2171STR | cm5_camera:SOT-23-5 | U8 |
| 1 | SW_Push_SPST | cm5_camera:SW_SPST_PTS645Sx43SMTR92 | Key1 |
| 1 | USB_A_Vertical | cm5_camera:MOLEX_USB_67298-4090 | J2 |
| 1 | USB_C_Receptacle_USB2.0_16P | cm5_camera:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | Type_C1 |
It measures 55 × 40 mm and has 6 copper layers, 1.6 mm thick.
90 parts, built around the MP1658GTF-Z, RT9742GGJ5, EMK105B7104KV-F and G800W305018EU. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the CopperPilot/copper-pilot-cli repository on GitHub, at the commit this page was made from: the board is examples/002_cm5_camera/cm5_camera/cm5_camera.kicad_pcb and its schematic examples/001_esp32/esp32/esp32.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

CopperPilot/copper-pilot-cli
CopperPilot in your terminal: a thin, open-source client for CopperPilot electronics design agent, the best AI for PCB Design.

AsadImranRafique/CM5-Carrier-Board-Rev2
Open-source six-layer Raspberry Pi CM4/CM5 carrier board with USB-C, 25 W PoE, M.2 NVMe, microSD, I2S, and expansion-board connectors.

AsadImranRafique/CM5-Carrier-Board
Custom Raspberry Pi CM4/CM5 carrier board with PoE, Gigabit Ethernet, M.2 NVMe, microSD and peripheral interfaces.


CopperPilot/CM5-AI-Cam-CopperPilot
A Raspberry Pi Compute Module 5 carrier for edge AI vision, in the CM5's own 55 × 40 mm footprint. 100 Ω MIPI and HDMI pairs, 90 Ω USB.

hydazz/iasis
An optional Raspberry Pi Compute Module 5 carrier for Iasis. It plugs into the main board's HubPD population and carries Ethernet, NVMe storage, an accessory USB-C port and a service USB-C port.

pbdaran/BQ27621-G1
BQ27621-G1 Battery Gauge - Breakout Board and Arduino Code

pbdaran/BatteryCharger_FuelGauge
Designing a compact, reliable battery management breakout board isn’t just about cramming chips together — it’s about understanding the trade-offs behind every component choice.
