agentee

Begin hier

Je eerste printplaat

Van een lege map naar een gecontroleerde, gerouteerde twee-laags printplaat en een fabrikantpakket: printplaat specificatie, KiCad-onderdelen, een schema, plaatsing, routing en Gerbers.

Deze handleiding bouwt een kleine printplaat met de hand, commando voor commando: een twee-pins voedingshaver, een weerstand, een groene LED en een ontkoppelingselektrolyt op een tweelaagse JLCPCB-printplaat. Het is dezelfde volgorde die een agent volgt, dus het zelf één keer doen maakt het veel makkelijker om later te lezen wat je agent doet.

Je hebt agentee op je PATH en de KiCad-bibliotheken geïnstalleerd nodig. Zie Installeren als je beide mist.

Start een project

Een project is een map. Alles daaronder met een bekende extensie wordt geladen.

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

new board schrijft blinky.board.toml: een omlijning van 50 bij 30 mm, de JLCPCB-tweelaagse 1,6 mm stackup, één via-type en vier netklassen. De controle laadt het en rapporteert niets:

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

check eindigt met 0 wanneer het project schoon is, 1 wanneer er fouten zijn en 2 wanneer een bestand niet laadt. Die exit code is wat een agent, of CI, in staat stelt erop te lussen.

Maak de printplaat de juiste grootte

Vier onderdelen hebben 50 bij 30 mm niet nodig. Maak de omlijning kleiner:

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

agentee edit schrijft het TOML voor je, behoudt eventuele commentaren erin en voert de controle uit op het bestand dat het heeft aangeraakt. Ga niet veel kleiner op een printplaat zo simpel: elke printplaat draagt de agentee vX.Y.Z-HASH-versie in de zeefdruk, en de controle heeft een vrije strook van ongeveer 23 bij 1,2 mm nodig om die in te plaatsen. Op een 20 mm printplaat rapporteert het een watermark-fout en wordt het fabpakket geweigerd.

Importeer de onderdelen

agentee leest de KiCad-bibliotheken in plaats van er zelf mee te leveren. Zoek erin en importeer daarna een symbool samen met de footprint die het moet gebruiken:

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

Elk woord van een zoekopdracht moet overeenkomen met Library:Name. Imports komen in symbols/ en footprints/ als TOML. De controle heeft nu iets te zeggen:

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 tekent zeefdruk met 0,12 mm en JLCPCB wil 0,15 mm. Open elke footprint en verander width = 0.12 in 0.15 op de zeefdruk-elementen, of laat je agent het doen. Dit is de normale vorm van werk met agentee: de diagnose noemt het bestand, het item en het getal, en de oplossing is één bewerking.

Schrijf het schema

agentee new schematic blinky

De starter is alleen een naam. Voeg eronder board = "blinky" toe, zodat het schema weet welke netklassen bestaan. Voeg daarna de onderdelen en nets toe met één batch van commando's, één per regel:

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

Een batch is één laad en één controle aan het einde, dus de halve afgeronde staten ertussen worden nooit gemarkeerd. Pinnen zijn REF.PIN, per nummer of per unieke pinnaam: D1.A is de anode, en de output bevestigt welk nummer het heeft opgelost.

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 plaatst elk onderdeel rechts van het vorige, en de LED kwam op de weerstand terecht. Verplaats die, en de condensator terwijl je er toch bent, en bekijk dan:

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

Het blinky-schema zoals agentee het weergeeft

Je hebt geen draad getekend. Een schema noemt nets als pins, en agentee routeert de draden op het raster van 1,27 mm als het ze tekent. Elk net heeft een class; een net dat in Default blijft, is een waarschuwing, omdat de klasse de spoordikte, de clearance en de vias op de printplaat bepaalt.

Plaats de onderdelen

agentee new layout blinky

Voeg board = "blinky" en schematic = "blinky" toe aan de starter. De controle faalt nu, wat correct is:

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

Plaats alles tegelijk:

agentee place blinky

place plaatst connectoren op de randen, houdt passieven dicht bij wat ze verbinden, verfijnt het resultaat en verplaatst elke referentie-label die nu iets overlapt. Het toont een JSON-rapport en schrijft at en rotation in een [[footprints]]-item per onderdeel. Het is een snelle start: op een echte printplaat bekijk je het resultaat, verplaatst je wat belangrijk is met de hand, markeer je het als locked = true en plaats je de rest opnieuw.

Routeer het

De controle noemt nu elke ontbrekende verbinding:

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

Geef ground een kopervlak op beide lagen, verbind de ground-pads ermee en routeer de andere twee 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 plaatst een korte stub en een via naast elke SMD-pad van een net met een zone, en zo moeten ground- en voeding-pads hun vlak bereiken. route routeert de genoemde nets op een raster, houdt de dikte en clearance van elke klasse en voegt gewone [[tracks]] en [[vias]] toe aan het layout. Je kunt ze daarna zelf bewerken.

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

Het gerouteerde blinky-layout

Schrijf het fab-pakket

agentee fab pcb:blinky -o fab/

fab weigert zolang het layout fouten heeft. Zonder fouten schrijft het de Gerbers voor elke laag, het boorbestand, een BOM en een plaatsingsbestand in de kolommen van JLCPCB, de IPC-D-356-netlist, montage-tekeningen, fab-notities en blinky-gerbers.zip om te uploaden.

Wat je deed

Elke stap was dezelfde loop: één bewerking, check, kijken. Niets hield staat buiten de bestanden, dus je kunt op elk punt stoppen, de map in git openen, of hem aan een agent geven met de skill en vragen om een omgekeerde polariteitsdiode toe te voegen.

Volgende:

Verbeter deze handleiding · Markdown voor agents