Linear Advance (K-factor) в Marlin: как настроить углы и убрать наплывы - Блог Папы Карло

Опубликовано: 5 месяцев назад
Просмотров: 128

Привет. Я у себя в мастерской эту историю вижу постоянно: деталь вроде печатается ровно, а на поворотах стенки распухают, на шве вылезают пупырышки, и весь вид модели сразу дешевеет. Если у тебя та же картина, чаще всего надо смотреть не только на поток и температуру, а именно на Linear Advance в Marlin. Эта функция поджимает подачу пластика под реальные разгоны и торможения, поэтому углы становятся собраннее, а наплывы и кляксы на старте линии уходят.

Сразу покажу маршрут, по которому я обычно иду сам: сначала проверяю подачу филамента и базовые настройки, потом печатаю тест K-factor, читаю линии, выбираю рабочее значение, прописываю его через M900 и уже после этого трогаю ретракт, шов и скорость. Если делать в такой последовательности, результат приходит заметно быстрее.

Что вообще делает Linear Advance и когда он реально нужен

Смысл у Linear Advance простой: прошивка заранее учитывает, что расплав в хотэнде ведёт себя не как идеальная струйка, а как система с инерцией и давлением. Каретка тормозит перед углом, а пластик по инерции ещё давит в сопло — вот тебе и наплыв на углу. Потом головка снова ускоряется, а давление не успевает догнаться — появляется тонкий старт линии или рваный след. K-factor как раз и говорит прошивке, насколько агрессивно надо компенсировать это давление.

На практике я включаю Linear Advance, когда вижу один или сразу несколько симптомов: углы становятся «собачьей костью», на внешней стенке есть капля в месте старта периметра, верхний слой возле разворотов шероховатый, а на цилиндрах шов торчит сильнее, чем должен. Особенно заметно это на PLA и PETG, когда печать уже не черепашья и ускорения стоят бодрые.

Тут важный момент: если у тебя древняя ветка Marlin 1.1.8 и ниже, там старый вариант Linear Advance, и значения K из новых инструкций туда не переносятся. На Marlin 1.1.9, 2.0 и свежее используется версия 1.5, где цифры K совсем другого масштаба. Поэтому не копируй слепо чужие значения из форумов — сначала смотри на свою версию прошивки.

Ещё одна рабочая мысль из практики: Bowden почти всегда просит больший K, чем direct drive. Длинная трубка сильнее пружинит, давление в тракте гуляет заметнее, и прошивке приходится активнее компенсировать это дело. На direct drive диапазон обычно уже, а реакция на смену значения читается спокойнее.

Печать тестовых линий K-factor на столе 3D-принтера

Что проверить до калибровки K-factor

Вот тут многие и теряют вечер. Пытаются крутить K-factor, когда у них не откалиброваны e-steps, поток задран, сопло подзабито или температура прыгает. Я делаю так: сначала привожу в чувство саму подачу, а уже потом лезу в Linear Advance. Иначе тест врёт, а ты потом гоняешься не за той проблемой.

Перед тестом я обязательно проверяю четыре вещи.

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

  2. Поток и переэкструзия. Когда модель в принципе «пухнет» по стенкам, один только K-factor не спасёт. Тут лучше сначала посмотреть разбор про избыточную подачу и поток.

  3. Состояние сопла и хотэнда. Полузасор отлично маскируется под «неправильный K». Если есть сомнения, сначала пробеги статью про засор сопла и экструдера.

  4. Ускорения и jerk. На свежем Marlin высокий K может упираться в возможности экструдера, и прошивка тогда сама душит ускорение на ходу. Если хочешь понимать, почему после включения LA принтер будто стал спокойнее, загляни в материал про ускорения и jerk.

Ещё совет из мастерской: на время теста отключи в слайсере штуки, которые тоже пытаются играть давлением в сопле. В Cura, OrcaSlicer и похожих профилях это могут быть coasting, extra restart, лишние компенсации по шву и агрессивный wipe. Когда они включены одновременно с Linear Advance, паттерн получается мутный, и выбрать честный K уже тяжело.

Как печатать тест и как читать линии

Я обычно не мудрю: генерирую классический K-factor pattern под свой материал, температуру, сопло и слой, которыми реально собираюсь печатать. Это важно. K зависит от пластика, температуры, диаметра сопла и даже от того, direct drive у тебя или Bowden. Поменял материал с PLA на PETG — готовься, что рабочее значение уедет. Поставил другое сопло — тест лучше перегнать заново.

Логика у паттерна простая: каждая линия печатается с переходом от медленного участка к быстрому и обратно, а на каждой следующей строке K-factor растёт. Твоя задача — найти ту линию, где на переходах ширина почти не гуляет. Не самую красивую по цвету, не ту, что лучше всех прилипла, а именно ту, где нет явного распухания на торможении и нет голодного старта после разгона.

Что видишь на тесте Что это значит Куда двигаться
На замедлении линия распирается, на углах потом появляются бочонки K слишком низкий, давление не успевает сбрасываться Поднимай K небольшими шагами
В начале ускорения линия толще обычного, а ближе к торможению начинается голодный участок K слишком высокий, прошивка компенсирует слишком резко Откатывай K чуть назад
Переходы между медленным и быстрым участком почти не читаются Значение близко к рабочему Напечатай повторный узкий тест вокруг этого диапазона

