Avrdude. Как скачать, забэкапить и залить заново прошивку
Поначалу я попытался пойти привычным способом 'влоб', достал программатор китайский (на заглавной фотке), подключился по ISP, и скачал прошивку. Попытался её залить назад... Льётся, но верификацию не проходит. Битых несколько часов рыл интернет, чтобы понять, как же можно нормально скачать прошивку с Меги по ISP. Толком ничего вразумительного не нашёл, но зато понял, что прошивку можно скачать и залить обратно и без программатора. Об этом опыте я и напишу ниже. А вот о том, как скачивать прошивку не с Arduino платы, да так чтобы она потом назад заливалась я напишу как-нибудь в следующий раз, когда у меня появится плата, которую можно безбоязненно пускать и в огонь и в воду.
Ладно, к делу. Для начала нам нужна утилита Avrdude, она входит в поставку Arduino IDE и в моей версии лежала в папке '%appdata%Arduino15packagesarduino oolsavrdude6.0.1-arduino2in'. Открываем папку, жмём на пустом месте SHIFT + правая кнопка мыши, а в меню выбираем 'Открыть окно команд'. Теперь приведу простую команду, которая проверяет, что контроллер читается.
avrdude.exe -p atmega2560 -c wiring -P COM5Если всё в порядке, то вы должны увидеть примерно такой текст (см. скриншот).Атрибуты команды:
-p atmega2560 - установка типа контроллера.
-c wiring - установка программатора. Это внутренний программатор в плате Arduino Mega 2560. Может я и не правильно выразился, но тот же атрибут использует IDE, когда заливает скомпилированный скетч.
-P COM5 - настройка порта, в который воткнут USB шнурок от Arduin'ы. Подглядеть можно из IDE.
Дальше - скачаем '.hex' файл с прошивкой из контроллера. Для этого воспользуемся командой:
avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -Uflash:r:'printer_firmware'.hex:iЕсли всё хорошо, ориентируемся на скриншот, прошивка сохраниться в файле 'printer_firmware.hex' рядом с avrdude.exe.Новые атрибуты команды:
-b115200 - скорость порта для программатора.
Uflash:r:'printer_firmware'.hex:i - указание считать прошивку в файл 'printer_firmware.hex'.
Считать считали, теперь её можно бэкапить, но вот как её восстановить потом? Да тоже ничего сложного, команда не будет сильно отличаться от чтения.
Проверяем, что всё хорошо - смотрим на скриншот.Новые атрибуты команды:avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -D -Uflash:w:'printer_firmware'.hex:i
-D - запрещает автоматическую очистку памяти микроконтроллера перед прошиванием.
-Uflash:w:'printer_firmware'.hex:i - указывает на то, что нужно записать в память данные из файла 'printer_firmware.hex'.
Дальше я подключил свою Arduino Mega 2560 назад к рампам и проверил, что прошивка работает корректно. Как видите эксперимент хоть и частично, но удался. Так что и я и вы теперь знаете, как можно забэкапить прошивку из ATmega2560, что установлена на Arduino Mega2560.
Еще больше интересных статей
Система автоматической смены столов Chitu Systems PlateCycler C1M для Bambu Lab A1 mini
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Печать под 45°: почему наклон вытаскивает из принтера то, что теряется при плоской укладке
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...





Комментарии и вопросы
Мегасушка обновлена до v2.Макс...
За всю свою жизнь я знаю две м...
Значение и наличие "войн" в ис...
При очередной печати модельки...
У меня порвался силиконовый но...
Есть два рабочих варианта реал...
Доброго дня! Имеется 3D принте...