Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

Реанимация китайского клона Arduino Pro Micro

Есть такая контора SparkFun, которая выпускает совместимую плату Arduino Pro Micro 5V 16MHz и продаёт её за $19.95. Но китайцы не дремлют, т.к. спецификации открыты они быстренько наладили выпуск дешёвых клонов по цене 180 рублей за штуку. Но по какой-то неизвестной причине известной только им самим стали зашивать бутлоадеры от ардуино Леонардо, хотя для этой платы есть родной бутлоадер и он в открытом доступе. В результате плата прошивается несколько раз, а затем перестаёт отвечать на запросы.

Реанимация заключается в прошивке оригинального загрузчика со своими фьюзами.

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

Я же реанимировал свой старенький программатор AVR910 (BA9010 от МастерКит) прошивкой AVRDOPER avr910-hid-no_debug.hex (прошивал через клон Arduino UNO со скетчем ArduinoISP).

sudo avrdude -q -p m8 -c avrisp -P /dev/ttyUSB0 -b 19200 -e -U ~/avr910-hid-no_debug.hex

Применён программатор ArduinoISP (AVRISP)

Разберем ключи:

-q — уменьшает объем выводимой на экран отладочной информации

-C avrdude.conf — указывает расположение .conf файла (в нашем случае он в той же папке) — В НАШЕМ СЛУЧАЕ ОН ПО УМОЛЧАНИЮ

-p m8 — выбор типа микроконтроллера ATmega8 — В AVR910 ИСПОЛЬЗУЕТСЯ MEGA8

-c avrisp — выбор протокола

-P /dev/ttyUSB0 — выбор порта. Здесь нужно поставить свой порт

-b 19200 — выбор скорости порта

-e — Команда на предварительную очистку памяти программ

-U ~/avr910-hid-no_debug.hex — указывает на .hex файл с прошивкой («~/» — эти символы означают, что файл находится в корне домашнего каталога пользователя Xubuntu)

Теперь этот программатор определяется в системе (Windows и Linux) как USB-HID устройство и не нуждается в драйверах.

Чтобы получить загрузчик в оригинале нужно добавить платы SparkFun в Arduino IDE, инструкция тут https://github.com/sparkfun/Arduino_Boards

Нам нужен загрузчик https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex

В линуксе предварительно кладём в домашнюю папку файл-загрузчик Caterina-promicro16.hex и зашиваем его через avrdude командой

sudo avrdude -p m32u4 -P avrdoper -c stk500v2 -U flash:w:Caterina-promicro16.hex -U efuse:w:0xcb:m -U hfuse:w:0xd8:m -U lfuse:w:0xff:m

или через AVRDUDESS

где в доп. параметрах указываем -P avrdoper, фьюзы e 0xcb, h 0xd8, l 0xff.

Всё теперь платки рабочие и можно приступать к кодингу.

Одной из приятных особенностей данной платы является наличие «железного» USB в AtMEGA32U4 и в ардуино IDE есть примеры скетчей, в категории USB, как использовать ардуинку в качестве клавиатуры или мыши. Я таким образом модернизировал свой геймпад Genius MaxFire G-08X и сделал из него пульт-клавиатуру для управления медиацентром KODI. С таким пультом очень удобно и быстро перемещаться по менюшкам, т.к. руки сами помнят куда нажимать.