Настройка linear advance и input shaping в Marlin
12 марта 2025
Некоторое время назад мы познакомились с Creality Ender 3 v3 SE. Мы узнали, что прошивка 3D-принтера основана на Marlin, и что существует поддерживаемый сообществом форк с включенными алгоритмами linear advance и input shaping. Пришло время разобраться с настройкой последних. Документация по этой теме имеется, но традиционно не отличается ни точностью, ни полнотой.
Начнем с linear advance. Открываем OrcaSlicer и находим Calibration → Pressure Advance. На то, что linear advance здесь принято называть pressure advance, не обращайте внимания. Просто один и тот же алгоритм называется linear advance в прошивке Marlin и pressure advance в прошивке Klipper.
В появившемся диалоге указываем следующие параметры:
Далее в свойствах филамента во вкладке Cooling ставим галочку Don’t slow down outer walls. Указываем скорости 100 мм/сек. Нарезаем модель и проверяем, что стенки и вправду будут печататься на 100 мм/сек (как делали это для Klipper).
Для чистоты эксперимента на время печати необходимо отключить input shaping. В свойствах принтера в Machine G-code → Machine start G-code дописываем:
Отправляем модель на печать. На башне находим высоту, где углы не выпирают и не скругляются:
Высота получилась 20 мм, что дает коэффициент LA равный 0.005 * 20 = 0.1
. В слайсере сбрасываем все настройки, которые изменяли на время калибровки. Полученный коэффициент linear advance указываем для филамента в Filament → Flow ratio and Pressure Advance → Pressure advance. Сохраняем настройки.
Переходим к настройке input shaping. На момент написания этих строк Marlin поддерживает всего один шейпер, ZV. Для сравнения, Klipper предлагает на выбор ZV, MZV, EI, 2HUMP_EI и 3HUMP_EI. Из-за данного ограничения Marlin не всегда способен полностью устранить эхо. Учитывайте это при настройке.
Fun fact! Marlin поддерживает альтернативную реализацию input shaping в рамках расширения Fixed-Time Motion. Однако в нашей сборке FTM не занесли.
Скачиваем и открываем ring_tower.stl. Сторона модели, подписанная как «X», расположена вдоль оси Y, и наоборот. Это не ошибка. Надписи означают, шейпер для какой из осей настраивается по соответствующей стороне.
В случае с «дрыгостолом», коим является Ender 3 v3 SE, поворачивать модель не нужно. Для 3D-принтеров с кинематикой CoreXY, согласно документации, башню нужно повернуть на 45°, чтобы каждая сторона соответствовала своему шаговому двигателю.
Проверяем, что печатать будем слоями высотой 0.2 мм. В свойствах филамента во вкладке Cooling ставим Don’t slow down outer walls. Скорости — 100 мм/сек. В разделе Others → Special mode включаем Spiral vase. Далее в свойствах принтера открываем вкладку Machine G-code, находим Layer change G-code и дописываем:
Отправляем модель на печать.
Для сторон «X» и «Y» определяем высоту, где видно меньше всего эхо:
Модель нужно поворачивать под разными углами к свету. Глазами она читается лучше, чем можно показать на фото.
На стороне «X» меньше всего эхо видно на высоте 30 мм. Это соответствует частоте 15 + 45 * (30/60)
, или примерно 38 Гц. Для «Y» высота получилось 55 мм, что соответствует частоте 15 + 45 * (55/60)
, или примерно 56 Гц.
Необходимо определить еще один параметр, так называемый damping factor. Он находится тем же способом, только в Layer change G-code дописываем:
M593 Y D{(layer_num < 2 ? 0 : 1.0 * (layer_num - 2) / 297)} F56.0
Заметьте, что были указаны ранее найденные резонансные частоты для X и Y.
Эхо слабее всего проявляется в 12 мм от основания модели, как для стороны «X», так и для «Y». Что дает damping factor равный 12 / 60
, или 0.2.
В Ender 3 v3 SE полученные значения можно сохранить через Control → Motion → Input Shaping. Далее нажимаем Control → Store Configuration. Если в 3D-принтере не предусмотрен интерфейс для изменения настроек шейперов, можно создать файл .gcode вроде такого:
M593 X D0.2 F38.0 ; X shaping
M593 Y D0.2 F56.0 ; Y shaping
M500 ; Save settings
… и отправить его на печать. Как альтернативный вариант, команды M593
можно сохранить в слайсере, отредактировав стартовый G-code для 3D-принтера.
Метки: 3D печать.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.