Я люблю идти в два захода. Сначала делаю широкий диапазон, чтобы понять район поиска. Потом печатаю второй тест уже в узком коридоре с маленьким шагом. Так экономится пластик и нервы. Для direct drive коридор обычно скромный, для Bowden — пошире. Если взять слишком широкий разброс сразу, можно проскочить нормальную точку и решить, что «функция фигня».

Когда смотришь на реальную деталь после теста, ориентируйся на три места: острые внешние углы, шов на цилиндре и начало верхних линий. Если K низковат, угол распирает и появляется тот самый жирный «нос». Если K переборщить, углы становятся слегка сглаженными, а старт линии местами уже выглядит подсушенным. Я обычно печатаю маленький кубик или тонкостенный прямоугольник после паттерна и проверяю именно эти зоны.

Если печатаешь на скоростях выше среднего, не удивляйся, что разница между соседними значениями K читается ярче. Linear Advance сильнее проявляется там, где у сопла реально есть разница между медленными и быстрыми участками. На очень спокойной печати эффект тоже есть, но его труднее увидеть глазом.

Что делать, если паттерн весь кривой и «идеальной» линии не видно

Тогда я не продолжаю долбить K наугад. Сначала проверяю температуру, чистоту сопла, натяг прижима экструдера и адекватность потока. Потом убеждаюсь, что первый слой теста лёг ровно, а не размазан соплом. Иногда проблема вообще в том, что принтер давит по поверхности из-за неверного зазора. Если это твой случай, вот материал про Z-offset и правильный зазор.

Ещё один частый косяк — люди печатают паттерн на одном наборе скоростей, а рабочие модели гоняют совсем на другом. Да, значение потом может попасть мимо. Я стараюсь тестировать примерно в том диапазоне, где принтер реально живёт каждый день, а не в лабораторном вакууме.

Куда прописать K-factor в Marlin

Когда рабочее значение найдено, его надо не держать в голове, а записать в стартовый G-code. В Marlin для этого используется команда M900 K.... Например, если твой тест показал 0.22, в стартовом блоке будет строка M900 K0.22. Если поставить M900 K0, Linear Advance отключится.

Я обычно делаю отдельные профили под PLA, PETG и технические пластики, потому что под разную температуру и разную вязкость расплава K уезжает. Это сильно удобнее, чем каждый раз вспоминать, что именно было выставлено в прошлый раз. А ещё полезно записывать значения в свой журнал печати — потом проще ловить закономерности по материалам и соплам.

Если принтер в терминале отвечает на M900 ошибкой или говорит, что команда неизвестна, значит сама функция в прошивке не активирована. Тогда сначала надо пересобирать Marlin с включённым LIN_ADVANCE, а уже потом запускать тесты. И да, не пугайся, если после активации на высоких значениях K принтер ведёт себя спокойнее по ускорениям: современный Marlin умеет ограничивать ускорение, когда экструдер уже упирается в свои пределы.

Почему углы всё ещё пухнут и где люди обычно промахиваются

Вот тут соберу самые частые промахи, которые я вижу у ребят в мастерских и чатах.

  • Путают Linear Advance с лечением вообще всего. Если у тебя скачет температура, болтается ремень или люфтит каретка, K-factor не заменит нормальную механику.

  • Крутят K до калибровки потока. В итоге вместо настройки давления борются с обычной переэкструзией или недоэкструзией.

  • Оставляют в слайсере coasting и похожие костыли. Потом шов становится странным, а результат прыгает от профиля к профилю.

  • Ставят одно значение на все пластики. PLA, PETG, ABS и композиты ведут себя по-разному. Одна цифра на все случаи редко попадает в яблочко.

  • Смотрят только на тест, но не проверяют реальную модель. Паттерн — это фильтр, а финальное решение всегда подтверждается деталью с углами, швом и верхними слоями.

Если после настройки K наплывы уменьшились, но шов всё ещё заметен, дальше уже имеет смысл отдельно добивать тему траектории. Для этого у тебя на сайте есть хороший материал про настройку шва на корпусах и цилиндрах. А когда по стенкам всё ещё идёт волна подачи, загляни ещё в разбор про пульсирующую экструзию — там уже корень может быть совсем не в K-factor.

Есть и такой момент: иногда люди ждут, что после Linear Advance можно сразу валить с любой скоростью. Не совсем так. Функция реально помогает держать форму на ускорениях и торможениях, но если охлаждение слабое, хотэнд не вывозит поток, а пластик сыроват, чудес не произойдёт. Прошивка компенсирует давление, а не исправляет весь принтер целиком.

Мой короткий чек-лист по настройке

  1. Проверил e-steps или rotation_distance, поток и состояние сопла.

  2. Отключил в слайсере coasting, extra restart и спорные компенсации по шву на время теста.

  3. Сгенерировал K-factor pattern под свой материал, температуру, слой и сопло.

  4. Нашёл линию, где переходы между скоростями почти не меняют ширину.

  5. Прогнал узкий повторный тест рядом с лучшим значением.

  6. Вписал итог в стартовый G-code через M900.

  7. Проверил кубик или реальную деталь: углы, шов, верхний слой.

Если подвести итог совсем по-простому: Linear Advance в Marlin — это один из самых толковых способов прибрать наплывы на углах и сделать подачу на смене скорости предсказуемой. Не надо стрелять K-factor наугад. Сначала приводишь в норму подачу, потом читаешь паттерн, потом подтверждаешь всё на реальной модели. Я в мастерской именно так и делаю, и после этого углы становятся заметно суше, шов аккуратнее, а печать выглядит уже не как «ну почти норм», а как реально настроенный принтер.

Метки: , , , , , , , , ,