Есть такая контора 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. С таким пультом очень удобно и быстро перемещаться по менюшкам, т.к. руки сами помнят куда нажимать.