Skip to content
18nelli18Public

About

Agentic Pi setup for PCB creation on KiCAD

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

PiCB (Pi Circuit Board)

Ce dépôt fournit un environnement de travail préconfiguré pour le harnais Pi. Il permet de piloter la conception de circuits imprimés (PCB) via KiCad en utilisant un agent autonome.

Le processus suit une méthodologie d'ingénierie stricte, allant de la rédaction du cahier des charges à la génération des fichiers de fabrication.

Workflow de conception

La compétence pcb-flow (définie dans .pi/skills/) agit comme le superviseur et chef d'orchestre du projet. Son utilité est fondamentale pour la conception matérielle par IA : elle définit une machine à états stricte qui empêche l'agent de s'éparpiller, de brûler des étapes ou d'halluciner des composants. Elle force l'agent à valider chaque phase formellement et à n'utiliser que les fichiers présents sur le disque comme source de vérité, évitant ainsi toute dépendance à la mémoire éphémère de la session.

Le processus est ainsi divisé en 6 phases séquentielles. L'état d'avancement est persisté dans le répertoire design/.

Phase Étape Compétence Fichiers produits Description
1 Brief pcb-brief design/brief.md Cahier des charges et spécifications techniques.
2 BOM pcb-bom design/bom.yaml Nomenclature des composants sélectionnés.
3 Datasheets pcb-datasheets design/datasheets/*.md Extraction des caractéristiques techniques de référence.
4 Librairies pcb-libs design/lib/ Symboles, empreintes et modèles 3D KiCad.
5 Schéma pcb-schematic *.kicad_sch Fichier source du schéma électronique câblé.
6 Review pcb-review design/checks/*.json Rapports d'audit (ERC/DRC) et exports de production (Gerbers, BOM, PDF).

Architecture Détaillée du Système

Le diagramme suivant détaille l'interaction entre l'orchestrateur principal, les sous-agents spécialisés (chacun exécutant cliproxyapi/gemini-3.8-flash-high), le garde-fou d'interception pcb-gate, les outils externes et les fichiers persistants du répertoire design/ :

%%{init: {"flowchart": {"wrappingWidth": 400}} }%%
flowchart LR
    Start(["👤 <b>Démarrage</b><br/>Besoin utilisateur"])

    %% Phase 1
    P1["<b>Phase 1 · Spécification</b><br/>pcb-brief · Orchestrateur<br/>📁 design/brief.md"]

    %% Phase 2
    P2["<b>Phase 2 · Sourcing & BOM</b><br/>pcb-bom · part-scout<br/>📁 design/bom.yaml"]

    %% Phase 3
    P3["<b>Phase 3 · Datasheets</b><br/>pcb-datasheets · extractor<br/>📁 design/datasheets/"]

    %% Phase 4
    P4["<b>Phase 4 · Librairies</b><br/>pcb-libs · Orchestrateur<br/>📁 design/lib/ (symboles, 3D)"]

    %% Porte 1
    Gate1{"🛡️ <b>pcb-gate</b><br/>lib_ok ?"}

    %% Phase 5
    P5["<b>Phase 5 · Schéma KiCad</b><br/>pcb-schematic · Orchestrateur<br/>📁 *.kicad_sch & sch.svg"]

    %% Porte 2
    Gate2{"🛡️ <b>pcb-gate</b><br/>ERC = 0 ?"}

    %% Phase 6
    P6["<b>Phase 6 · Audit & Revue</b><br/>pcb-review · reviewer<br/>📁 review.md & Gerbers"]

    Success(["🚀 <b>Production</b><br/>Fabrication PCB & PCBA"])

    %% Séquence principale
    Start --> P1
    P1 -->|Brief validé| P2
    P2 --> P3
    P3 -->|Datasheets OK| P4
    P4 --> Gate1

    Gate1 -->|✅ Oui| P5
    Gate1 -.->|❌ Non : lib incomplète| P4

    P5 --> Gate2
    Gate2 -->|✅ 0 Erreur| P6
    Gate2 -.->|❌ Erreurs| P5

    %% Boucles de retour fonctionnelles
    P3 -.->|⚠️ Rejet| P2
    P6 -.->|🔧 Corrections| P5
    P6 -->|Validation finale| Success
Loading

Prérequis et Dépendances

L'exécution complète du pipeline requiert l'installation des composants logiciels suivants sur le système hôte. Ils ne sont pas inclus dans le dépôt source.

1. Composants Pi et CAO (KiCad)

  • Pi Coding Agent Moteur d'exécution de l'agent.
    curl -fsSL https://pi.dev/install.sh | sh
  • KiCad (v10 ou Nightly) L'interaction de l'agent requiert l'API IPC introduite dans KiCad 10.
    • Configuration requise : Aller dans Préférences → Plugins et cocher "Enable KiCad API".
  • Konnect Interface de communication logicielle permettant à l'agent d'exécuter des requêtes vers KiCad (185+ outils supportés).
    • Installation : Charger le fichier .zip via le gestionnaire de plugins (Plugin and Content Manager) de KiCad.
    • Note macOS : En cas de téléchargement manuel, il peut être nécessaire de retirer l'attribut de quarantaine : xattr -d com.apple.quarantine /chemin/vers/konnect.
  • Pi-Kicad Extension d'agent dédiée à la manipulation de l'API KiCad.
    • L'extension est déjà incluse localement dans ce dépôt (.pi/npm), aucune installation globale n'est requise.

2. Utilitaires de traitement de données (Datasheets & Composants)

Ces dépendances permettent l'analyse des spécifications techniques et la conversion de composants depuis des catalogues tiers.

  • easyeda2kicad.py Script de conversion permettant l'import automatique de composants depuis les catalogues EasyEDA/LCSC vers le format natif KiCad.
    pip install easyeda2kicad
  • Poppler Bibliothèque de rendu PDF requise pour l'analyse et la lecture des fiches techniques (datasheets).
    • macOS : brew install poppler
    • Linux : sudo apt install poppler-utils
  • pi-pdf Extension Pi exploitant Poppler pour extraire les données textuelles des fichiers PDF.
    • Installation : Se référer à la documentation du dépôt officiel pour le déploiement sur l'agent.

3. Système et Extensions Globales Pi

Pour reproduire le comportement exact de l'environnement de conception initial, les dépendances système et extensions globales suivantes sont nécessaires :

  • tmux Multiplexeur de terminal requis par le harnais Pi pour l'isolation et la gestion des sous-agents. (Vous pouvez aussi utiliser un terminal avec multiplexeur natif, comme cmux)

    macOS :

    brew install tmux

    Linux :

    sudo apt install tmux
  • Extensions Pi Globales Les extensions globales requises sont :

    • context-mode : Gestion optimisée du contexte pour les gros fichiers.
    • pi-web-access : Accès réseau étendu pour l'agent.
    • @juicesharp/rpiv-ask-user-question : Interface de questionnement utilisateur (QCM interactif).
    • pi-interactive-subagents : Gestion interactive des sous-agents dans le terminal.

    Installation en une seule commande :

    pi install -l npm:context-mode && \
    pi install -l npm:pi-web-access && \
    pi install -l npm:@juicesharp/rpiv-ask-user-question && \
    pi install -l git:github.com/HazAT/pi-interactive-subagents

Utilisation

  1. Cloner ce dépôt et se placer à sa racine. Renommez le dossier "pi" en ".pi"
git clone https://github.com/18nelli18/PiCB.git
cd PiCB
mv -r pi .pi
  1. Démarrer l'agent Pi :
    tmux new -A -s pi 'pi'
  2. Formuler la requête technique pour amorcer la Phase 1. Exemple : "Conçois un circuit imprimé pour un clignotant à LED basé sur un NE555."

Structure du Dépôt

PiCB/
├── .pi/                # Configuration locale et environnement du harnais Pi
│   ├── skills/         # Fichiers de compétences (pcb-flow, pcb-brief, etc.)
│   └── npm/            # Dépendances locales de l'agent (ex: Pi-KiCad)
├── design/             # Répertoire de travail (état persistant du projet)
│   ├── brief.md        
│   ├── bom.yaml        
│   ├── datasheets/     
│   ├── lib/            
│   └── checks/         
└── README.md

Reprise de Conception et Partage

L'état du projet étant intégralement persisté sous forme de fichiers dans le répertoire design/, le processus de conception peut être interrompu, partagé, ou versionné via Git sans perte d'information.

Lors du lancement de la commande pi dans ce dépôt, l'agent inspecte automatiquement le contenu du dossier design/ pour identifier la phase courante et est en mesure de reprendre les opérations à l'endroit exact où elles ont été arrêtées.

About

Agentic Pi setup for PCB creation on KiCAD

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages