Klipper: Bed Mesh

Klipper: Bed Mesh

Бывает трудно получить хороший первый слой. К счастью, Klipper может помочь. Узнайте, как использовать Klipper для компенсации bed mesh.

Если вы хотите обновить свой 3D-принтер, то одним из самых популярных способов сделать это является смена прошивки. Два самых популярных варианта, Klipper и Marlin, предлагают множество возможностей для настройки и индивидуального использования.

С каждым днем все больше пользователей меняют прошивку принтера по умолчанию на Klipper. Это требует очередного цикла новых калибровок и bed mesh не является исключением. Эта важнейшая функция иногда может означать разницу между успешной и неудачной печатью, поэтому ее правильная настройка перед печатью просто необходима. В двух словах, если поверхность стола неровная — с буграми, впадинами или вообще неровная — то калибровка сетки стола позволит устранить эти неровности, избежав проблем с первым (и последующими) слоями.

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

В этой статье мы расскажем о том, как настроить файл конфигурации, как выполнить процедуру калибровки и, наконец, рассмотрим несколько дополнительных настроек, которые могут пригодиться вам при работе с Klipper.

Принцип работы

Biqu Hurakan поставляется с клиппером и сенсорным датчиком для простой настройки
Biqu Hurakan поставляется с Klipper и сенсорным датчиком для простой настройки (Источник: All3DP)

По сути, компенсация сетки стола сводится к трем шагам:

  1. Принтеру дается набор инструкций по прощупыванию стола.
  2. Затем следует последовательность калибровки, и результаты сохраняются в памяти в виде матрицы значений.
  3. Команда в стартовом G-коде извлекает эти значения и дает принтеру указание компенсировать их.

Давайте рассмотрим подробнее, чтобы понять, что делает компенсацию сетки стола такой эффективной и почему ее нужно калибровать! И прежде чем мы откалибруем сетку, мы кратко расскажем о том, как физически выровнять стол с помощью чрезвычайно полезного макроса, который предоставляет Klipper.

Компенсация сетки стола

Откалиброванная сетка стола со слабым искривлением
Откалиброванная сетка стола с небольшой кривизной (Источник: All3DP)

Даже в квадрате с порталом ни одна поверхность сборки не является идеально ровной. Она имеет более низкие и более высокие точки и это влияет на первый слой. Сопло неизбежно будет находиться дальше в одних точках и слишком близко в других, что приведет к неравномерному нанесению филамента. Это приведет к различным проблемам, таким как плохое прилипание первого слоя, деформация, неровные нижние слои и многое другое.

Чтобы предотвратить это, компенсация сетки использует набор значений и координат для учета таких недостатков. Сопло перемещается вверх и вниз, чтобы следовать профилю стола и выдавливать материал на постоянном расстоянии от поверхности.

Klipper предлагает два варианта калибровки стола:

  • Автоматическая: При такой компенсации используется датчик (BLTouch, CR Touch, емкостной датчик и т. д.). Хотя она дает наиболее равномерные результаты, для нее требуется дополнительное оборудование.
  • Ручная: При этом методе пользователь должен оценить значение с помощью листа бумаги или щупа, перемещая ось Z вверх и вниз. Этот способ можно использовать на любом принтере без использования датчиков, но он менее точен и более утомителен.

Какой бы метод вы ни выбрали, он не повлияет на то, как обрабатывается сетка или компенсируется.

Также помните, что это всего лишь компенсация. Она не исправляет механические или квадратные проблемы, и у нее есть свои пределы. Сильно деформированный стол будет сложнее корректировать, а перекос оси X неизбежно отразится на сетке. Перед началом процедуры не забудьте выровнять стол, а также убедиться, что порталы выровнены.

Выравнивание стола

Fluidd включает удобную кнопку для запуска макроса
Fluidd содержит удобную кнопку для запуска макроса «Screws Tilt Calculate» (Источник: All3DP)

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

В Klipper появился очень удобный инструмент для решения этой задачи — макрос под названием «Screws Tilt Calculate». Чтобы воспользоваться им, вам нужно указать приблизительные координаты XY винтов под столом, а также количество оборотов, которое потребуется для перемещения винтов в полном диапазоне движения. Чтобы найти координаты винтов, посмотрите на стол и измерьте от края стола до места расположения винтов по осям X и Y. Количество оборотов винта можно определить, повернув его вручную на полную амплитуду движения и подсчитав количество оборотов. Ни одно из этих значений не должно быть точным, поэтому не стоит слишком беспокоиться об идеальных измерениях.

Затем вы можете ввести SCREWS_TILT_CALCULATE в консоль или запустить его с помощью удобной кнопки во Fluidd. После этого программа проверит каждый угол и выдаст значение высоты по оси Z, а также предложит количество оборотов по часовой или против часовой стрелки, на которое нужно повернуть каждый винт, чтобы сделать их одинаковыми по высоте. Проделайте эту процедуру несколько раз или до тех пор, пока разница между каждым углом не составит ±0,05 мм.

Для принтеров CoreXY, где портал или стол перемещаются в направлении Z с помощью отдельных шаговых двигателей, выравнивание стола более или менее автоматизирована с помощью процедур типа «Quad Gantry Level». Если ваш принтер механически исправен, можно переходить к созданию сетки стола.

Как калибровать сетку стола

Разделы BLtouch и mesh в файле printer.cfg
Секции BLTouch и mesh в файле printer.cfg (Источник: All3DP)

Теперь, когда вы настроены и готовы к калибровке, давайте перейдем к шагам, которые необходимо предпринять. Для справки, мы будем использовать Mainsail для интерфейса, но Fluidd или OctoKlipper тоже подойдут.

Автоматическая

У этого метода есть несколько точек входа: Вы можете использовать кнопку Calibrate в меню Heightmap, создать макрос для его запуска или отправить каждую команду через консоль. Опять же, выполнение никак не влияет на то, как будет измеряться сама сетка. Это всего лишь вопрос интерфейсов и кнопок.

Первым шагом всегда является создание секции [bed_mesh] в файле конфигурации. В этой секции вы должны будете определить:

  • Границы — в направлениях X и Y — для зонда (или радиус стола, если он круглый).
  • Количество точек для зондирования по осям X и Y.
  • Скорость движения зонда.

Например, это может выглядеть следующим образом:

[bed_mesh] mesh_min: 5, 5 mesh_max: 215, 215 probe_count: 7, 7 speed: 80

Все подробно описано в справочнике по конфигурации Klipper. Обязательно ознакомьтесь с ней заранее.

Включенная кнопка Calibration в меню Heightmap (или Bed Mesh во Fluidd) выполнит все, что вы задали в [bed_mesh]. Эта опция «нажал и забыл» отлично подойдет для быстрой автоматической калибровки.

Два макроса G-кода для зондирования стола и сохранения сетки в определенном профиле
Два макроса G-кода для зондирования стола и сохранения сетки в определенном профиле (Источник: All3DP)

Кроме того, можно создать макрос в файле конфигурации. Это позволит вам управлять последовательностью калибровки, например, сначала навести принтер на цель или нагреть стол. Таким образом, вы также можете запускать ее автоматически в начале каждой печати.

Чтобы узнать больше о макросах Klipper, можно прочитать соответствующие шаблоны команд.

Например, макрос, который нагревает стол и сопло перед печатью, может выглядеть следующим образом:

[gcode_macro probe_mesh]
gcode:
       # Set extruder and bed temperature
       M109 S120
       M190 S60
       # Home all axis
       G28
       # Start probing
       BED_MESH_CALIBRATE PROFILE=mesh1 METHOD=automatic
       # Turn off heaters afterward
       TURN_OFF_HEATERS

Наконец, можно просто дать команду через терминал Console для выполнения калибровки. Следуйте этой структуре:

BED_MESH_CALIBRATE PROFILE=<name> METHOD=[automatic] [<probe_parameter>=<value>] [<mesh_parameter>=<value>]

probe_parameter и mesh_parameter указывают на вышеупомянутые значения для установки. Для их определения используйте MESH_MIN, MESH_MAX и PROBE_COUNT. Вот пример:

BED_MESH_CALIBRATE PROFILE=mesh1 METHOD=automatic MESH_MIN=5,5 MESH_MAX=215,215 PROBE_COUNT=7,7 PROBE_SPEED=80

Всегда помните о сохранении сетки!

Ручная

В Mainsail есть специальная панель интерфейса для ручного зондирования
Mainsail имеет специальную панель интерфейса для ручного зондирования (Источник: All3DP)

После создания секции [bed_mesh] в файле конфигурации можно приступить к выполнению команды через консоль или макрос, на этот раз используя METHOD=manual.

  • Это запустит процедуру, которая будет перемещать сопло в каждую указанную точку.
  • С помощью щупа или листа бумаги вы можете отрегулировать трение сопла, перемещая ось Z вверх и вниз через интерфейс. В Mainsail даже есть специальное окно для этого.
  • Когда вы будете удовлетворены желаемой величиной трения, сохраните значение с помощью ACCEPT (для выдачи в консоли) и переходите к следующей точке. Повторите процесс, пытаясь достичь однородного уровня трения во всех точках.
  • Вы всегда можете остановить процедуру, нажав на ABORT.

Когда вы закончите, не забудьте сохранить сетку.

Сохранение сетки

Всегда используйте команду SAVE_CONFIG, чтобы сохранить сетку и перезапустить Klipper. Значения будут сохранены в нижней части файла конфигурации, в разделе SAVE_CONFIG. Вы не должны редактировать эту часть.

