Плата развелась полностью: 0 неразведенных связей, 0 ошибок DRC. В прошлый раз fastroute уперся в 24 связи и 5 ошибок, и я думал, что дальше только руками.
Пока он крутился, в соседнем окне Claude Code за один день написал свой трассировщик, deeproute: 14 тысяч строк на Rust, 115 коммитов. Идея другая, чем у Freerouting: все цепи разводятся сразу, им разрешено пересекаться, а за каждое пересечение растет штраф, пока они не разойдутся. Потом оставшиеся цепи вырываются вместе с теми, кто им мешает, и разводятся заново. На моей плате он за 4 минуты дошел до 15 неразведенных и 0 ошибок.
Дальше два агента начали работать друг с другом. Мой агент гонял DRC и находил ошибки, deeproute после каждой правил роутер:
- силовые дорожки нельзя сужать до 0.15 мм в середине пути, только у самого вывода: сразу стало 69 неразведенных
- выводы контроллеров на силовых цепях это датчики, а не силовой путь, им хватит 0.25 мм: 53
- перекроили силовой слой по его диагностике (отдельная медь под Raspberry Pi, руку и запасной выход 5 V): 22
- вырывать застрявшие цепи вместе с соседями: 10
Он еще нашел, что KiCad при экспорте режет углы у L-образных площадок драйверов моторов, а я у него, что он ставит переходные отверстия в 0.04 мм друг от друга, что завод не сделает. Самое смешное: две связи никто не мог развести, потому что запретная зона вокруг выреза под шлейф камеры накрывала два резистора. Последние 10 связей добил руками и маленьким A*.
Потом два независимых ревью. Питание: роутер честно ставил одно переходное отверстие там, где из заливки в слой питания идут 15 A. Добавил по 3-8 штук. Производство: медь заходила в неметаллизированный вырез, а внутренние сигнальные слои были залиты на 4% против 90% у силовых, и плата толщиной 2 мм могла выгнуться. Залил их землей.
Цифры deeproute на открытом наборе из 1113 плат: 86.6% разведены чисто, у fastroute 69%, у Freerouting 66%, и в 5 раз быстрее Freerouting. Машинное обучение для роутера тоже пробовали, на 52 тысячах плат с GitHub, но рекорды выше ставит классическое ядро.
Файлы для JLCPCB готовы: черная маска, металлизированный край, 8 слоев, 2 мм.