Перепрошивка бутлоадера в Arduino на optiboot

В это статье расскажу как перепрошить родной ардуиновский bootloader (загрузчик) на альтернативный — Optiboot. Мне это понадобилось для организации, в своих проектах на микроконтроллерах, сторожевого таймера (watchdog), так как в стандартном bootloader ватчдог не реализован и при попытке активировать в коде ватчдог наша ардуина уйдет в бесконечный ребут.

И так, для перепрошивки бутлоадера нам потребуется программа Arduino IDE, плата Arduino в которой будем перешивать бутлоадер и программатор, например USBasp.

Запускаем Arduino IDE и идем в меню ФайлНастройки

Arduino optiboot

 и вставляем  строку https://github.com/Optiboot/optiboot/releases/download/v6.2/package_optiboot_optiboot-additional_index.json

в поле — Дополнительные ссылки для менеджера плат. Ссылку на свежую версию optiboot берем на этой странице.

Arduino optiboot

Сохраняем настройки и идем в меню Инструменты  Плата — Менеджер плат:Arduino optiboot

находим в списке Optiboot и жмем кнопку установить.

Arduino optibootПосле чего в списке доступных плат появляется список плат поддерживаемый Optiboot.

Arduino optiboot

Для загрузки загручика выбираем необходимую плату/ микроконтроллер, частоту кварца и  порт к которому подключена наша плата Arduino.
Arduino optiboot

Выбираем из списка наш программатор, в данному случае USBasp и  жмем кнопку Записать загрузчик.

Arduino optiboot

Все, можно смело использовать watchdog в своих проектах.

Отправить ответ

4 Комментарий на "Перепрошивка бутлоадера в Arduino на optiboot"

avatar
Сортировать:   Новые вначале | Старые вначале | По голосам
mk900
Гость

Правильно ли я понял, что для загрузки optiboot в Arduino UNO программаторы не нужны? Имеет ли при этом значение, какой программатор выбран в меню? У Вас на скриншоте там выбран JTAGICE3 (ISP mode). Это правильно? Что-то у меня при таких установках ничего не получается, пишет
Ошибка при записи загрузчика.
avrdude: jtag3_open_common(): Did not find any device matching VID 0x03eb and PID list: 0x2110, 0x2140

avrdude done. Thank you.

Подскажите пожалуйста, что я делаю не так?
Спасибо!

wpDiscuz