Skip to the content
PCBKitNew board
6 layers55 × 40 mmCm5 camera, the printed circuit board in 3D

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

Size
55 × 40 mm
Copper layers
6
Thickness
1.6 mm
Parts
90
Nets
197
Pads
566
Tracks, vias
396, 58
Pours
6
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 Sep 2026
Updated
6 Nov 2026

Overview

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.

Main components

8

README

README.md

The AI for PCB design, in your terminal.

License PyPI version Python CI
Follow on X LinkedIn YouTube Instagram

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

CopperPilot building an ESP32-MINI-1 board

Prerequisites

Install and run

console
pip install copper-pilot-cli
copper-pilot

To 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.

console
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.

Validate

console
copper-pilot validate ./my-board

Runs 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.

Use from Claude Code, Cursor, or Codex

CopperPilot stays the electronics agent. Copy skills/copper-pilot-review/SKILL.md into your harness, or expose the same agent over MCP:

console
claude mcp add copper-pilot -- copper-pilot mcp

Claude Code can also install the in-repo plugin:

text
/plugin marketplace add CopperPilot/copper-pilot-cli
/plugin install copper-pilot

That 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.

Configuration

  • Production API: https://copperpilot.ai
  • Development override: COPPER_PILOT_API_URL
  • User state: ~/.copper-pilot/.state
  • Project artifacts: .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.

LangChain

python
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.

Security boundary

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.

Development

console
pip install -e ".[dev]"
make fmt
make lint
make test

make test runs pytest -m "not live". Live tests skip unless a CopperPilot credential is stored. Release tagging is make release. Details: docs/development.md.

Contributing

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.

License

MIT.

Parts

90
QtyValueFootprintReferences
101uFcm5_camera:C_0402_1005MetricC2, C6, C7, C8, C9, C15, C16, C21, C29, C30
90.1uFcm5_camera:C_0402_1005MetricC17, C18, C19, C23, C24, C27, C28, C31, C32
80Rcm5_camera:R_0402_1005MetricR1, R17, R22, R24, R29, R31, R32, R33
410kcm5_camera:R_0402_1005MetricR11, R14, R30, R34
44.7kcm5_camera:R_0402_1005MetricR4, R7, R35, R36
3100kcm5_camera:R_0402_1005MetricR15, R19, R20
3100nFcm5_camera:C_0402_1005MetricC3, C10, C14
310uFcm5_camera:C_0805_2012MetricC4, C11, C22
32.2uFcm5_camera:C_0402_1005MetricC1, C5, C12
3Conn_01x03cm5_camera:PinHeader_1x03_P2.54mm_VerticalH3, H4, H5
3MCF1210BF2-900T01cm5_camera:L_CommonModeChoke_Coilank_ACM1210L1, L2, L3
21kcm5_camera:R_0402_1005MetricR12, R13
22.2kcm5_camera:R_0402_1005MetricR5, R8
222uFcm5_camera:C_0805_2012MetricC25, C26
25.1kcm5_camera:R_0402_1005MetricR2, R3
2DIO7003HCST5cm5_camera:SOT-23-5U4, U7
2DMG1012Tcm5_camera:Texas_DRT-3Q1, Q2
110Rcm5_camera:R_0402_1005MetricR16
110pFcm5_camera:C_0402_1005MetricC20
1120Rcm5_camera:R_0603_1608MetricFB1
120kcm5_camera:R_0402_1005MetricR21
122Rcm5_camera:R_0402_1005MetricR10
14.7uHcm5_camera:L_Bourns_SRP5030CCL7
147kcm5_camera:R_0402_1005MetricR28
1Camera_Module_IMX219-D160cm5_camera:Camera_Module_IMX219-D160J1
1ComputeModule4-CM4cm5_camera:Raspberry-Pi-4-Compute-ModuleModule1
1DSI_15Pcm5_camera:Molex_200528-0150_1x15-1MP_P1.00mm_HorizontalDSI1
1FSUSB42MXcm5_camera:UQFN-10_1.4x1.8mm_P0.4mmU6
1HDMI_Mini_Ccm5_camera:HDMI_Mini-C_Molex_47151-0001HDMI1
1LED Greencm5_camera:LED_0603_1608MetricL6
1LED Redcm5_camera:LED_0603_1608MetricL5
1MP1658GTF-Zcm5_camera:TSOT-23-6U5
1Micro_SD_Card_Detcm5_camera:SDCARD_MOLEX_503398-1892TF1
1OSC_24MHzcm5_camera:Crystal_SMD_3225-4Pin_3.2x2.5mmX1
1RT9013-12cm5_camera:SOT-23-5U3
1RT9193-18GBcm5_camera:SOT-23-5U2
1RT9193-28GBcm5_camera:SOT-23-5U1
1Raspberry_Pi_40Pin_GPIOcm5_camera:PinHeader_2x20_P2.54mm_VerticalPI1
1STMPS2171STRcm5_camera:SOT-23-5U8
1SW_Push_SPSTcm5_camera:SW_SPST_PTS645Sx43SMTR92Key1
1USB_A_Verticalcm5_camera:MOLEX_USB_67298-4090J2
1USB_C_Receptacle_USB2.0_16Pcm5_camera:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalType_C1

Questions

How big is the Cm5 camera PCB?

It measures 55 × 40 mm and has 6 copper layers, 1.6 mm thick.

What parts does the Cm5 camera use?

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.

Where can I download the Cm5 camera KiCad files?

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.

Can I use the Cm5 camera design in my own project?

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).

More from CopperPilot/copper-pilot-cli

1
  • 2 layers29 × 51.9 mmEsp32, the printed circuit board in 3D

    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.

    21 parts36MIT

Similar boards

  • 6 layers120 × 40 mmCM5CarrierV2, the printed circuit board in 3D

    CM5CarrierV2

    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.

    62 parts1Apache-2.0
  • 6 layers120 × 40 mmCM5Carrier, the printed circuit board in 3D

    CM5Carrier

    AsadImranRafique/CM5-Carrier-Board

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

    54 partsApache-2.0
  • 6 layers55 × 40 mmCM5-AI Cam CopperPilot, the printed circuit board in 3D

    CM5-AI Cam CopperPilot

    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.

    90 parts
  • 6 layers75.1 × 102 mmCm5, the printed circuit board in 3D

    Cm5

    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.

    84 partsApache-2.0
  • 2 layers33.5 × 55.5 mmBatteryCharger FuelGauge Breakout Board, the printed circuit board in 3D

    BatteryCharger FuelGauge Breakout Board

    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.

    34 partsMIT
  • 6 layers150 × 150 mmPCMTester4.0, the printed circuit board in 3D

    PCMTester4.0

    AnjanG101/PCMTesterRedesign

    50 parts