Платы Digispark на базе ATtiny85 как правило продаются с загрузчиком, который к моменту продажи зачастую устаревает. И большинство плат (не важно официальные или клоны) работают на старом загрузчике Micronucleus версии v1.6. Однако сама плата имеет встроенную возможность обновления имеющегося загрузчика, что дает нам возможность иметь на борту последнюю версию. Само наличие последней версии, позволяет минимизировать различные ошибки и что самое важное, иметь немного больше места под наши скетчи.
Январь 2024: Внесены обновления и уточнения для работы под Windows 7, 10, 11
Установка драйверов
Для обновления загрузчика платы необходимо установить драйвер libusb0.
Под Windows это можно сделать, используя программу Zadig.
Убеждаемся что драйвер для установки выбран именно libusb. Смотрим список подключенных устройств, запоминаем их расположение и названия. Дальше необходима ловкость и скорость… Устанавливаем в гнездо USB плату Digispark, после того как услышите звук подключения нового устройства, в программе Zadig открываем список устройств, находим «неизвестное устройство», которое появилось, выбираем его и быстро жмем на кнопку «Install Driver».
Если все прошло хорошо, вы увидите сообщение о том, что драйвера успешно установлены, после чего отключаем устройство. Бывают моменты, когда устройство может пропасть из списка, через не очень продолжительное время, в этом случае попробуйте снова его отключить и подключить повторно.
Подготовка инструментария
Скачиваем архив с последней версией загрузчика Micronucleus c GitHub.
Распаковываем архив, например в папку E:\micronucleus-master
Теперь для продолжения необходимо скачать само обновление загрузчика. В имеющейся у меня плате Digispark залит загрузчик версии 1.6, скачиваем c GitHub самое последнее обновление загрузчика micronucleus-1.11-upgrade.hex (v1.11)
Сохраняем скачанное обновление в папку E:\micronucleus-master\commandline
Так же необходимо перейти в папку E:\micronucleus-master\commandline\builds\x86_64-mingw32 и скопировать ее содержимое (libusb0.dll и Micronucleus.exe) в папку E:\micronucleus-master\commandline.
Или скачиваем Micronucleus.exe (micronucleus-cli-master-882e7b4a-x86_64-MINGW64_NT-10.0-17763.zip) и распаковываем содержимое архива в папку E:\micronucleus-master\commandline
Приступаем к обновлению
Открываем командную строку CMD.exe
Переключаемся на диск где у нас распакованы необходимые файлы. Нам необходима папка с файлом micronucleus.exe В моем случае это диск E:\ и папка по адресу \micronucleus-master\commandline\, где и находится нужный файл. У вас может быть другой диск и другая папка, тогда просто меняете свои параметры с учетом этого. Чем ближе к корню вы положите папку, тем проще с ней работать.
Чтобы перейти на другой диск и попасть в нужную директорию, вводим в командной строке следующую команду:
для Windows 7
cd /d E:\micronucleus-master\commandline
для Windows 10 — 11
cd E:\micronucleus-master\commandline
Обязательно убеждаемся в том, что устройство отключено от компьютера
Можно обновляться. Вводим команду
micronucleus --run micronucleus-1.11-upgrade.hex
Если при выполнении ошибка, то можно попробовать:
.\micronucleus.exe --run micronucleus-1.11-upgrade.hex
После появления текста приглашения, подключаем устройство в порт USB
При правильном подключении, программа обнаружит устройство…
… и начнется очистка текущего загрузчика и установка нового
После успешного завершения обновления, должен появиться следующий текст
После чего, можно вынимать устройство из порта USB.
Готово! Наше устройство полностью обновлено и готово к дальнейшей работе.
Проверить текущую версию можно, повторив команды и действия. В ходе успешного обновления мы увидим текущую версию.
После обновления загрузчика, все ранее залитые вами скетчи с платы полностью удаляются. При необходимости, через IDE Arduino заливайте скетчи повторно.
В папке с скачанными инструментами есть прошивки версии 2.2 и 2.6, но в настоящее время они не подходят для установки в качестве обновления, по крайней мере у меня после их установки палаты не вышли в рабочий режим.
Установка драйверов для Digispark под Windows
Чтобы работать с платами Digispark под Windows через IDE Arduino, необходимо скачать и установить драйвера Digispark для Windows. Вам нужно будет распаковать скачанный архив и запустить файл под названием Install Drivers.exe.
Инструкция работы с Digispark в IDE Arduino: http://digistump.com/wiki/ [eng]
Январь 2024: Внесены обновления и уточнения для работы под Windows 7, 10, 11
Здравствуйте, провёл все операции, как Вы предложили и теперь контроллер стал куском железа, по новой обновляться не хочет, Windows его определяет как неизвестное устройство. До этого он на 1-2 секунды определял как micronucleus только потом становился как неизвестное устройство. Что теперь делать? не хотелось бы просто выкидывать.
Проблему только могу предположить или не тот загрузчик был залит, или в процессе произошел сбой, теперь вероятнее всего висит в состоянии (Сбой дескриптора устройства), а без загрузчика плата просто кусок текстолита. Но в общем то шанс есть, все упирается в нервы и время. Нужно шить загрузчик через программатор, наличие которого и является проблемой.
На вскидку вот несколько вариантов и оба замороченные:
https://github.com/J-Rios/Digispark_Unbricking?tab=readme-ov-file
https://github.com/micronucleus/micronucleus/issues/194
https://arduino.stackexchange.com/questions/44702/esp8266-as-isp-program-for-atmega16/44704#44704
Увы но такой нюанс встречается у Digispark и случается даже у оригинальной модели (в продаже чаще клоны). За время использования плат, через руки наверное шт 20 прошло и купив на днях парочку, первая же оказалась с такой проблемой, прямо из упаковки не стала определяться (вторая нормальная). Буду пробовать оживить по второму варианту, а потом уже обновлять по инструкции.
Здравствуйте. Сегодня получил программатор прошил программу через ISP программа работает, через USB так и не определяется, не подскажете возможно ли залить загрузчик через программатор, если возможно то как это сделать.
спасибо за утешение!
Шить по ISP пробовал через Arduino NANO, не получается выдаёт ошибку. Какой требуется программатор, программатор AVR USBISP USBASP ATMEGA128 такой подойдёт? Он работает по ISP. Возможно ли прошить через Arduino IDE, или нужно так же через cmd.
Ни разу не шил через программатор именно Digispark, не могу утверждать точно, но по теории она через Arduino IDE не шьется, в виду своих особенности работы, даже скетч мы льем ведь подключив в интервале минуты после отправки скетча. Так же все же через консоль. Можно попробовать по варианту 1 из ссылок выше. Там автор через avrdude восстанавливает. Я сейчас сам восстанавливаю ESP8266 так как на них были залиты загрузчики специфичные и чтобы их убрать нужно танцы с бубном, а далее через подключение к ножкам, вместо программатора так же через консоль буду пробовать.
Спасибо.
У меня всё получилось с заливкой скетча на 88, по поводу ESP там стоит CH340, проблем не должно быть.
Если не сложно поделитесь схемой подключения и общим алгоритмом восстановления, шаги, действия и прочее, чтобы можно было добавить в пост, для тех кто столкнется с такой же проблемой.
Здравствуйте, схемы никакой нет, заливал через программатор AVR USBISP USBASP ATMEGA128 по ISP, загрузчик встроенный в Arduino IDE, но получилось только залить ATtiniy 48/88 (nobootloader), MH ET t88 не даёт записать, выдаёт ошибка записи загрузчика. Может как то можно это сделать но я не знаю. пользовательскую программу я то же заливал через программатор, по USB, после моих ухищрений вообще остаётся не опознанное устройство и драйверов нет.
Приветствую!
Обновил Micronucleus до версии 1.11
Стало: «Available space for user applications: 6330 bytes»
Однако, при загрузке скетча Arduino IDE по-прежнему пишет: «Всего доступно 6012 байт». В чем может быть причина?
Использую Digispark (Default 16.5mhz) и Arduino IDE 2.0.3
Причин может быть много, лучше спросить у авторов прошивки. https://github.com/micronucleus/micronucleus/issues