Как активировать компенсацию сетки

Профили сохраняются в виде матрицы значений в файле printer.cfg
Профили сохраняются в виде матрицы значений в файле printer.cfg (Источник: All3DP)

Существует два основных способа активировать компенсацию сетки. Один из них включает использование существующей сетки, другой — создание новой.

Использование ранее созданной сетки

Чтобы сетка была эффективной, ее необходимо вызвать перед началом печати. Это можно сделать, добавив несколько строк в конец стартового G-кода, непосредственно в слайсере или в макросе START_PRINT. Вот как это выглядит на практике:

BED_MESH_PROFILE LOAD=<name>

Это восстановит состояние сетки из профиля, соответствующего указанному имени. Это необходимо для включения сетки.

BED_MESH_PROFILE REMOVE=<name>

Это может быть использовано в конечном G-коде для удаления сохраненной сетки. После этого необходимо выполнить SAVE_CONFIG.

Помните, что для надежного сцепления необходимо задать соответствующий Z Offset. Вы можете узнать больше в нашей статье о том, как заставить Klipper и BLTouch работать вместе.

Создание новой сетки для каждой печати

PrusaSlicer удобно позволяет включать пользовательский стартовый G-код непосредственно в слайсер
PrusaSlicer позволяет включать пользовательский стартовый G-код непосредственно в слайсер (Источник: All3DP)

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

Чтобы убедиться, что сетка компенсирует текущее состояние принтера, многие пользователи предпочитают генерировать новую сетку стола для каждой печати. Это компромисс, поскольку на создание сетки уходит значительное количество времени, но если вы не слишком торопитесь, то это может оказаться правильным решением.

Во-первых, перед генерацией новой сетки стоит использовать команду BED_MESH_CLEAR, чтобы убедиться, что для печати будет использована новая сетка, а не сохраненный ранее профиль.

Чтобы генерировать новую сетку для каждой печати, вам нужно добавить команду BED_MESH_CALIBRATE в ваш стартовый G-код макроса или в стартовый G-код, указанный в вашем слайсере. Здесь важен порядок: Рекомендуется добавлять макрос после того, как стол нагреется до температуры, так как поверхность стола значительно изменяется при нагреве. И обратите внимание, что BED_MESH_CALIBRATE должен быть помещен после команды BED_MESH_CLEAR, чтобы не удалить только что созданную сетку!

При использовании этого метода генерации новой сетки при каждом отпечатке легко принять образ мышления «установил и забыл», что, в общем-то, и нужно. Однако не забывайте время от времени калибровать Z Offset, чтобы сетке не приходилось компенсировать слишком большой наклон. Нелишним будет время от времени поглядывать на генерируемую сетку, чтобы понять, насколько сильно наклонен или деформирован ваш стол.

Дополнительные параметры и макросы

Тот же стол, что и выше, с включенной интерполяцией сетки (зеленым цветом)
Тот же стол, что и выше, с включенной интерполяцией сетки (зеленым цветом) (Источник: All3DP)

Хотя вышеупомянутая конфигурация будет работать отлично, вы можете захотеть углубиться в то, что может сделать модуль сетки. На самом деле Klipper включает в себя ряд параметров и инструментов, которые могут пригодиться более опытным пользователям:

  • Mesh Interpolation: Алгоритм вычисляет средние точки между двумя точками зонда и добавляет их в сетку. Это позволяет достичь большего разрешения при том же количестве точек, особенно полезно для больших столов.
  • Move Splitting: Для неровных столов, где сопло должно преодолевать большие расстояния Z, необходимо разделить эти перемещения на более мелкие. Эта опция управляет поведением разбивки.
  • Mesh Fade: Постепенно уменьшает количество применяемой коррекции, пока она не исчезнет на определенном расстоянии от стола.
  • Faulty Regions: Эта настройка позволяет пользователю определить области стола, где зонд ведет себя ненадежно (например, над магнитами). В этом случае Klipper прощупает четыре точки за пределами этой области и усреднит их.

Более подробную информацию о всех этих настройках и их использовании всегда можно найти в документах по настройке Klipper.

Некоторые пользователи придумали очень умные макросы для калибровки стола, которые просто добавляются в файл конфигурации (с очень легкими изменениями). Среди наиболее полезных можно назвать следующие:

  • Klipper Adaptive Meshing & Purging или KAMP, который предоставляет автоматический скрипт для проверки только той части стола, на которой будет производиться печать. Это простая в применении система экономии времени, включающая также функцию интеллектуальной очистки.
  • Автоматическая процедура, которая калибрует стол при каждом 10-м отпечатке, созданная u/The_Red_Gobbo на Reddit.

Источник
Николай

Я всегда рад вашим комментариям, предложениям или новостям из первых уст.

Оцените автора
Добавить комментарий