一键导入
pcb-board
Board setup operations — dimensions, outline, layers, mounting holes, text (KiCAD MCP tools 5-13)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Board setup operations — dimensions, outline, layers, mounting holes, text (KiCAD MCP tools 5-13)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Full PCB verification loop using local kicad-cli (DRC + 3D render + gerbers)
Create a new Claude Code skill for this project. Use when you need to add a new skill, improve an existing skill, or convert a workflow into a reusable skill.
Verifies that every PCB pad-to-net assignment matches the manufacturer datasheet pin specifications. Use when changing board.py/routing.py/footprints.py, after GPIO remapping, before releases, or when adding new components. Automated guard against wiring errors like unconnected VBUS, wrong pin assignments, or missing GND connections.
Design intent adversary — cross-checks GPIO, nets, power chains, signal paths across firmware/schematic/PCB/datasheet sources to find lost connections and inconsistencies
Analyze a DFM report and fix all issues in the PCB generation scripts
Run DFM guard tests and add new regression tests after fixing PCB issues
基于 SOC 职业分类
| name | pcb-board |
| model | claude-opus-4-7 |
| description | Board setup operations — dimensions, outline, layers, mounting holes, text (KiCAD MCP tools 5-13) |
| disable-model-invocation | true |
| allowed-tools | Bash, Read, Write, Edit, Grep, Glob |
| argument-hint | ["info | outline | layers | holes | text"] |
Map KiCAD MCP board setup tools to our project's programmatic PCB generation infrastructure.
Board setup is managed across multiple files in scripts/generate_pcb/. The board is generated programmatically -- never edited manually in KiCad.
| Property | Value |
|---|---|
| Dimensions | 160 x 75 mm |
| Layer count | 4 (F.Cu, In1.Cu, In2.Cu, B.Cu) |
| Thickness | 1.6 mm |
| Corner radius | 6 mm |
| Mounting holes | 6x M2.5 |
| FPC slot cutout | 3 x 24 mm at center-right |
| Layer | Name | Purpose |
|---|---|---|
| 0 | F.Cu | Front copper -- face buttons + charging LEDs |
| 4 | In1.Cu | Inner layer 1 -- GND plane |
| 6 | In2.Cu | Inner layer 2 -- +3V3/+5V power planes |
| 2 | B.Cu | Back copper -- all electronics, ICs, connectors |
Depending on the argument:
info: Show board dimensions, layer stack, and stats:
cd /Users/pierrejonnycau/Documents/WORKS/esp32-emu-turbo && python3 -c "
from scripts.generate_pcb import board
print(f'Board: {board.BOARD_W} x {board.BOARD_H} mm')
print(f'Corner radius: {board.CORNER_R} mm')
print(f'Center: ({board.CX}, {board.CY})')
print(f'Mounting holes (enclosure coords): {board.MOUNT_HOLES_ENC}')
print(f'FPC slot: {board.FPC_SLOT_W}x{board.FPC_SLOT_H}mm at enc{board.FPC_SLOT_ENC}')
print(f'Display area: {board.DISPLAY_W}x{board.DISPLAY_H}mm')
"
outline: Edit board outline in scripts/generate_pcb/board.py:
_board_outline() (line 117)BOARD_W, BOARD_H, CORNER_R constantsFPC_SLOT_ENC, FPC_SLOT_W, FPC_SLOT_Hlayers: View or edit the 4-layer stack:
layers_4layer() function in scripts/generate_pcb/primitives.py (line 33)setup_4layer() function in scripts/generate_pcb/primitives.py (line 62)holes: Edit mounting hole positions:
MOUNT_HOLES_ENC in scripts/generate_pcb/board.py (line 39)(-70, 30.5), (70, 30.5), (-70, -30.5), (70, -30.5), (-25, 0), (25, 0)enc_to_pcb()text: Edit board text and silkscreen labels:
_silkscreen_labels() in scripts/generate_pcb/board.py (line 167)After changes, regenerate the PCB:
cd /Users/pierrejonnycau/Documents/WORKS/esp32-emu-turbo && python3 -m scripts.generate_pcb hardware/kicad
cd /Users/pierrejonnycau/Documents/WORKS/esp32-emu-turbo && python3 scripts/drc_check.py
| File | Purpose |
|---|---|
scripts/generate_pcb/board.py | Board outline (_board_outline, line 117), mounting holes (MOUNT_HOLES_ENC, line 39), text labels (_silkscreen_labels, line 167), component placements |
scripts/generate_pcb/primitives.py | Layer stack (layers_4layer, line 33), board setup (setup_4layer, line 62), header, S-expression generators |
scripts/generate_pcb/routing.py | References board geometry: BOARD_W, BOARD_H, FPC slot zone |
scripts/drc_check.py | Design rule check |
scripts/verify_dfm_v2.py | DFM verification |
hardware/kicad/esp32-emu-turbo.kicad_pcb | Generated PCB output |
(0, 0), X+ = right, Y+ = up(0, 0), X+ = right, Y+ = down (KiCad convention)enc_to_pcb(ex, ey) returns (CX + ex, CY - ey) where CX=80.0, CY=37.5| MCP Tool | Our Implementation |
|---|---|
set_board_size | Edit BOARD_W, BOARD_H in board.py |
add_board_outline | Edit _board_outline() in board.py |
add_layer | Edit layers_4layer() in primitives.py |
set_active_layer | N/A (generated, not interactive) |
get_layer_list | Read layers_4layer() from primitives.py |
get_board_info | Parse board dimensions/stats from board.py constants |
get_board_2d_view | kicad-cli pcb render --output /tmp/board.png hardware/kicad/esp32-emu-turbo.kicad_pcb |
add_mounting_hole | Edit MOUNT_HOLES_ENC list in board.py |
add_board_text | Edit _silkscreen_labels() in board.py |
hardware/kicad/esp32-emu-turbo.kicad_pcb directly -- it is a generated file.hardware/enclosure/enclosure.scad). Changing board size requires updating the enclosure too.zone_fill() in routing.py.