Bootloader optiboot

Опубликовано 20.07.2013 22:11:00


С каждым днем компания "Arduino" разрабатывает и производит все большее количество плат (на данный момент среда версии 1.0.5 поддерживает уже 27 вариаций различных плат), модернизации также постоянно подвергается и среда разработки Arduino IDE. 

Данные факты не являются открытием и хорошо известны широкому кругу пользователей, однако есть еще одно очень полезное направление, которое осталось прозябать в тени без должного пиара.

В 2010 году некий Рыцарь Петр (Peter Knight), написал новый бутлоадер, который стал занимать в 4 раза меньше места в сравнении со стандартным (всего 512 б флеш-памяти). Также увеличилась и скорость загрузки скетчей. Теперь она производится на скорости 115200.

Данный бутлоадер получился настолько удачным, что теперь он установлен по дефолту на платах Arduino UNO, Mega 2560.

 

 

Установка Optiboot

Прошивки "optiboot" можно без труда найти в папке среды Arduino (arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\bootloaders\optiboot). Однако здесь  лежит урезанная версия (прошивки только для ATmega8/ATmega168/ATmega328/ATmega328-Mini). Так же вы не сможете здесь найти и txt файлик, благодаря которому возможно само добавление плат в среду, но об этом чуть позже.

 

На данный момент модернизированные бутлоадеры "optiboot" доступны для следующих плат: 

Arduino Duemilanove or Nano w/ ATmega328

Arduino Diecimila, Duemilanove, Nano, NG w/ ATmega168

Arduino Mini

LilyPad Arduino w/ ATmega328

LilyPad Arduino w/ ATmega168

Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328

Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168

Arduino Mega1280

Arduino NG or older w/ ATmega8

Arduino NG or older w/ ATmega88

 

Приведем пример установки полной версии.

Для начала необходимо необходимо cкачать ZIP архив с файлами с сайта автора. На данный момент последняя версия 5.0а, датируемая 12.06.2012.

Поле распаковки, внутри папки, мы видим следующие файлы:

 

Копируем только папки в соответствующие директории в папку со средой Arduino (файл boards.txt не копируем!!!). После копирования, в папках можно увидеть новые HEX фалы (подсвечены зеленым) 


 

Теперь необходимо прописать необходимые вам палаты в файлик boards.txt

 

Вариант 1

Можно полностью скопировать файл boards.txt из папки оптибута и дописать его в файл boards.txt в папке Arduino. Этот вариант самый простой, однако можно столкнуться с проблемой отображения плат. Среда Arduino IDE не раскидывает платы на пару столбцов, а выдаёт их в одном. В связи с этим количество плат, которые вы сможете увидеть, будет прямо пропорционально разрешению вашего экрана.

Пример отображения на мониторе с разрешением 1920x1080

 

Пример отображения на ноутбуке с разрешением 1366x768

 

Вариант 2 

Вариант 1 прост, но подходит не всегда. Более целесообразно вырвать из файла boards.txt (optiboot), только те платы, которыми вы будете пользоваться.

Хочется отметить, что при открытии данного файла стандартным блокнотом вы увидите полную кашу.

 

При открытии же любым продвинутым редактором, вашему взору представится следующая картина.

 

Как мы видим, все расписано красиво и отсюда уже легко можно вырвать нужную вам плату

Для наглядности добавим в список плат только Atmega8 ([Optiboot] Arduino NG or older w/ ATmega8)

 

Текст вставки в boards.txt будет следующим:

##############################################################
atmega8o.name=[Optiboot] Arduino NG or older w/ ATmega8
atmega8o.upload.protocol=arduino
atmega8o.upload.maximum_size=7680
atmega8o.upload.speed=115200
atmega8o.bootloader.low_fuses=0xbf
atmega8o.bootloader.high_fuses=0xdc
atmega8o.bootloader.path=optiboot
atmega8o.bootloader.file=optiboot_atmega8.hex
atmega8o.bootloader.unlock_bits=0x3F
atmega8o.bootloader.lock_bits=0x0F
atmega8o.build.mcu=atmega8
atmega8o.build.f_cpu=16000000L
atmega8o.build.core=arduino:arduino
atmega8o.build.variant=arduino:standard

 

P.S. На наш взгляд то, что можно добавлять или убирать платы из меню среды, простым редактированием файлика "boards.txt" является несомненным плюсом. Лично мне не нравится огромный список плат, половину из которых я даже в руках не держал. Для себя я оставил только те платы, с которыми я часто имею дело.

После добавления меги8, открываем сервис и ищем в платах

Все, осталось только прошить бутлоадер. Если вы уже добавили нужную вам "optiboot" плату в среду Arduino IDE, то прошить "optiboot" бутлоадер можно автоматически прямо из среды, при наличии у вас программатора поддерживаемого IDEшкой. 


 

Статьи в подобной тематике:

•  Заливка bootloader с помощью программатора USBasp

•  Заливка bootloader с помощью программатора Громова


А как же комментарии?