Прошивка Marlin 2.1 c LVGL_UI на FlyingBear Ghost 5
Спустя 2 года использования, решился я перепрошить медведя со стока. Вот только графический интерфейс с иконками устраивает полностью, WiFi я считаю необходимостью, иконка печатаемой детали мне позарез нужна, ну и мириться с закосом под доисторический принтер COLOR_UI желания нет никакого. Нет, ну серьёзно, синий цвет и общий дизайн взят там разве что из ностальгических воспоминаний по этой красоте:
Вот только оказалось, что популярные прошивки для 5-го медведя поставляются именно в этом, горячо нелюбимом мной варианте. Причём родной Marlin 2 даже работать не умеет с WiFi модулем без LVGL. Хорошо, что есть репозиторий, где это неудобство исправили. Но этот вариант меня всё равно не устраивает: отображение иконки печатаемой детали для меня много важнее дополнительных опций в меню, которыми я не пользуюсь.
Стал искать варианты. Наткнулся на репозиторий от MKS, правда залить его мне его удалось попытки с 10-й (не льются asset-ы, хоть убейся), поддержки WiFi там нет, даром что MKS-овский репозиторий, да и вообще там версия старая. И тогда я обнаружил что самая свежая версия MKS-овского UI спокойно себе живёт в официальном репозитории Marlin, с поддержкой WiFi модуля из коробки. Обрадовавшись, я сконфигурировал и залил её.
Но тут меня ждала засада: принтер временами пропускал шаги по оси Y и слои смещались друг относительно друга. Напечатать невозможно даже Benchy. Конечно, первая мысль - я умудрился что то испортить. Залил ванильную прошивку - проблема ушла. Накатил обратно марлин - снова появилась. Оказалось, что это известная проблема, наблюдаемая только на MKS Robin 1 и 2, только при включении LVGL_UI и только на 2-й версии Марлина. Обидно было до чёртиков. Потрачены 2 дня, полностью настроен марлин из репозитория, заработал linear advance, да и менюшка новая понравилась.
Расстроившись, я обнаружил сегодня новый комментарий в ветке обсуждения проблемы, который предлагал её решение: переконфигурировать марлин так, чтобы он поменял местами оси Y и E1, переткнуть драйвер и кабель... И всё, проблема ушла. Так что теперь я счастливый обладатель свежайшей версии Marlin 2.1 с отличным UI и всеми плюшками, которые были в ванильной прошивке медведя: возможностью настраивать wifi из меню (в версии Сергея такой возможности нет), иконка печатаемой детали, отсутствие постоянного мигания циферь (зачем в COLOR_UI так сделали?) ни и более приспособленным под TOUCH меню:
Конфигурируем Marlin
Похвастаться я успел, теперь (чтоб не забыть) выкладываю все изменённые настройки, которые сделал. И сам потом найду, и может кому-то ещё пригодятся. Настройки ищем по имени константы и меняем на значения ниже.
Я, разумеется, мог бы на пример Сергея, форкнуть свой репозиторий, но кто его поддерживать будет? Уже через полгода это будет репозиторий с крайне устаревшим Марлином. А регулярно ребейзиться и решать конфликты - желания нет никакого. Да и вообще - ванильная прошивка медведя вполне себе ничего. Ставить марлин стоит разве что ради того, чтобы сконфигурировать последний под себя. То есть возиться с конфигом. Считайте изложенное ниже скорее некоторым TODO. Что точно не стоит забывать сконфигурировать.
Файл platformio.ini
Тут ровно одно изменение:
default_envs = mks_robin_nano_v1v2
Файл Marlin/Configuration.h
Для феншуя пометим используемый принтер (я так и не увидел нигде эти надписи, но пусть будут)
#define STRING_CONFIG_H_AUTHOR "(Flying Bear Ghost 5, default config)"#define CUSTOM_MACHINE_NAME "Flying Bear Ghost 5"
Совершенно необходимые вещи:
#define MOTHERBOARD BOARD_MKS_ROBIN_NANO#define SERIAL_PORT 3#define TEMP_SENSOR_BED 1 // Без этого не будет нагреваться стол#define PIDTEMPBED // И без этого тоже#define X_MIN_ENDSTOP_INVERTING true // В медведе endstop-ы инвертированы.#define Y_MIN_ENDSTOP_INVERTING true#define Z_MIN_ENDSTOP_INVERTING true#define X_BED_SIZE 250 // Размеры стола, у меня кастомный экструдер отъел 5мм X#define Y_BED_SIZE 210#define SDSUPPORT // Поддержка карты. Без неё не заведётся
Меняем тип драйверов шаговиков (смотрите на то что у вас в медведе, а не сюда)
#define X_DRIVER_TYPE TMC2208_STANDALONE#define Y_DRIVER_TYPE TMC2208_STANDALONE#define E0_DRIVER_TYPE TMC2209_STANDALONE // Можно оставить A4988, если не поменяли
Теперь PID-ы (взял из настроек ванильки, можете подредактировать под себя)
#define DEFAULT_Kp 11.14#define DEFAULT_Ki 0.72#define DEFAULT_Kd 43.09#define DEFAULT_bedKp 40.68#define DEFAULT_bedKi 7.93#define DEFAULT_bedKd 139.15
Инверсии осей (если не что-то у вас будет крутиться не туда, меняйте)
#define INVERT_Y_DIR false#define INVERT_E0_DIR true
Настройка шагов
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 400} // Последнее значение экструдер
Я дополнительно поднял лимиты фидрейта, но это не обязательно
#define DEFAULT_MAX_FEEDRATE { 400, 400, 7, 45 }
И датчик филамента. Пришлось пойти на хакинг, так как марлин упирался (но в результате всё работает)
#define FILAMENT_RUNOUT_SENSOR#define FIL_RUNOUT_PIN PA4 // Это хак, его нужно дописать, в оригинальном файле этого нет#define FILAMENT_RUNOUT_SCRIPT "M25" // Второй кусок хака, но его меняем
А вот эти строки надо найти и раскомментировать:
#define MKS_ROBIN_TFT35 // Указываем тип используемого дисплея#define TFT_LVGL_UI // Включаем заветный UI#define MKS_WIFI_MODULE // Включаем поддержку WiFi модуля#define TOUCH_SCREEN // Возможность касаться экрана, без неё не будет реагировать на нажатия
Файл Marlin/Configuration_adv.h
Начнём с необходимого
#define E0_AUTO_FAN_PIN FAN1_PIN // Без этого не будут работать вентиляторы. И это ВАЖНО.
Также я скорректировал температуру включения/отключения вентилятора как в ванильке
#define EXTRUDER_AUTO_FAN_TEMPERATURE 70 // Так сделано в ванильной прошивке
Ну и ванильная возможность восстанавливаться при отключении питания мне тоже нравится
#define POWER_LOSS_RECOVERY#define PLR_ENABLED_DEFAULT true // Пусть всегда будет
Разумеется, Linear Advance!
#define LIN_ADVANCE#define ADVANCE_K { 0.05 } // У всех экструдеры разные. Моему больше подходит такое значение#define ADVANCE_K 0.05
Файл Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_common.h
А теперь надо обойти косяк Марлина, который на момент написания статьи не поправлен. Да, одной перепрошивкой не обойтись. Надо открыть медведя и переместить шаговик оси Y в сокет для E1. И кабель тоже переткнуть. Ну а в файле меняем местами оси Y и E1:
#define E1_ENABLE_PIN PE1#define E1_STEP_PIN PE0#define E1_DIR_PIN PB9#define Y_ENABLE_PIN PA3#define Y_STEP_PIN PA6#define Y_DIR_PIN PA1
Еще больше интересных статей
Для тех кто любит быстросъём ;-)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Гордость отечественного производителя и малоизвестный «поляк»
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Дефекты 3D печати - Попробуем ввести классификацию
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сегодня я решил уходить не в художестве...
Комментарии и вопросы
А нету модели переходной пласт...
Чило публикации смотрели?
Чо то цены не смешные. Шутка н...
Решил установить обновленную в...
Доброго времени суток. После п...
Всем добрый вечер. Такая пробл...
Принтер Аникубик i3 мега. Ульт...