agentee

Commencer ici

Votre première carte

D'un répertoire vide à une carte à deux couches vérifiée, routée et à un paquet de fabrication : spécification de carte, composants KiCad, un schéma, le placement, le routage et les Gerbers.

Ce guide construit une petite carte à la main, une commande à la fois : un connecteur d'alimentation à deux broches, une résistance, une LED verte et un condensateur de découplage sur une carte JLCPCB à deux couches. C'est la même séquence qu'un agent suit, donc la faire une fois vous-même rend beaucoup plus facile la lecture de ce que votre agent fait plus tard.

Vous avez besoin d'agentee dans votre PATH et des bibliothèques KiCad installées. Voir Installer si vous n'avez ni l'un ni l'autre.

Démarrer un projet

Un projet est un répertoire. Tout en dessous avec un suffixe connu est chargé.

mkdir blinky && cd blinky
agentee new board blinky
agentee check

new board écrit blinky.board.toml : un contour de 50 par 30 mm, l'empilement JLCPCB à deux couches de 1,6 mm, un type de via et quatre classes de nets. La vérification le charge et ne signale rien :

0 sims, 0 layouts, 0 schematics, 1 boards, 0 symbols, 0 footprints: 0 errors, 0 warnings

check sort avec 0 si le projet est propre, 1 s'il y a des erreurs et 2 si un fichier ne se charge pas. Ce code de sortie est ce qui permet à un agent, ou à une CI, de boucler dessus.

Mettre la carte à la bonne taille

Quatre composants n'ont pas besoin de 50 par 30 mm. Réduisez le contour :

agentee edit board blinky outline --size 30,18 --corner-radius 1mm

agentee edit réécrit le TOML pour vous, conserve tout commentaire dedans, et exécute la vérification sur le fichier touché. N'allez pas beaucoup plus petit sur une carte aussi simple : chaque carte porte la version agentee vX.Y.Z-HASH dans sa sérigraphie, et la vérification a besoin d'une bande claire d'environ 23 par 1,2 mm pour la placer. Sur une carte de 20 mm, elle signale une erreur watermark et le paquet de fabrication est refusé.

Importer les composants

agentee lit les bibliothèques KiCad au lieu d'en fournir ses propres. Recherchez-y, puis importez un symbole avec l'empreinte qu'il doit utiliser :

agentee search symbol conn_01x02
agentee import symbol Connector_Generic:Conn_01x02 --footprint Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical
agentee import symbol Device:R --footprint Resistor_SMD:R_0603_1608Metric
agentee import symbol Device:LED --footprint LED_SMD:LED_0603_1608Metric
agentee import symbol Device:C --footprint Capacitor_SMD:C_0603_1608Metric
agentee check

Chaque mot d'une recherche doit correspondre à Library:Name. Les imports arrivent dans symbols/ et footprints/ en TOML. La vérification a maintenant quelque chose à dire :

warning: ./footprints/R_0603_1608Metric.fp.toml: R_0603_1608Metric silk: silk lines under the fab minimum width 0.15mm: 2, thinnest 0.12mm

KiCad dessine la sérigraphie à 0,12 mm et JLCPCB veut 0,15 mm. Ouvrez chaque empreinte et passez width = 0.12 à 0.15 sur ses graphiques de sérigraphie, ou laissez votre agent le faire. C'est la forme normale du travail avec agentee : le diagnostic nomme le fichier, l'élément et la valeur, et la correction est une seule édition.

Écrire le schéma

agentee new schematic blinky

Le point de départ n'est qu'un nom. Ajoutez board = "blinky" en dessous, pour que le schéma sache quelles classes de nets existent. Puis placez les composants et les nets en un lot de commandes, une par ligne :

agentee edit sch - <<'EOF'
add J1 Conn_01x02 PWR --footprint PinHeader_1x02_P2.54mm_Vertical
add R1 R 1k --footprint R_0603_1608Metric
add D1 LED green --footprint LED_0603_1608Metric
add C1 C 100n --footprint C_0603_1608Metric
net VIN J1.1 R1.1 C1.1 --class Power
net LED_A R1.2 D1.A --class Signal
net GND J1.2 D1.K C1.2 --class Ground --style power
EOF

