Skip to content

πŸ€– Intelligent AI-powered PCB design automation tool using machine learning for component placement, routing optimization, and signal integrity analysis. Supports KiCad, Altium Designer, and Eagle CAD integration.

License

Notifications You must be signed in to change notification settings

assalas/pcb-designer-ai-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.

Releases

No releases published

Packages

No packages published

Languages