Работая с китайскими Arduino - контроллерами, периодически стал наталкиваться на образцы, не желающие переходить в режим DFU для последующей прошивки через Flip. Исправить данную неприятность оказалось не так уж и сложно.
Нам понадобится программатор USBAsp или любой другой поддерживаемый AVRDUDE, сам AVRDUDE и последняя версия Arduino IDE с сайта arduino.cc.
Распаковываем AVRDUDE куда-нибудь, например на рабочий стол. Устанавливаем стандартный драйвер для USBAsp.
Подключаем USBAsp к arduino, к управляющему контроллеру:
Далее в зависимости от того какая плата arduino у вас не работает ищем её бутлоадер в папке C:\Program Files (x86)\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2 (у меня не работала UNO R3, я взял файл Genuino-COMBINED-dfu-usbserial-atmega16u2-Uno-R3.hex) и закидываем его в папку с AVRDUDE.
Заходим в командную строку пуск -> выполнить -> cmd, переходим в папку с AVRDUDE
cd desktop\avrdude
И пробуем пообщаться с нашей mega16u2:
avrdude -c usbasp -v -p m16u2
где параметры:
-с - программатор
-v - вывод информации
-p - микроконтроллер
Если микроконтроллер ответил, то считаем из него "китайский hex"(так на всякий случай)
avrdude -c usbasp -p m16u2 -U flash:r:china.hex:i
И наконец, запишем новый Genuino-COMBINED-dfu-usbserial-atmega16u2-Uno-R3.hex, после которого будет работать DFU
avrdude -c usbasp -p m16u2 -U flash:w:Genuino-COMBINED-dfu-usbserial-atmega16u2-Uno-R3.hex
Всё! Отключаем программатор, подключаем Arduino к USB, определяется genuino UNO, замыкаем пинцетом reset на землю, определяется AtMega 16U2.
Скачать AVRDUDE:
Скачать Arduino IDE: arduino.cc