agentee

Empieza aquí

Tu primera placa

De un directorio vacío a una placa de dos capas verificada y ruteada, y un paquete de fabricación: especificación de placa, componentes de KiCad, un esquemático, colocación, ruteo y Gerbers.

Esta guía construye una placa pequeña a mano, un comando a la vez: una cabecera de alimentación de dos pines, una resistencia, un LED verde y un condensador de desacoplamiento en una placa JLCPCB de dos capas. Es la misma secuencia que sigue un agente, así que hacerla una vez tú mismo hace mucho más fácil leer lo que tu agente hace después.

Necesitas agentee en tu PATH y las bibliotecas de KiCad instaladas. Ver Instalar si no tienes ninguna de las dos.

Iniciar un proyecto

Un proyecto es un directorio. Todo lo que esté debajo con un sufijo conocido se carga.

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

new board escribe blinky.board.toml: un contorno de 50 por 30 mm, el apilamiento de dos capas de 1,6 mm de JLCPCB, un tipo de vía y cuatro clases de red. La comprobación lo carga e informa de nada:

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

check termina con 0 cuando el proyecto está limpio, 1 cuando hay errores y 2 cuando un archivo no se carga. Ese código de salida es lo que permite a un agente, o a CI, iterar sobre él.

Hacer la placa del tamaño correcto

Cuatro piezas no necesitan 50 por 30 mm. Reduce el contorno:

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

agentee edit reescribe el TOML por ti, conserva cualquier comentario que tenga, y ejecuta la comprobación sobre el archivo que tocó. No vayas mucho más pequeño en una placa tan simple: cada placa lleva la versión agentee vX.Y.Z-HASH en su serigrafía, y la comprobación necesita una franja despejada de unos 23 por 1,2 mm para ponerla. En una placa de 20 mm informa de un error de watermark y el paquete de fabricación se rechaza.

Importar las piezas

agentee lee las bibliotecas de KiCad en lugar de incluir las suyas. Búscalas y luego importa un símbolo junto con la huella que debe usar:

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

Cada palabra de la búsqueda debe coincidir con Library:Name. Las importaciones llegan a symbols/ y footprints/ como TOML. Ahora la verificación tiene algo que decir:

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 dibuja la serigrafía a 0,12 mm y JLCPCB pide 0,15 mm. Abre cada huella y cambia width = 0.12 a 0.15 en sus gráficos de serigrafía, o deja que tu agente lo haga. Esta es la forma normal de trabajo con agentee: el diagnóstico indica el archivo, el elemento y el número, y la corrección es una sola edición.

Escribe el esquemático

agentee new schematic blinky

El punto de partida es solo un nombre. Añade board = "blinky" debajo, para que el esquemático sepa qué clases de red existen. Luego añade las piezas y las redes con un lote de comandos, uno por línea:

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 lote es una carga y una verificación al final, por lo que los estados a medio terminar intermedios nunca se marcan. Los pines son REF.PIN, por número o por un nombre de pin único: D1.A es el ánodo, y la salida confirma a qué número se resolvió.

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 coloca cada pieza a la derecha de la anterior, y el LED cayó sobre la resistencia. Muévelo, y también el condensador mientras estás ahí, y luego mira:

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

El esquemático de blinky tal como lo renderiza agentee

No dibujaste un cable. Un esquemático lista las redes como pines, y agentee enruta los cables en la cuadrícula de 1,27 mm cuando los dibuja. Cada red tiene una class; una red que queda en Default es una advertencia, porque la clase decide su ancho de pista, despeje y vías en la placa.

Coloca las piezas

agentee new layout blinky

Añade board = "blinky" y schematic = "blinky" al inicial. Ahora la verificación falla, y eso es correcto:

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

Coloca todo de una vez:

agentee place blinky

place pone los conectores en los bordes, mantiene las pasivas cerca de lo que conectan, refina el resultado y mueve cualquier etiqueta de referencia que ahora se solape con algo. Imprime un informe en JSON y escribe at y rotation en una entrada [[footprints]] por pieza. Es un arranque rápido: en una placa real miras el resultado, mueves a mano lo importante, lo marcas con locked = true y vuelves a colocar el resto.

Enrútalo

Ahora la verificación enumera cada conexión que falta:

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

Dale a tierra una zona de cobre en ambas capas, une los pads de tierra a ella y enruta las otras dos redes:

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

tie pone un tramo corto y una vía junto a cada pad SMD de una red que tenga una zona, que es cómo los pads de masa y alimentación deberían llegar a su plano. route enrutear las redes nombradas en una cuadrícula, manteniendo el ancho y el despeje de cada clase, y añade [[tracks]] y [[vias]] ordinarios al layout. Son tuyos para editarlos después.

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

El layout enrutado de blinky

Escribe el paquete de fabricación

agentee fab pcb:blinky -o fab/

fab se niega mientras el layout tenga errores. Si no los hay, escribe los Gerbers de cada capa, el archivo de taladros, una BOM y un archivo de colocación con las columnas de JLCPCB, la lista de redes IPC-D-356, los dibujos de montaje, las notas para el fabricante y blinky-gerbers.zip para subir.

Lo que hiciste

Cada paso seguía el mismo bucle: una edición, check, ver. Nada guardaba estado fuera de los archivos, así que puedes parar en cualquier punto, abrir el directorio en git o pasárselo a un agente con la skill y pedirle que añada un diodo de polaridad inversa.

Siguiente:

Mejorar esta guía · Markdown para agentes