Skip to the content
PCBKitNew board
2 layers29 × 51.9 mmEsp32, 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
29 × 51.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
21
Nets
47
Pads
145
Tracks, vias
348, 65
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 Sep 2026
Updated
6 Nov 2026

Overview

Esp32 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 2-layer board of 29 × 51.9 mm with 21 parts on 47 nets, routed with 348 tracks and 65 vias.

It is built around the ESP32-S3-WROOM-1-N8, TS-1088-AR02016 and TYPE-C-31-M-12. Its parts include 6 resistors, 5 capacitors, 3 diodes, 3 connectors and 2 ICs. It belongs with the ESP32 boards of this library.

Main components

3

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

21
QtyValueFootprintReferences
65.1KResistor_SMD:R_0603_1608MetricR1, R2, R3, R4, R5, R6
310uCapacitor_SMD:C_0603_1608MetricC1, C4, C5
2Conn_01x20_PinConnector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ2, J3
2TS-1088-AR02016easyeda2kicad:SW-SMD_L3.9-W3.0-P4.45SW1, SW2
1100nCapacitor_SMD:C_0603_1608MetricC3
122uCapacitor_SMD:C_0603_1608MetricC2
1BLUELED_SMD:LED_0603_1608MetricD3
1ESP32-S3-WROOM-1PCM_Espressif:ESP32-S3-WROOM-1U2
1GREENLED_SMD:LED_0603_1608MetricD2
1LD1117S33TR_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1REDLED_SMD:LED_0603_1608MetricD1
1TYPE-C-31-M-12TYPE-C-31-M-12:HRO_TYPE-C-31-M-12J1

Questions

How big is the Esp32 PCB?

It measures 29 × 51.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Esp32 use?

21 parts, built around the ESP32-S3-WROOM-1-N8, TS-1088-AR02016 and TYPE-C-31-M-12. 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 Esp32 KiCad files?

From the CopperPilot/copper-pilot-cli repository on GitHub, at the commit this page was made from: the board is examples/001_esp32/esp32/esp32.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 Esp32 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
  • 6 layers55 × 40 mmCm5 camera, the printed circuit board in 3D

    Cm5 camera

    CopperPilot/copper-pilot-cli

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

    90 parts36MIT

Similar boards

  • 2 layers86.6 × 33 mmController, the printed circuit board in 3D

    Controller

    alanrstalin2010/Drawing-robot

    I want to create a drawing robot for my assignments. I think it will be helpful.This is my first project

    27 parts2
  • 2 layers96.2 × 129.6 mmPendant, the printed circuit board in 3D

    Pendant

    cumhuronat/mr-1-openpendant

    An opensource pendant project MR-1 CNC

    62 parts1
  • 2 layers80.7 × 40.4 mmAssistant, the printed circuit board in 3D

    Assistant

    emmanuelprakash177-gi/RPI-AI-ASSISTANT

    I want to create an ai assistant . Now a days am very much thinking about it . Then I got an idea to create a ai assistant fully offline. Running fully offline model

    25 parts
  • 4 layers49 × 42 mmEsp-32-s3-wroom-1, the printed circuit board in 3D

    Esp-32-s3-wroom-1

    JiaenLiew/Self-stabilising-gimbal

    Electronics and Control systems project with self made ESP32 devboard and DRV8316 pcbs

    28 parts
  • 4 layers190 × 100 mmRioctrl controller, the printed circuit board in 3D

    Rioctrl controller

    festlv/rioctrl-hw

    Hardware design for modular CNC controller

    281 parts16CERN-OHL-S-2.0
  • 2 layersBaseline, the printed circuit board in 3D

    Baseline

    atomic14/kicad-esp32-dev-boards

    Generates canonical "basic dev board" KiCad schematics for the Espressif modules that have a PCB antenna + native USB (12 modules across S2/S3/C3/C5/C6/H2).

    18 parts15
  • 4 layers43.2 × 17.8 mmGeekble Nano ESP32S3, the printed circuit board in 3D

    Geekble Nano ESP32S3

    SooDragon/Geekble-nano-ESP32S3

    Geekble nano ESP32S3

    94 parts6CC0-1.0
  • 2 layers106.3 × 21.7 mmNanoleaf shapes, the printed circuit board in 3D

    Nanoleaf shapes

    Cptmeme/Nanoleaf-Shapes-controller

    Bus-powered half-duplex interface board between a 3.3 V MCU and the Nanoleaf Shapes panel bus

    63 parts3GPL-3.0