© 2023 DiyTronic

Калибровка стола 3d принтера без всяких датчиков

Как известно для качественной печати на 3D принтере необходимо тщательно выровнять поверхность стола. К сожалению сделать это не всегда возможно. Довольно часто стол представляет собой криволинейную поверхность и даже использование стекла не позволяет полностью решить эту проблему. По счастью в последних прошивках Marlin всё больше и больше внимания уделется возможности калибровки поверхности стола. Полностью автоматическая калибровка требует применения дополнительных датчиков, что не всегда доступно, но кроме неё есть возможность калибровки стола в ручном режиме. Именно об этом я и хочу рассказать.

Добавляем поддержку автокалибровки в прошивку

Включаем поддержку ручной калибровки

1
2
3
4
#define PROBE_MANUALLY      // Включаем поддержку ручной автокалибровки
...
#define MESH_BED_LEVELING // Включаем типа калибровки - по сетке
// (остальные не работают для ручного режима)

Задаём опции сетки

1
2
3
4
#define MESH_INSET 10          // Отступ от края области печати
#define GRID_MAX_POINTS_X 3 // Количество точек по оси X
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X // Количество точек по оси Y

Внимание! Не использовать больше 7 точек на ось. Это ограничение прошивки.

Добавляем пункты в меню принтера

1
2
3
4
5
6
7
#define LCD_BED_LEVELING

#if ENABLED(LCD_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Шаг движения оси Z при калибровке
#define LCD_PROBE_Z_RANGE 4 // Диапазон движения оси Z относительно
// минимального значения
#endif

Скрипт выполняемый после калибровки. Тут по умолчанию какие-то телодвижения экструдером, не факт что они нужны. Не уверен на этот счёт.

1
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"

После этого заливаем обновлённую прошивку.

Калибруем стол

Для ручной калибровки используется так называемый Mesh Bed Leveling (MBL). Т.е. способ калибровки по массиву точек. Соответственно поверхность стола разбивается на сетку и по узлам сетки производятся замеры Z координаты перемещением вручную оси Z. Собствено для измерения нужен только лист бумаги и прямые руки.

В каждой точке под сопло экструдера подкладываем лист бумаги и движением оси Z (либо посылая специальную G команду через ПО с компьютера, либо через меню принтера) добиваемся такого состояния когда лист под экструдером ещё можно свободно двигать, а уменьшение положения экструдера на один шаг уже мешает листу перемещаться. После этого текущая точка записывается и продолжаем со следующей и так до конца.

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

По умолчанию для калибровки используется сетка 3×3 т. е. 9 точек, но при желании можно задать в прошивке другое количество (не более 7 на ось, т. е. не более 49 всего).

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

1
2
3
4
M190 S65      ; Устанавливаем температуру стола
M104 S210 ; Устанавливаем температуру экструдера
; Установка температуры необязательно но позволяет учесть
; при калибровке температурные расширения

Через внешнюю программу

Для калибровки стола есть специальная команда G29

  1. G29 S0 читаем текущие значения точек в памяти принтера.
  2. G29 S1 перемещение принтера в первую точку для начала процесса настройки. Фактически принтер сначала паркуется в исходное положение, потом переходит к первой точке.
  3. G29 S2 записываем текущую точку и двигаемся к следующей
  4. Повторяем процесс для всех точек
  5. Используем команде M500 для записи измеренных величин в память принтера

Через меню принтера

Выбираем в меню Presets следующие пункты

После чего видим на экране следующую надпись и наблюдаем как принтер паркуется в домашнюю позицию

Затем принтер предлагает нам кликнуть по энкодеру.

После клика экструдер переходит к первой точке

И мы видим регулировку оси Z.

Далее двигая рукоятку энкодера выставляем требуемый зазор как было описано выше.

Кликом по энкодеру сохраняем значение и перемещаемся к следующей точке. Повторяем калибровку каждой точки (всего их 9 штук). После последней точки принтер выполнит парковку и покажет нам следующее:

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

Итого

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

В общем крайне рекомендую сделать калибровку если вы её ещё не сделали. Как минимум не будет хуже и почти наверняка результаты печати значительно улучшатся.

PS: Вот тут — Проблемы с автокалибровкой стола 3d принтера важное дополнение.

Источники

Комментарии