© 2023 DiyTronic

Заливаем свежий Marlin в Prusa I4

По ходу экспериментов с новой Prusa I4 решил разобраться с прошивками для неё. Дело в том, что имею желание подключить к ней датчик уровня и соответственно рано или поздно лезть в прошивку пришлось-бы. К тому-же есть информация, что родная прошивка сильно устаревшая.

Собственно сам процесс прошивки довольно нехитрый. Электроника современных 3D принтеров основана на Arduino, соответственно и прошивка производится через неё. Отсюда прошивка производится точно так-же как и любая ардуинская плата. Внизу статьи есть ссылки с подробным описанием процесса. Я же на нём останавливаться не буду и расскажу о нюансах именно Prusa I4.

Сразу уточню, что прошивать буду последнюю на сегодня версию Marlin, а именно 1.1.1.

В общем-то как и ожидалось на граблю я наступил прям сразу. В моей версии Arduino Marlin компилироваться категорически отказался. Поэтому советую сходу обновить вашу Arduino IDE. Я использовал версию 1.8.2 и с ней Marlin собрался без проблем.

Далее нужно сконфигурировать прошивку под свой принтер. Для этого в коде Marlin есть 2 файла:

Хочу особо обратить внимание на то, что для Prusa I4 нужны оба файла, хотя для других моделей может быть достаточно только Configuration.h.

В этих файлах куча всяких настроек и в общем-то в них довольно просто запутаться. Самому подобрать все эти коэффициенты наверно можно, но задача это совсем не тривиальная. Поэтому я просто сравнил конфигурацию оригинальной прошивки и ту, что была в 1.1.1 по умолчанию и перенёс туда нужные значения настроек и коэффициентов.

В комплекте с принтером было 2 прошивки — одна древняя как говно мамонта и довольно странная, но в ней были правильные коэффициенты. Втора посвежее, но с коэффициентами из нее всё дергается и задержка между командой энкодера и реакцией моторов. Поворачиваешь энкодер, а потом через 1, 2 секунды резкий рывок.

И вот тут меня подстерегала грабля номер два. Отредактировав конфигурацию и залив новую прошивку в принтер я обнаружил, что ось Z пытается двигаться с жутким скрежетом. Как оказалось при движении оси Z вращался только один мотор, что вызывало перекос. К счастью двигатель сжечь не удалось, но гайку направляющей похоже разбил — теперь одна из направляющих оси Z сильно люфтит.

Итак, чтобы крутились оба мотора нужно найти и раскомментировать в файле Configuration_adv.h строчку:

1
//#define Z_DUAL_STEPPER_DRIVERS

После этого всё заработало как надо.

Так-же обнаружил в прошивке настройки относящиеся к поддержке разных языков и попытался включить русский, но пока безрезультатно. Как я понял дисплей имеет только японский набор символов и это объясняет почему в исходной прошивке стоял Charset JAPANEESE.

Ну и третья грабля случилась уже после всеё этой эпопеи. Во время прошивки была вставлена SD карточка. После окончания прошивки обнаружил, что она перестала читаться. По счастью всего лишь повредилась файловая система, но тем не менее пришлось её заново форматировать. Так что будьте бдительны.

Мои итоговые файлы с конфигурацией можете скачать:

UPD: Выложил код на GitHub https://github.com/webhive/sunhokey-prusa-i4

По прошивке как таковой можно посмотреть тут

Комментарии