MCPcopy Index your code
hub / github.com/assalas/pcb-designer-ai-agent

github.com/assalas/pcb-designer-ai-agent @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
47 symbols 202 edges 17 files 10 documented · 21%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

PCB Designer AI Agent

An open-source agentic pipeline that turns a natural-language hardware description into a manufacturable PCB. The system automates:

1) Requirement → Component selection (BOM) 2) Datasheet retrieval → Footprint extraction → Footprint generation (.kicad_mod) 3) Schematic synthesis (netlist) from component reference designs and constraints 4) PCB placement and routing (via KiCad + Freerouting or vendor tools adapters) 5) Gerber generation via EDA tool backends (KiCad first-class; adapters for Altium/Cadence planned)

Status: early scaffold. Includes a working, parametric KiCad footprint generator for common packages and an extensible pipeline with clear interfaces for each step.

Why

  • Speed up concept-to-board by automating tedious steps.
  • Keep humans-in-the-loop for safety while leveraging LLMs/CV for datasheet understanding.
  • Vendor-neutral core with adapters for popular EDA tools.

Architecture

  • Core config + logging
  • Pluggable LLM providers (OpenAI/Ollama/etc.)
  • Steps:
  • requirements_parser → bom_generator → datasheet_fetcher → footprint_generator → schematic_synthesizer → pcb_router → gerber_exporter
  • Backends:
  • KiCad backend (first-class, CLI-friendly)
  • Adapters for Altium (COM/Script/PDN) and Cadence Allegro (SKILL/CLI) planned
pcb-designer-ai-agent/
├─ README.md
├─ LICENSE
├─ pyproject.toml
├─ .gitignore
├─ src/pcbai/
│  ├─ __init__.py
│  ├─ core/
│  │  ├─ config.py
│  │  └─ logger.py
│  ├─ llm/
│  │  ├─ provider.py
│  │  └─ providers/
│  ├─ steps/
│  │  ├─ requirements_parser.py
│  │  ├─ bom_generator.py
│  │  ├─ datasheet_fetcher.py
│  │  ├─ footprint_generator.py   <-- working generator for SMD R/C and SOIC
│  │  ├─ schematic_synthesizer.py
│  │  ├─ pcb_router.py
│  │  └─ gerber_exporter.py
│  └─ pipeline/
│     └─ cli.py
└─ tests/
   └─ test_footprint_generator.py

Quickstart

  • Python 3.10+
  • KiCad 7/8 recommended for future steps (not required to try the footprint generator)

Install:

pip install -e .

Generate a 0603 resistor footprint:

pcbai footprint --type smd_rc --name R_0603 --body-l 1.6 --body-w 0.8 --pad-l 0.9 --pad-w 0.8 --gap 0.8 --out build/

Generate a 14-pin SOIC footprint:

pcbai footprint --type soic --name SOIC-14_3.9x8.7mm_P1.27mm \
  --pins 14 --pitch 1.27 --body-l 8.7 --body-w 3.9 --pad-l 1.5 --pad-w 0.6 --row-offset 2.3 --out build/

You will find .kicad_mod files in build/ to drop into a KiCad library.

Vision + Datasheet extraction

  • Planned: PDF/image → text/structured extraction using OCR + LLM-Vision to infer package params when IPC tables are present.
  • Today: you can provide measured params directly to the generator.

Schematic/Netlist synthesis

  • Planned: SKiDL-based netlist generation from component set + reference circuits.

PCB routing and Gerbers

  • Planned: KiCad pcbnew and Freerouting integration; kicad-cli for Gerbers.
  • Adapters for Altium/Cadence will require respective licensed tool installations and API keys.

Configuration

  • All runtime config via environment variables or a YAML file, see src/pcbai/core/config.py.

Contributing

  • PRs welcome. Focus areas:
  • Datasheet parsers and CV feature extractors
  • More package generators (QFN/QFP/BGA)
  • SKiDL schematic templates
  • EDA tool adapters

License

Dual-licensed: - Non-commercial, open-source use granted under the Custom License in LICENSE. - Commercial/enterprise use requires prior written authorization from the author. Contact: assalas@tutamail.com.

Core symbols most depended-on inside this repo

_find_first_float
called by 12
src/pcbai/steps/datasheet_package_extractor.py
_generate_quad_pads
called by 8
src/pcbai/steps/footprint_qfn_qfp.py
write
called by 6
src/pcbai/steps/footprint_qfn_qfp.py
generate_soic
called by 3
src/pcbai/steps/footprint_generator.py
generate_qfn
called by 2
src/pcbai/steps/footprint_qfn_qfp.py
generate_qfp
called by 2
src/pcbai/steps/footprint_qfn_qfp.py
parse_requirements
called by 2
src/pcbai/steps/requirements_parser.py
write
called by 2
src/pcbai/steps/footprint_generator.py

Shape

Function 31
Class 10
Method 6

Languages

Python100%

Modules by API surface

src/pcbai/steps/footprint_generator.py9 symbols
src/pcbai/steps/footprint_qfn_qfp.py8 symbols
src/pcbai/steps/datasheet_package_extractor.py7 symbols
src/pcbai/pipeline/cli.py5 symbols
src/pcbai/llm/provider.py4 symbols
tests/test_footprint_generator.py3 symbols
tests/test_qfn_qfp.py2 symbols
src/pcbai/steps/skidl_schematic.py1 symbols
src/pcbai/steps/schematic_synthesizer.py1 symbols
src/pcbai/steps/requirements_parser.py1 symbols
src/pcbai/steps/pcb_router.py1 symbols
src/pcbai/steps/gerber_exporter.py1 symbols

For agents

$ claude mcp add pcb-designer-ai-agent \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page