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 checknew 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 warningscheck 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 1mmagentee 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 checkElk 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.12mmKiCad 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 blinkyDe 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
EOFEen 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 touchedadd 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
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 blinkyVoeg 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 placedPlaats alles tegelijk:
agentee place blinkyplace 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 joinedGeef 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 checktie 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 warningsagentee render pcb:blinky -o pcb.png
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:
- Zet je codeeragent op zodat hij dit alles kan doen vanuit een zin.
- Printplaat-specificaties, stackups en netklassen vóór een printplaat waar impedantie of stroom ertoe doet.
agentee viewom de printplaat live te zien bijwerken terwijl jij of de agent hem bewerkt.