agentee

Inizia da qui

La tua prima scheda

Da una directory vuota a una scheda a due strati verificata, sbrogliata e con pacchetto di produzione: specifica della scheda, componenti KiCad, uno schema, posizionamento, sbroglio e Gerber.

Questa guida costruisce una piccola scheda a mano, un comando alla volta: un header di alimentazione a due pin, un resistore, un LED verde e un condensatore di disaccoppiamento su una scheda JLCPCB a due strati. È la stessa sequenza che un agente segue, quindi farla una volta da soli rende molto più facile capire cosa fa il tuo agente in seguito.

Hai bisogno di agentee nel tuo PATH e delle librerie KiCad installate. Vedi Installa se non hai nessuno dei due.

Avvia un progetto

Un progetto è una directory. Tutto sotto di essa con un suffisso noto viene caricato.

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

new board scrive blinky.board.toml: un contorno di 50 per 30 mm, lo stackup JLCPCB a due strati da 1,6 mm, un tipo di via e quattro classi di net. La verifica lo carica e non riporta nulla:

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

check esce con 0 quando il progetto è pulito, 1 quando ci sono errori e 2 quando un file non si carica. Quel codice di uscita è ciò che permette a un agente, o a CI, di fare loop su di esso.

Rendi la scheda della giusta dimensione

Quattro parti non hanno bisogno di 50 per 30 mm. Riduci il contorno:

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

agentee edit riscrive il TOML per te, mantiene eventuali commenti in esso, ed esegue la verifica sul file che ha toccato. Non andare molto più piccolo su una scheda così semplice: ogni scheda porta la versione agentee vX.Y.Z-HASH nella sua serigrafia, e la verifica ha bisogno di una striscia libera di circa 23 per 1,2 mm per metterla. Su una scheda da 20 mm riporta un errore watermark e il pacchetto di produzione viene rifiutato.

Importa le parti

agentee legge le librerie di KiCad invece di includerne di proprie. Cerca in esse, poi importa un simbolo insieme al footprint che deve usare:

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

Ogni parola di una ricerca deve corrispondere a Library:Name. Gli importi finiscono in symbols/ e footprints/ come TOML. Ora la verifica ha qualcosa da 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 disegna la serigrafia a 0,12 mm e JLCPCB richiede 0,15 mm. Apri ogni footprint e cambia width = 0.12 in 0.15 nei suoi grafici di serigrafia, oppure fai in modo che il tuo agente lo faccia. Questa è la forma normale del lavoro con agentee: la diagnosi indica il file, l'elemento e il numero, e la correzione è una singola modifica.

Scrivi lo schema

agentee new schematic blinky

Il punto di partenza è solo un nome. Aggiungi board = "blinky" sotto di esso, in modo che lo schema sappia quali classi di net esistono. Poi inserisci i componenti e i net con un lotto di comandi, uno per riga:

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 lotto è un caricamento e una verifica alla fine, in modo che gli stati incompleti intermedi non vengano mai segnalati. I pin sono REF.PIN, per numero o per un nome di pin univoco: D1.A è l'anodo, e l'output conferma a quale numero è stato risolto.

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 posiziona ogni componente a destra dell'ultimo, e il LED è finito sul resistore. Spostalo, e il condensatore mentre ci sei, poi guarda:

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

Lo schema di blinky come lo renderizza agentee

Non hai disegnato un filo. Uno schema elenca i net come pin, e agentee instrada i fili sulla griglia di 1,27 mm quando li disegna. Ogni net ha una class; un net lasciato in Default è un avviso, perché la classe decide la larghezza della pista, la distanza minima e le via sulla scheda.

Posiziona i componenti

agentee new layout blinky

Aggiungi board = "blinky" e schematic = "blinky" al punto di partenza. Ora la verifica fallisce, il che è corretto:

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

Posiziona tutto in una volta:

agentee place blinky

place mette i connettori sui bordi, mantiene i passivi vicino a ciò a cui sono collegati, rifinisce il risultato e sposta qualsiasi etichetta di riferimento che ora sovrappone qualcosa. Stampa un report JSON e scrive at e rotation in una voce [[footprints]] per componente. È un avvio rapido: su una scheda reale guardi il risultato, sposti a mano ciò che conta, lo contrassegni con locked = true e posiziona di nuovo il resto.

Instradalo

Ora la verifica elenca ogni connessione mancante:

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

Dai a massa un'area di rame su entrambi i layer, collega le piazzole di massa ad essa e instrada gli altri due net:

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

tie mette un corto stub e una via accanto a ogni piazzola SMD di un net che ha un'area di rame, il modo in cui le piazzole di massa e alimentazione dovrebbero raggiungere il loro piano. route instrada i net specificati su una griglia, mantenendo la larghezza e la distanza minima di ogni classe, e aggiunge normali [[tracks]] e [[vias]] al layout. Sono tuoi da modificare in seguito.

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

Il layout di blinky instradato

Scrivi il pacchetto di produzione

agentee fab pcb:blinky -o fab/

fab rifiuta mentre il layout ha errori. Senza errori, scrive i Gerber per ogni layer, il file di foratura, un BOM e un file di posizionamento nelle colonne richieste da JLCPCB, la lista net IPC-D-356, i disegni di assemblaggio, le note di produzione e blinky-gerbers.zip da caricare.

Cosa hai fatto

Ogni passo era lo stesso ciclo: una modifica, check, sguardo. Nulla manteneva stato fuori dai file, quindi puoi fermarti in qualsiasi punto, aprire la directory in git, o passarla a un agente con la skill e chiedergli di aggiungere un diodo di polarità inversa.

Prossimo:

Migliora questa guida · Markdown per agenti