Подробный гайд по калибровке карты стола 3D-принтера
Построение карты стола (Bed Mesh) — это один из важнейших этапов настройки 3D-принтера, который превращает печать из лотереи в стабильный процесс. Даже на самых ровных столах (стекло, PEI-листы) есть микроискривления, а термическое расширение при нагреве только усугубляет ситуацию. Карта стола компенсирует эти неровности, динамически подстраивая высоту сопла (ось Z) во время печати первого слоя.
ЭТАП 0. Подготовка и типы датчиков (ABL)
Прежде чем строить карту, принтер должен быть оснащен датчиком автоуровня (Auto Bed Leveling)
Индуктивные / Емкостные:
Бесконтактные. Индуктивные видят только металл (отлично для магнитных листов на стали), емкостные видят любую поверхность (включая стекло), но чувствительны к влажности и пыли.
BLTouch / CR-Touch / Micro-Switch:
Контактные. Физически касаются стола. Самые точные, работают на любом материале.
Тензодатчики (как на Bambu Lab или Prusa MK4):
Стол сам «стучит» по соплу. Идеальная точность.
Важное правило:
Перед любым построением карты стола всегда очищайте сопло от остатков пластика. Наплавившийся пластик исказит показания датчика на 0.1–0.3 мм, что приведет к «каше» на первом слое.
ЭТАП 1. Калибровка Z-Offset (Смещение по оси Z)
Это самый критичный шаг. Z-Offset — это разница по высоте между точкой срабатывания датчика и реальным кончиком сопла:
- Нагрейте стол до рабочей температуры (например, 60°C для PLA). Металл и стекло расширяются при нагреве, и карта, снятая «на холодную», будет врать.
- Домой (Home): Отправьте принтер в домашнюю позицию (
G28). - Режим калибровки:
- В Marlin: используйте команду
M851(или меню Configuration -> Advanced Settings -> Probe Z Offset). - В Klipper: используйте консольную команду
PROBE_CALIBRATE(для датчиков) илиZ_ENDSTOP_CALIBRATE(если концевик Z на столе).
- В Marlin: используйте команду
- Тест с бумагой: Подложите лист бумаги А4 под сопло. Опускайте Z-Offset с шагом 0.05 мм (а затем 0.01 мм), пока бумага не начнет проходить под соплом с легким, приятным сопротивлением (царапанием).
- Сохранение: Сохраните значение в память (
M500для Marlin,SAVE_CONFIGдля Klipper).
ЭТАП 2. Настройка прошивки (Сетка и алгоритмы)
Вам нужно задать принтеру границы, в которых он будет «щупать» стол, чтобы датчик не уехал за пределы стола или не ударился о клипсы.
Для Marlin (файл Configuration.h)
Рекомендуется использовать UBL (Unified Bed Leveling) вместо Bilinear, так как UBL умнее работает с границами и позволяет сохранять несколько профилей^
#define AUTO_BED_LEVELING_UBL // Включить UBL
#define GRID_MAX_POINTS_X 7 // Сетка 7х7 (49 точек) - золотой стандарт
#define GRID_MAX_POINTS_Y 7
// Ограничения зоны зондирования (учитывайте офсеты датчика XY!)
#define MESH_INSET 10 // Отступ от краев стола (например, 10 мм)
#define MIN_PROBE_EDGE 15 // Минимальный отступ, чтобы датчик не съехал
Для Klipper (файл printer.cfg)
В разделе [bed_mesh] укажите параметры:
[bed_mesh]
speed: 150 # Скорость перемещения между точками
horizontal_move_z: 5 # Высота подъема при переезде между точками
mesh_min: 20, 20 # Левый нижний угол зоны сканирования (X, Y)
mesh_max: 210, 210 # Правый верхний угол (для стола 235х235)
probe_count: 7, 7 # Сетка 7х7
algorithm: bicubic # Алгоритм сглаживания (bicubic лучше, чем lagrange для плотных сеток)
fade_start: 1.0 # С какого слоя начать сглаживать коррекцию
fade_end: 10.0 # На какой высоте полностью выключить коррекцию
ЭТАП 3. Процесс построения карты (Probing)
- Нагрейте стол и дайте ему «прогреться» 5–10 минут, чтобы компенсировать тепловое расширение.
- Очистите сопло.
- Запустите процесс:
- Marlin (UBL): В меню принтера выберите Motion -> UBL -> Step 1: Invalidate All (очистить старую), затем Step 2: Build Mesh. Принтер начнет опускать датчик в 49 точках.
- Marlin (обычный G-code): Отправьте
G28(домой), затемG29(запустить зондирование). - Klipper: Введите в консоль
BED_MESH_CALIBRATE.
- Визуализация:
- В Marlin результат можно посмотреть через меню UBL -> Output UBL Mesh или через хост (OctoPrint/Pronterface).
- В Klipper через Fluidd или Mainsail вы сразу увидите красивую 3D-карту с цветами (красный — бугры, синий — ямы).
ЭТАП 4. Сохранение и загрузка профиля
Принтер забывает карту после выключения. Ее нужно сохранить и научить слайсер ее подгружать:
- Marlin: После успешного
G29введитеM500(сохранить в EEPROM). - Klipper: После
BED_MESH_CALIBRATEвведитеSAVE_CONFIG. Профиль сохранится какdefault.
ЭТАП 5. Настройка Слайсера (Cura, OrcaSlicer, PrusaSlicer)
Слайсер должен знать, что принтеру нужно загрузить карту стола перед началом печати. Для этого правим Стартовый G-код (Start G-code).
В Marlin:
Найдите в слайсере раздел Printer Settings -> G-code -> Start G-code.
Добавьте команду M420 S1 (или G29, если вы хотите перестраивать карту перед каждой печатью, что занимает время) сразу после G28 (Home All).
Пример:
G28 ; Home all axes
M420 S1 Z2 ; Включить Bed Leveling State (с затуханием до 2 мм, опционально)
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
В Klipper:
В Klipper карта загружается отдельной командой.
Пример:
G28
BED_MESH_PROFILE LOAD="default" ; Загрузить сохраненную карту
# Или используйте адаптивную сетку (только для зоны печати модели):
# BED_MESH_CALIBRATE ADAPTIVE=1
ЭТАП 6. Концепция Fade Height (Высота затухания)
Это критически важный параметр, о котором многие забывают.
Суть:
Если ваш стол имеет форму «чаши» (провал в центре на 0.5 мм), принтер будет опускать сопло в центре. Но если он будет делать это на высоте 50 мм от стола, геометрия вашей модели исказится (деталь получится кривой или с неправильными размерами по осям XY).
Решение: Fade Height (Затухание).
- Как работает: Вы указываете прошивке, что на высоте, например, 10 мм (обычно это 5-10 слоев) коррекция стола должна плавно сойти на ноль. Выше 10 мм принтер печатает идеально ровно, игнорируя ямы на столе. Первый слой прилегает идеально, а крыша детали не перекашивается.
- В Marlin: Устанавливается через
M420 Z10(где 10 — высота в мм). - В Klipper: Настраивается в
printer.cfgпараметрамиfade_start: 1иfade_end: 10.
Частые проблемы и их решения (Troubleshooting)
- Карта получается «шумной» (резкие перепады высот между соседними точками):
- Причина: Люфт датчика (BLTouch часто люфтит в каретке), грязь на столе, магнитный лист лежит неровно.
- Решение: Закрепите датчик жестче (стяжки, термоклей), протрите стол изопропиловым спиртом.
- Первый слой в центре вдавливается в стол, а по краям висит в воздухе (при включенной карте):
- Причина: Снят Z-Offset на холодном столе, а печать идет на горячем. Или датчик "уплывает" от температуры.
- Решение: Калибруйте Z-Offset и снимайте карту ТОЛЬКО при разогретом до рабочей температуры столе (60°C для PLA, 80°C для PETG, 100°C для ABS).
- Сопло трет по столу при движении к точке зондирования:
- Причина: Параметр
horizontal_move_z(высота перемещения между пробами) слишком мал. - Решение: Увеличьте
horizontal_move_zдо 5 или 10 мм.
- Причина: Параметр
- Klipper выдает ошибку "Probe samples exceed tolerance":
- Причина: Датчик дает разные показания при повторном касании одной и той же точки.
- Решение: Увеличьте
sample_retract_distи проверьте механику (ремни, шкивы, люфты оси Z).
Чек-лист:
- Чистое сопло.
- Горячий стол (термическое расширение).
- Точный Z-Offset (с бумагой).
- Сетка минимум 5x5 (лучше 7x7).
- Включенный
M420 S1илиBED_MESH LOADв стартовом G-коде слайсера. - Настроенное Fade Height на 10 мм.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.