Все, кто плотно работал с MicroPython, знают, что отладка обычно сводится к расстановке команд вывода, запуску кода и повторению цикла заново. Команда ghi-electronics предлагает иной подход — полноценную пошаговую отладку прямо на кристалле в среде Visual Studio. Ничего особенного не требуется: достаточно поддерживаемого устройства с MicroPython и того же USB-кабеля, которым вы прошиваете плату.
Есть и обратная сторона: нужно либо собрать собственный образ MicroPython и прошить его, либо воспользоваться готовым из комплекта. Поддерживаются несколько версий Raspberry Pi Pico и чипы ESP32. Впрочем, без нюансов не обошлось — одна «нестандартная» плата Pico прошивку принимать отказалась.
При ближайшем рассмотрении выяснилось, что необычный экземпляр (RP2040 GEEK), вероятно, всё-таки принял прошивку — просто выдавал ошибку на этапе настройки. Обычная плата Pico завелась без проблем и работала как положено. Известна и похожая проблема со связкой Linux и ESP32-S3, так что подобные сбои стоит держать в уме.
Собрать образ самостоятельно тоже можно, но это уже заметно больше возни: понадобится развернуть тулчейн и собрать все зависимости. Для простых программ полноценный отладчик и вовсе может не пригодиться, однако возможность заглянуть в переменные и наглядно проследить поток выполнения дорогого стоит.
Часть ограничений уже описана на GitHub. Например, нельзя перехватить исключения, которые код уже обрабатывает сам, — хотя точку останова, судя по всему, можно поставить прямо в обработчике. Точки останова также останавливают все потоки. Есть и другие мелкие оговорки, но ничего критичного среди них нет.
Тем не менее сам факт появления такого инструмента радует: аппаратная отладка на кристалле заметно ускоряет поиск ошибок в микроконтроллерных проектах и снижает зависимость от «отладки печатью». Для тех, кто пишет на MicroPython что-то сложнее пары скриптов, это ощутимый шаг вперёд.
Во «взрослом» Python часть средств отладки встроена в сам язык; в MicroPython есть некоторые из тех же механизмов, но построить на их основе полноценный отладчик — задача совсем не тривиальная. Как всё это выглядит в работе, показано на видео ниже.