Un lot est une seule charge et une seule vérification à la fin, de sorte que les états intermédiaires inachevés ne sont jamais signalés. Les broches sont REF.PIN, par numéro ou par un nom de broche unique : D1.A est l'anode, et la sortie confirme le numéro résolu.

added J1 (Conn_01x02)
added R1 (R)
added D1 (LED)
added C1 (C)
VIN now joins J1.1, R1.1, C1.1
LED_A now joins R1.2, D1.2
GND now joins J1.2, D1.1, C1.2
warning: /home/you/blinky/blinky.sch.toml: blinky part R1: body overlaps D1 (parts[2])
0 errors, 1 warnings in the files this touched

add place chaque composant à droite du dernier, et la LED est tombée sur la résistance. Déplacez-la, et le condensateur pendant que vous y êtes, puis regardez :

agentee edit sch blinky move D1 25.4,0 --rotation 90
agentee edit sch blinky move C1 12.7,10.16
agentee render sch:blinky -o sch.png

Le schéma blinky tel que agentee le rend

Vous n'avez pas dessiné de fil. Un schéma liste les nets comme des broches, et agentee route les fils sur la grille de 1,27 mm quand il les dessine. Chaque net a une class ; un net laissé en Default est un avertissement, car la classe décide de sa largeur de piste, de son espacement et de ses vias sur la carte.

Placer les composants

agentee new layout blinky

Ajoutez board = "blinky" et schematic = "blinky" au point de départ. La vérification échoue maintenant, ce qui est correct :

error: ./blinky.pcb.toml: blinky footprints: C1 is not placed

Placez tout d'un coup :

agentee place blinky

place met les connecteurs sur les bords, garde les passifs près de ce à quoi ils se connectent, affine le résultat et déplace toute étiquette de référence qui chevauche maintenant quelque chose. Il affiche un rapport JSON et écrit at et rotation dans une entrée [[footprints]] par composant. C'est un démarrage rapide : sur une vraie carte, vous regardez le résultat, déplacez à la main ce qui compte, le marquez locked = true, et placez le reste à nouveau.

Routage

La vérification liste maintenant chaque connexion manquante :

error: ./blinky.pcb.toml: blinky net VIN: [unrouted] 2 unrouted: J1.1 | R1.1 | C1.1 are not joined

Donnez une zone de cuivre à la masse sur les deux couches, reliez les pastilles de masse à cette zone, et routez les deux autres nets :

agentee edit pcb blinky zone GND --layers F.Cu,B.Cu
agentee tie blinky
agentee route blinky --nets 'VIN,LED_A'
agentee check

tie met un court stub et un via à côté de chaque pastille SMD d'un net qui a une zone, ce qui est la façon dont les pastilles de masse et d'alimentation doivent atteindre leur plan. route route les nets nommés sur une grille, en gardant la largeur et l'espacement de chaque classe, et ajoute des [[tracks]] et [[vias]] ordinaires au routage. Ils sont à vous d'être édités ensuite.

0 sims, 1 layouts, 1 schematics, 1 boards, 4 symbols, 4 footprints: 0 errors, 0 warnings
agentee render pcb:blinky -o pcb.png

Le routage blinky

Écrire le paquet de fabrication

agentee fab pcb:blinky -o fab/

fab refuse tant que le routage a des erreurs. Sans aucune, il écrit les Gerbers pour chaque couche, le fichier de perçage, une BOM et un fichier de placement dans les colonnes de JLCPCB, la liste de nets IPC-D-356, les dessins d'assemblage, les notes de fabrication, et blinky-gerbers.zip à téléverser.

Ce que vous avez fait

Chaque étape suivait la même boucle : une modification, une vérification, un regard. Rien ne conservait d'état en dehors des fichiers, vous pouvez donc arrêter à tout moment, ouvrir le répertoire dans git, ou le confier à un agent avec la skill et lui demander d'ajouter une diode de polarité inverse.

Ensuite :

Améliorer ce guide · Markdown pour agents