Металл2024 Реклама
Метобр2024 Реклама

Прошивка Marlin 2.1 c LVGL_UI на FlyingBear Ghost 5

makarenya
Идет загрузка
Загрузка
03.02.2023
12031
21
3D-печать

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

9
Статья относится к принтерам:
Flying Bear Ghost 5

Спустя 2 года использования, решился я перепрошить медведя со стока. Вот только графический интерфейс с иконками  устраивает полностью, WiFi я считаю необходимостью, иконка печатаемой детали мне позарез нужна, ну и мириться с закосом под доисторический принтер COLOR_UI желания нет никакого. Нет, ну серьёзно, синий цвет и общий дизайн взят там разве что из ностальгических воспоминаний по этой красоте:

Прошивка Marlin 2.1 c LVGL_UI на FlyingBear Ghost 5

Вот только оказалось, что популярные прошивки для 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 2.1 c LVGL_UI на FlyingBear Ghost 5

Конфигурируем 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

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

9
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама