pcb-board

Generate KiCad PCB files from programmatic board definitions.

2|Updated Feb 8, 2026
One-click install
npx skills add https://github.com/pjcau/esp32-emu-turbo --skill pcb-board
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pcb-board
Source: https://github.com/pjcau/esp32-emu-turbo/tree/main/.claude/skills/pcb-board
Command: npx skills add https://github.com/pjcau/esp32-emu-turbo --skill pcb-board

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provide a deterministic, programmatic interface to create and update the project's KiCad PCB so the generated board remains canonical and never edited by hand, preventing divergence between PCB and enclosure designs and reducing manual layout errors.

Core Features & Use Cases

  • Edit board outline and corner radius by adjusting BOARD_W, BOARD_H and CORNER_R in scripts/generate_pcb/board.py.
  • Configure the 4-layer stack, design rules and copper zones via primitives.py and routing.py to produce consistent F.Cu, In1.Cu, In2.Cu and B.Cu layers.
  • Move mounting holes, FPC slot cutout and silkscreen labels programmatically and regenerate hardware/kicad/esp32-emu-turbo.kicad_pcb for DRC and DFM checks.

Quick Start

From the project root, regenerate the KiCad PCB by running python3 -m scripts.generate_pcb hardware/kicad to produce the updated hardware/kicad output.

Frequently Asked Questions about pcb-board

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate KiCad PCB files programmatically to avoid manual layout errors?

You can generate KiCad PCB files programmatically by defining board parameters like dimensions and layer stacks in Python scripts, then running the generator to produce canonical .kicad_pcb files without manual editing.

What's the best way to automate board outline and FPC slot cutout updates in KiCad?

Automate board outline and FPC slot cutout updates by modifying geometric constants in Python board definition scripts, then regenerating the KiCad PCB file to apply changes deterministically across the layout.

How do I configure a 4-layer copper stack for KiCad using Python?

Configure a 4-layer copper stack by adjusting design primitives and routing rules in Python modules to produce consistent F.Cu, In1.Cu, In2.Cu, and B.Cu layers in the generated KiCad PCB file.

Can I run DRC and DFM checks on programmatically generated KiCad boards?

Yes, after running the Python generator to output the KiCad PCB file, you can verify the board's design rules and manufacturing constraints by running the project's integrated DRC and DFM checks.

Why should I use programmatic KiCad board generation instead of manual editing?

Programmatic KiCad board generation prevents divergence between PCB and enclosure designs by maintaining a deterministic, code-defined board file that remains canonical and is never edited by hand.

What limitations exist when moving mounting holes programmatically in KiCad?

Moving mounting holes programmatically requires modifying Python constants and regenerating the entire board file, meaning any manual edits to the output PCB will be overwritten during the next generation cycle.