По старинке, собирать всё вручную было долго и требовалась высокая квалификация. Ребёнок отказался делать проект в MPLAB IDE потому, что долго и требуются знания, опыт, чтение документации на микросхемы. Я предупредил, что в Ардуино, контроль над кодом может быть не полным.
Ребёнок, всё же, настоял на Ардуино - у него так получалось быстро и легко. Хорошо. Пусть учится принимать решения. Сделали в Ардуино.
Лично меня результат не удивляет. Удалось легко и быстро зайти довольно далеко. И с программированием справился четвероклассник. Теперь в тупике - не удаётся реализовать важный функционал.
Уже проверили вариант с вочдогом. Чтобы выполнить полноценный перезапуск МК (это решило бы проблему с инициализацией периферии МК и радиомодуля), решили, по нажатию кнопки, при пробуждении, включать сторожевой таймер на небольшой таймаут. Всё отлично! Сработало бы. Да забыли про загрузчик Ардуино!
Сейчас в планах поступить так: оставить проект в Ардуино. Уход в сон работает. Оставить вочдог при пробуждении. Просто после заливки проекта, перешивать конфигурационные биты на отключение старта загрузчика. По идее, это доставит неудобство при заливке обновлений, зато позволит оставить уже сделанные наработки без переработки проекта в другую IDE.