Hier anfangen
Deine erste Platine
Von einem leeren Verzeichnis zu einer geprüften, gerouteten Zweischichtplatine und den Fertigungsdaten: Plattenspezifikation, KiCad-Bauteile, ein Schaltplan, Platzierung, Routing und Gerbers.
Diese Anleitung baut eine kleine Platine von Hand, einen Befehl nach dem anderen: einen Zwei-Pin-Stromheader, einen Widerstand, eine grüne LED und einen Entkopplungskondensator auf einer zwei-lagigen JLCPCB-Platine. Es ist dieselbe Abfolge, die ein Agent folgt, daher macht es sie einmal selbst zu erledigen, es viel leichter zu lesen, was dein Agent später tut.
Du brauchst agentee auf deinem PATH und die installierten KiCad-Bibliotheken. Siehe Installieren, wenn du beides nicht hast.
Ein Projekt starten
Ein Projekt ist ein Verzeichnis. Alles darunter mit einem bekannten Suffix wird geladen.
mkdir blinky && cd blinky
agentee new board blinky
agentee checknew board schreibt blinky.board.toml: eine 50 mal 30 mm Umrandung, der JLCPCB zwei-lagige 1,6 mm Lagenaufbau, ein Via-Typ und vier Netzklassen. Die Prüfung lädt sie und meldet nichts:
0 sims, 0 layouts, 0 schematics, 1 boards, 0 symbols, 0 footprints: 0 errors, 0 warningscheck beendet sich mit 0, wenn das Projekt sauber ist, mit 1, wenn es Fehler gibt, und mit 2, wenn eine Datei nicht lädt. Dieser Exit-Code ist es, der es einem Agenten oder CI erlaubt, darauf zu loopen.
Die Platine in die richtige Größe bringen
Vier Bauteile brauchen keine 50 mal 30 mm. Verkleinere die Umrandung:
agentee edit board blinky outline --size 30,18 --corner-radius 1mmagentee edit schreibt das TOML für dich um, behält Kommentare darin und führt die Prüfung auf der Datei aus, die es angefasst hat. Geh nicht viel kleiner auf einer so einfachen Platine: Jede Platine trägt die agentee vX.Y.Z-HASH-Version in ihrem Bestückungsdruck, und die Prüfung braucht einen klaren Streifen von etwa 23 mal 1,2 mm, um ihn hinein zu setzen. Auf einer 20-mm-Platine meldet sie einen watermark-Fehler und das Fertigerpaket wird abgelehnt.
Die Bauteile importieren
agentee liest die KiCad-Bibliotheken, statt eigene mitzuliefern. Durchsuche sie und importiere dann ein Symbol zusammen mit dem Footprint, den es verwenden soll:
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 checkJedes Wort der Suche muss mit Library:Name übereinstimmen. Importe landen als TOML in symbols/ und footprints/. Die Prüfung hat jetzt etwas zu sagen:
warning: ./footprints/R_0603_1608Metric.fp.toml: R_0603_1608Metric silk: silk lines under the fab minimum width 0.15mm: 2, thinnest 0.12mmKiCad zeichnet den Bestückungsdruck mit 0,12 mm, JLCPCB verlangt 0,15 mm. Öffne jeden Footprint und ändere width = 0.12 in 0.15 bei seinen Bestückungsdruck-Grafiken, oder lass deinen Agenten es tun. So sieht die Arbeit mit agentee normalerweise aus: Die Diagnose nennt die Datei, das Element und die Zahl, und die Korrektur ist eine einzige Änderung.
Schaltplan schreiben
agentee new schematic blinkyDer Starter ist nur ein Name. Füge darunter board = "blinky" hinzu, damit der Schaltplan weiß, welche Netzklassen existieren. Dann füge die Bauteile und Netze mit einem Satz von Befehlen hinzu, einer pro Zeile:
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
EOFEin Satz ist ein Laden und eine Prüfung am Ende, damit die halbfertigen Zustände dazwischen nie gemeldet werden. Pins sind REF.PIN, nach Nummer oder nach einem eindeutigen Pin-Namen: D1.A ist die Anode, und die Ausgabe bestätigt, auf welche Nummer sie aufgelöst wurde.
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 stellt jedes Bauteil rechts vom letzten auf, und die LED landete auf dem Widerstand. Verschiebe sie, und den Kondensator, während du dort bist, dann schau:
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
Du hast keine Leitung gezeichnet. Ein Schaltplan listet Netze als Pins, und agentee verlegt die Leitungen auf dem 1,27-mm-Raster, wenn es sie zeichnet. Jedes Netz hat eine class; ein Netz, das in Default bleibt, ist eine Warnung, weil die Klasse seine Leiterbahnbreite, den Abstand und die Vias auf der Platine bestimmt.
Bauteile platzieren
agentee new layout blinkyFüge board = "blinky" und schematic = "blinky" zum Starter hinzu. Die Prüfung schlägt jetzt fehl, was korrekt ist:
error: ./blinky.pcb.toml: blinky footprints: C1 is not placedPlatziere alles auf einmal:
agentee place blinkyplace stellt Connectoren an die Ränder, hält passive Bauteile in der Nähe dessen, womit sie verbunden sind, verfeinert das Ergebnis und verschiebt jede Referenzbezeichnung, die jetzt etwas überlappt. Es gibt einen JSON-Bericht aus und schreibt at und rotation in einen [[footprints]]-Eintrag pro Bauteil. Es ist ein schneller Start: Auf einer echten Platine schaust du dir das Ergebnis an, verschiebst das Wichtige von Hand, markierst es mit locked = true und platzierst den Rest erneut.
Verdrahten
Die Prüfung listet jetzt jede fehlende Verbindung auf:
error: ./blinky.pcb.toml: blinky net VIN: [unrouted] 2 unrouted: J1.1 | R1.1 | C1.1 are not joinedGib Masse eine Kupferfläche auf beiden Ebenen, verbinde die Masse-Pads damit und verdrahte die anderen zwei Netze:
agentee edit pcb blinky zone GND --layers F.Cu,B.Cu
agentee tie blinky
agentee route blinky --nets 'VIN,LED_A'
agentee checktie setzt einen kurzen Stumpf und ein Via neben jedes SMD-Pad eines Netzes, das eine Zone hat, so wie Masse- und Versorgungspads ihre Ebene erreichen sollten. route verdrahtet die benannten Netze auf einem Raster, hält die Breite und den Abstand jeder Klasse ein und hängt gewöhnliche [[tracks]] und [[vias]] an das Layout an. Du kannst sie danach bearbeiten.
0 sims, 1 layouts, 1 schematics, 1 boards, 4 symbols, 4 footprints: 0 errors, 0 warningsagentee render pcb:blinky -o pcb.png
Fertigpakete schreiben
agentee fab pcb:blinky -o fab/fab lehnt ab, solange das Layout Fehler hat. Ohne Fehler schreibt es die Gerbers für jede Ebene, die Bohrdatei, eine BOM und eine Bestückungsdatei in JLCPCBs Spalten, die IPC-D-356-Netzliste, Bestückungszeichnungen, Fertigungshinweise und blinky-gerbers.zip zum Hochladen.
Was du getan hast
Jeder Schritt war dieselbe Schleife: eine Bearbeitung, Prüfung, Blick. Nichts hielt Zustand außerhalb der Dateien, du kannst also jederzeit aufhören, das Verzeichnis in Git öffnen oder es einem Agenten mit dem Skill übergeben und ihn bitten, eine Diode mit umgekehrter Polarität hinzuzufügen.
Als Nächstes:
- Richte deinen Coding-Agenten ein, damit er all das aus einem Satz erledigen kann.
- Platinenspezifikationen, Lagenaufbau und Netzklassen vor einer Platine, bei der Impedanz oder Strom wichtig sind.
agentee view, um die Platine live zu beobachten, während du oder der Agent sie bearbeitest.