Калибровка подачи экструдера в Marlin и Klipper

Marlin использует параметр шагов на единицу (esteps, англ. steps per millimeter - сколько микрошагов делает мотор, чтобы протолкнуть 1 мм нити), а Klipper использует rotation_distance - расстояние подачи за один оборот двигателя. Это не две записи одного и того же числа, и команды одной прошивки нельзя применять к другой.

Смысл калибровки простой: если подача завышена, принтер льёт больше пластика, чем нужно (перелив - «слоновья кожа», размазанные стенки, засоры сопла). Если занижена - недолив (дыры, слабая связь слоёв, ломкие детали). Заводская настройка на самосборах часто врёт на несколько процентов, и на 100 мм нити это легко превращается в 3-5 мм в ту или другую сторону.

Почему это важнее flow ratio и pressure advance

Шаговый мотор экструдера крутит подающую шестерёнку, цепляющую нить зубьями. За один полный оборот стандартный мотор делает 200 шагов (шаговый угол 1,8°; у мотора на 0,9° - 400 шагов). Драйвер дробит каждый шаг на микрошаги (обычно 16, реже 32 или 256). Дальше передаточное число редуктора и диаметр шестерёнки определяют, на сколько миллиметров продвинется нить за один микрошаг.

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

Поэтому подачу чинят первой. Flow ratio (коэффициент потока в слайсере) домножает то, что и так делает экструдер: если сам экструдер физически даёт перелив, а Вы компенсируете это коэффициентом, точность плывёт по всему диапазону скоростей. Pressure advance (англ. предкомпенсация давления, параметр Klipper и OrcaSlicer) тоже работает поверх правильной подачи, а не вместо неё. Сначала физика, потом цифры в слайсере.

Перед калибровкой

Сначала устраните засор, проскальзывание шестерни, неправильный прижим и влажный пластик - иначе откалибруетесь по случайной ошибке, а не по реальной подаче. На закрытом серийном принтере с заводским профилем не меняйте скрытые параметры без указания производителя.

Ориентир, кого трогать:

Метод: линейка и одна команда

Понадобится рулон любого пластика (PLA 1,75 мм), тонкий маркер, линейка или штангенциркуль с точностью до 0,1 мм и доступ к консоли принтера (экран, OctoPrint, Mainsail, Fluidd или USB-терминал).

Шаг 1. Прогрев. Прогрейте сопло до рабочей температуры пластика (для PLA это порядка 210 °C). Холодная подача (cold extrusion) заблокирована прошивкой и просто не выполнится. На боуден-принтере (нить идёт по трубке PTFE от экструдера к хотенду) снимите трубку от хотенда (англ. hotend - горячий блок с соплом), чтобы нить выходила прямо из экструдера. На прямом приводе снимать ничего не нужно.

Шаг 2. Разметка. Найдите точку, где нить входит в экструдер, - это отверстие в верхней крышке. От неё отмерьте 120 мм вверх по нити и поставьте тонкую риску маркером. Замерьте это расстояние точно.

Шаг 3. Выдавить. Скорость подачи в калибровочной команде должна быть низкой, иначе мотор проскользнёт по нити. В консоли:


G91
G1 E100 F100

G91 - относительные координаты. G1 E100 F100 - выдавить 100 мм со скоростью 100 мм/мин. Дождитесь полной остановки, это займёт около минуты. Официальная документация Klipper предлагает свой вариант этой же процедуры: метка примерно в 70 мм от входа, подать 50 мм на скорости 60 мм/мин.

Шаг 4. Замер. Замерьте расстояние от риски до точки входа в экструдер. Фактически подано = 120 минус остаток. Пример: остаток 17 мм, значит экструдер подал 103 мм вместо 100 - перелив.

Шаг 5. Расчёт. Текущее значение узнаёте через M503 (Marlin) или из printer.cfg (Klipper).

Шаг 6. Сохранение. Marlin: M92 E402.9, затем M500 (запись в EEPROM; работает только если хранение настроек в прошивке включено). Klipper: правите rotation_distance в блоке [extruder], затем SAVE_CONFIG и FIRMWARE_RESTART.

Шаг 7. Контрольный прогон. Повторите измерение с новым значением. Документация Klipper советует повторять процедуру, если фактическая подача отличается от заданной больше чем на пару миллиметров. Обычно второй проход добивает результат в доли процента.

Важно: метод «измерил и подрезал» годится только для подачи. К осям X, Y и Z его применять нельзя - там точности не хватает, эти оси считают по железу (ремни, шкивы, ходовые винты).

Тонкости, о которых забывают

Прижим влияет. У экструдеров с регулировкой прижима пружиной (Bondtech, BMG, Sherpa и клоны) сила прижима меняет проскальзывание шестерёнки по нити. Калибруйте на том прижиме, на котором печатаете; перетянули позже - пересчитайте.

Тип пластика. TPU (англ. термопластичный полиуретан, гибкий резиноподобный материал) сжимается под зубом шестерёнки сильнее, чем PLA. Печатаете только TPU - калибруйте на TPU. Печатаете и то, и другое - калибруйте на PLA, а для гибкого поправляйте flow ratio в профиле материала.

Боуден и прямой привод. На боудене часть подачи уходит на сжатие нити в трубке. Это компенсируется retraction (англ. откат, втягивание нити для борьбы со стрингингом - тонкими нитями-паутинками) и pressure advance, а не подачей. Саму подачу калибруете одинаково для обоих типов: измеряете то, что физически выдвинулось из экструдера.

Двойной экструдер (IDEX, тулченджер - принтер, у которого печатающие головы меняются автоматически, например Snapmaker U1 или Prusa XL). Калибруйте каждую голову отдельно и сохраняйте значение в профиле инструмента (T0, T1), а не глобально: моторы и шестерёнки из разных партий могут отличаться.

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

Как ошибка подачи выглядит на детали

Подача Что видно на печати Что страдает
Недолив Тонкие стенки, зазоры между линиями периметра, негерметичное дно Слабая связь слоёв, ломкие детали, протекающие ёмкости
Норма Гладкие стенки, плотная верхняя крышка, чёткие углы -
Небольшой перелив Лёгкие «подушечки» на верхнем слое, сопли по углам Внешний вид
Сильный перелив «Слоновья кожа», размазанные грани, засоры сопла Размеры детали уезжают вверх, отверстия сужаются, посадки не работают

Когда калибровать заново

Чеклист «подача откалибрована»

  1. Сопло прогрето до рабочей температуры, холодная подача разблокирована.
  2. На нити риска в 120 мм от входа в экструдер, расстояние замерено точно.
  3. Отправлена команда G91 + G1 E100 F100, мотор отработал полностью.
  4. Замерен остаток, посчитано фактически поданное: 120 минус остаток.
  5. Новое значение записано: Marlin - M92 + M500, Klipper - SAVE_CONFIG.
  6. Контрольный прогон подтвердил результат.
  7. В журнал принтера записаны дата, новое значение и какой пластик использовался.

После подачи идут flow ratio, pressure advance, температурная башня и калибровка retraction. Без правильной подачи все они дадут смещённый результат.

Связанные статьи