Backup прошивки платы Melzi V2.05
Поискав в Internet, я нашел две статьи, касающиеся этого вопроса:
https://3dtoday.ru/blogs/craveg/avrdude-how-to-download-zabekapit-and-pour-again-the-firmware/,
https://3dtoday.ru/blogs/craveg/eeprom-avrdude-again-about-working-with-controllers/.
Автор отмечает, что с обычным китайским программатором у него не получилось, но я решил все-таки попробовать именно с ним, ибо цена устройства менее 1.5 USD. Был закуплен программатор USBasp:
https://ru.aliexpress.com/item/1pcs-New-USBASP-USBISP-AVR-Programmer-USB-ISP-USB-ASP-ATMEGA8-ATMEGA128-Support-Win7-64K/32582933115.html и переходник к нему, поскольку на Melzi разъем ISCP 6pin, а у программатора 10pin: https://www.chipdip.ru/product/avr-icspДля программатора напечатал корпус: https://www.thingiverse.com/thing:3096085Пришлось еще дырку в корпусе просверлить, чтобы светодиоды было видно.Драйвер скачал отсюда:https://www.myrobot.ru/downloads/driver-usbasp-v-2.0-usb-isp-windows-7-8-10-xp.php.
С установкой проблем нет, поскольку драйвер подписан. Просто запустил InstallDriver.exe и готово.Подключил программатор к компьютеру и тут меня поджидала «засада»… При попытках работать с программатором через программу avrdude . exe получил вот такое сообщение:
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
Нужно обновлять прошивку. Но для обновления прошивки нужен другой программатор! Ёпрст…!
Поиск в Internet показал, что для программирования можно использовать платы Arduino. Посему у сына на время был реквизирован набор Arduino UNO.
Обновление прошивки я делал по этой методике: https://xdomus.ru/diy/usbasp-upgrade/ .
Прошивку (файл usbasp.2011-05-28.tar.gz ) скачал с сайта разработчика:https://fischl.de/usbasp/ . Испытал «легкое» удивление, что в 2019 г. продается программатор с прошивкой ранее 2011г.
Для загрузки прошивки требуется соединить плату Arduino с программатором:
Поначалу я сделал это проводками из набора, но перфекционизм, привитый руководителем радиокружка в далеком 6 классе средней школы («Сделаешь красиво – будет работать!») победил, и я из подручных средств смастерил кабель. Специально сделал его для подключения именно к переходнику программатора USBasp, поскольку плата Melzi имеет разъем ISCP для подключения программатора тоже на 6 pin. Это позволило в дальнейшем считать прошивку обеими программаторами и сравнить результаты. Получилось вот так:Подготовил программатор на Arduino UNO как описано по ссылке выше, файл прошивки скопировал в папку с программой avrdude . exe (она входит в состав Arduino IDE). У меня в Windows 10 это папка c:Program Files (x86)Arduinohardware oolsavrin . Запустил командную строку и выполнил:avrdude -C ../etc/avrdude.conf -c avrisp -P COM 4 -b 19200 -p m8 –v COM 4 – это порт к которому подключена плата Arduino UNO (смотреть в диспетчере устройств Windows ).
Далее, собственно прошивка:
avrdude –C ../etc/avrdude.conf –c avrisp –P COM4 –b 19200 –p m8 –U flash:w:usbasp.atmega8.2011-05-28.hex:i
После выполнения этой команды сообщений об ошибках не получил.
Ну, а затем… считал записанную прошивку:
avrdude – C ../ etc / avrdude . conf – c avrisp – P COM 4 – b 19200 – p m 8 – U flash : r : usbasp _ reading . hex : i
Прошивка записалась в файл usbasp _ reading . hex в папку:
c:Users...AppDataLocalVirtualStoreProgram Files (x86)Arduinohardware oolsavrin
И тут я слегка призадумался, поскольку исходный файл usbasp . atmega 8.2011-05-28. hex и файл, считанный - usbasp _ reading . hex весьма отличались по размеру. Поразмыслив, я скачал конвертер hex-файлов: http://advantex.ru/joom/content/view/78/69. и конвертировал оба hex-файла в bin-формат. Bin-файлы оказались одинаковыми не только по размеру, но и по содержимому (сравнивал с помощью T otal Commander). Это вселило некоторую уверенность в правильности выбранного пути.
Дальше - уже легче. На плате Melzi переставил перемычку в режим питания от USB (нижнее на рисунке положение):Подключил программатор USBasp к плате Melzi через переходник и стандартный кабель на 6 pin. При подключении ориентировался на рисунок:Схему подключения не привожу. Там все просто одноименные контакты переходника USBasp и Melzi соединяются между собой.
Дисплей на всякий случай отключил.
Далее (аналогично прошивке программатора) запустил командную строку и выполнил команды:
Проверка :avrdude -C ../etc/avrdude.conf -c usbasp -P usb -b 19200 -p m1284p –v
Считывание прошивки :
avrdude -C ../etc/avrdude.conf -c usbasp -P usb -b 19200 -p m1284p -U flash:r:printer_firmware.hex:i
Считывание EEPROM
avrdude - C ../ etc / avrdude . conf - c usbasp - P usb - b 19200 - p m 1284 p -Ueeprom : r : printer _ eeprom . eep : i
Никаких сообщений об ошибках не получил.То же самое для программатора на основе Arduino UNO:
Проверка: avrdude - C ../ etc / avrdude . conf - c avrisp - P COM 4 - b 19200 - p m 1284 p – v
Считывание прошивки:
avrdude - C ../ etc / avrdude . conf - c avrisp - P COM 4 - b 19200 - p m 1284 p - U flash : r : printer _ firmware _2. hex : i
Считывание EEPROM
avrdude - C ../ etc / avrdude . conf - c avrisp - P COM 4 - b 19200 - p m 1284 p -Ueeprom : r : printer _ eeprom _2 . eep : i
Полученные обеими программаторами соответствующие файлы сравнил – они оказались идентичными. Ну, и наконец, через Arduino IDE залил прошивку Marlin (ee в свое время прислал продавец). Родная прошивка - Repetier. Должен заметить, что подключить Melzi к компьютеру и соединиться с Arduino IDE еще та «песня»…
Переставил перемычку на плате, подключил дисплей и включил принтер. Убедился, что прошивка Marlin залилась. Выключил принтер, вернул перемычку в режим питания от USB, подключил программатор USBasp и залил сохраненные прошивку и EEPROM:
avrdude -C ../etc/avrdude.conf -c usbasp -P usb -b 19200 -p m1284p -U flash:w:printer_firmware_2.hex:i
avrdude -C ../etc/avrdude.conf -c usbasp -P usb -b 19200 -p m1284p -Ueeprom:w:printer_eeprom_2.eep:i
На всякий случай привожу аналогичные команды для программатора на базе Arduino UNO:
avrdude - C ../ etc / avrdude . conf - c avrisp - P COM 4 - b 19200 - p m 1284 p - U flash : w : printer _ firmware . hex : i
avrdude - C ../ etc / avrdude . conf - c avrisp - P COM 4 - b 19200 - p m 1284 p -Ueeprom : w : printer _ eeprom . eep : i
Снова вернул перемычку на плате в исходное положение, включил принтер и напечатал тестовый кубик. Все получилось!
Еще больше интересных статей
Про мощность керамического нагревателя Qidi Q1 pro
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Некоторое время назад я менял керамический нагреватель на...
Про натяжку ремней Qidi Q1 Pro (для начинающих Qidiводов)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
G-CODE по-русски для 3D печати (Мини-справочник)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Эстетически может и красиво у....
4) кажется автор вопроса решил...
Результат похож на правду, есл...
Добрый вечер!Подскажите, из-за...
Что с поддержками в OrcaSlicer...
Подскажите как убрать поддержк...
Почему при печати первого слоя...