Начните здесь
Ваша первая плата
От пустой папки до проверенной и разведённой двухслойной платы и пакета файлов для производства: спецификация платы, компоненты KiCad, схема, расстановка, разводка и Gerber.
В этом руководстве небольшая плата собирается вручную, команда за командой: двухвыводной разъём питания, резистор, зелёный светодиод и конденсатор развязки на двухслойной плате JLCPCB. Это та же последовательность, которую выполняет агент, поэтому, выполнив её один раз, вы значительно легче будете понимать, что делает ваш агент позже.
Вам нужен agentee в PATH и установленные библиотеки KiCad. Если у вас нет ни того, ни другого, см. Установка.
Создайте проект
Проект, это каталог. Всё под ним с известным расширением загружается.
mkdir blinky && cd blinky
agentee new board blinky
agentee checknew board записывает blinky.board.toml: контур 50 на 30 мм, двухслойный стек JLCPCB 1,6 мм, один тип переходного отверстия и четыре класса цепей. Проверка загружает его и не сообщает ничего:
0 sims, 0 layouts, 0 schematics, 1 boards, 0 symbols, 0 footprints: 0 errors, 0 warningscheck завершается с кодом 0, если проект чист, 1, если есть ошибки, и 2, если файл не загружается. Этот код завершения позволяет агенту или CI зациклиться на нём.
Сделайте плату нужного размера
Четым деталям не нужно 50 на 30 мм. Уменьшите контур:
agentee edit board blinky outline --size 30,18 --corner-radius 1mmagentee edit переписывает TOML за вас, сохраняет комментарии и выполняет проверку на изменённом файле. Не уменьшайте слишком сильно на такой простой плате: каждая плата несёт версию agentee vX.Y.Z-HASH в своей шелкографии, и проверке нужна чистая полоса примерно 23 на 1,2 мм для её размещения. На плате 20 мм она сообщает ошибку watermark, и пакет для производства отклоняется.
Импортируйте детали
agentee читает библиотеки KiCad, а не поставляется со своими. Найдите нужное, затем импортируйте УГО вместе с посадочным местом, которое оно должно использовать:
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Каждое слово поиска должно совпадать с Library:Name. Импортированные файлы попадают в symbols/ и footprints/ в формате TOML. Теперь проверка найдёт, что сказать:
warning: ./footprints/R_0603_1608Metric.fp.toml: R_0603_1608Metric silk: silk lines under the fab minimum width 0.15mm: 2, thinnest 0.12mmKiCad рисует шелкографию толщиной 0,12 мм, а JLCPCB требует 0,15 мм. Откройте каждое посадочное место и измените width = 0.12 на 0.15 в его элементах шелкографии, или поручите это агенту. Это типичный формат работы с agentee: диагностика указывает файл, элемент и значение, а исправление требует одного изменения.
Создайте схему
agentee new schematic blinkyСтартовый файл содержит только имя. Добавьте под ним board = "blinky", чтобы схема знала, какие классы цепей существуют. Затем добавьте компоненты и цепи одной серией команд, по одной на строку:
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Серия означает одну загрузку и одну проверку в конце, поэтому промежуточные незавершённые состояния не помечаются. Пины указываются как REF.PIN, по номеру или по уникальному имени пина: D1.A это анод, а вывод подтверждает, к какому номеру он был приведён.
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 размещает каждый компонент справа от предыдущего, и светодиод наехал на резистор. Переместите его, а заодно и конденсатор, затем посмотрите:
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
Вы не рисовали проводники. Схема перечисляет цепи как пины, а agentee прокладывает проводники по сетке 1,27 мм при отрисовке. У каждой цепи есть class; цепь, оставшаяся в Default, вызывает предупреждение, потому что класс определяет ширину проводника, зазор и переходные отверстия на плате.
Разместите компоненты
agentee new layout blinkyДобавьте board = "blinky" и schematic = "blinky" в стартовый файл. Теперь проверка не проходит, и это правильно:
error: ./blinky.pcb.toml: blinky footprints: C1 is not placedРазместите всё сразу:
agentee place blinkyplace ставит разъёмы на края, держит пассивные компоненты рядом с тем, к чему они подключены, уточняет результат и перемещает метки обозначений, которые теперь перекрывают что-либо. Команда выводит отчёт в JSON и записывает at и rotation в запись [[footprints]] для каждого компонента. Это быстрый старт: на реальной плате вы смотрите результат, вручную перемещаете важное, отмечаете locked = true и размещаете остальное заново.
Проложите проводники
Теперь проверка перечисляет все отсутствующие соединения:
error: ./blinky.pcb.toml: blinky net VIN: [unrouted] 2 unrouted: J1.1 | R1.1 | C1.1 are not joinedСоздайте полигон земли на обоих слоях, соедините контактные площадки земли с ним и проложите две остальные цепи:
agentee edit pcb blinky zone GND --layers F.Cu,B.Cu
agentee tie blinky
agentee route blinky --nets 'VIN,LED_A'
agentee checktie добавляет короткий отвод и переходное отверстие рядом с каждой SMD-плодкой цепи, у которой есть полигон, так должны соединяться площадки земли и питания с их плоскостью. route прокладывает указанные цепи по сетке, соблюдая ширину и зазор каждого класса, и добавляет обычные записи [[tracks]] и [[vias]] в топологию платы. Вы можете отредактировать их позже.
0 sims, 1 layouts, 1 schematics, 1 boards, 4 symbols, 4 footprints: 0 errors, 0 warningsagentee render pcb:blinky -o pcb.png
Создайте пакет для производства
agentee fab pcb:blinky -o fab/fab отказывается работать, пока в топологии платы есть ошибки. Если их нет, команда записывает Gerber для каждого слоя, файл сверловки, BOM и файл размещения в столбцах JLCPCB, сетевой список IPC-D-356, чертежи сборки, заметки для производства и blinky-gerbers.zip для загрузки.
Что вы сделали
Каждый шаг был одним и тем же циклом: одно изменение, проверка, просмотр. Ничего не хранилось вне файлов, поэтому можно остановиться в любой момент, открыть каталог в git или передать его агенту с skill и попросить добавить диод для обратной полярности.
Далее:
- Настройте вашего кодинг-агента, чтобы он мог сделать всё это по одному предложению.
- Спецификации плат, стеки слоёв и классы цепей перед платой, где важны импеданс или ток.
agentee view, чтобы наблюдать обновление платы в реальном времени, пока вы или агент её редактируете.