Подробный гайд по настройке BLTouch в Marlin: подключение, прошивка, точная калибровка Z-Offset

Подробный гайд по настройке BLTouch в Marlin: от подключения и прошивки до точной калибровки Z-Offset и автовыравнивания стола для идеального первого слоя.

2026.09.30                  


Подробный гайд по настройке BLTouch в Marlin: подключение, прошивка, точная калибровка Z-OffsetПодробный гайд по настройке BLTouch в Marlin: подключение, прошивка, точная калибровка Z-Offset Настройка BLTouch (и его аналогов, таких как 3DTouch, CRTouch) в прошивке Marlin — это процесс, требующий внимания к деталям. От правильности настроек зависит не только качество первого слоя, но и физическая целостность вашего принтера (чтобы сопло не врезалось в стол).


Шаг 1. Подготовка и проверка подключения

Прежде чем лезть в код, убедитесь, как подключен датчик:

  • Вариант А (Creality 5-pin): Подключен в специальный 5-контактный разъем на материнской плате (обычно там, где стоял концевик Z).
  • Вариант Б (Раздельное): Сервопривод (3 провода: 5V, GND, Signal) подключен в разъем SERVO0, а оптопара/триггер (2 провода: GND, Signal) подключена к пину Z_MIN.



Шаг 2. Базовая настройка датчика (Configuration.h)

Откройте файл Configuration.h и найдите раздел Probe settings (Настройки датчика).

1. Активация BLTouch:

Найдите строку и раскомментируйте ее (удалите // в начале):

    #define BLTOUCH

(Также убедитесь, что закомментированы другие типы датчиков, такие как FIX_MOUNTED_PROBE или INDUCTIVE_NOISE).


2. Использование датчика для парковки Z (Homing):

В современных версиях Marlin настоятельно рекомендуется парковать ось Z сразу по датчику, а не по штатному концевику (иначе ось Z будет проседать, и калибровка будет кривой).

Найдите и раскомментируйте:

    #define USE_PROBE_FOR_Z_HOMING

3. Настройка пинов (очень важно!):

Если датчик подключен в разъем Z-Min (Вариант Б) или штатный разъем 5-pin (Вариант А):

Найдите и раскомментируйте:

        #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

Если датчик подключен в отдельный пин (например, SERVO0 для щупа и отдельный пин Z_MIN_PROBE_PIN на плате):

Закомментируйте строку выше и найдите Z_MIN_PROBE_PIN, указав номер пина согласно схеме вашей материнской платы (например, #define Z_MIN_PROBE_PIN 32).


Шаг 3. Смещения датчика (NOZZLE_TO_PROBE_OFFSET)

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

Найдите строку:

#define NOZZLE_TO_PROBE_OFFSET { X, Y, Z }

X и Y:

Измерьте штангенциркулем расстояние от центра сопла до центра щупа.
* Если щуп слева от сопла, значение X будет отрицательным (например, -40).
* Если щуп спереди от сопла, значение Y будет отрицательным (например, -10).
* Пример: #define NOZZLE_TO_PROBE_OFFSET { -44, -6, 0 }

Z:

На этом этапе всегда ставьте 0 или грубое значение (например, -1.0). Точное Z-смещение мы настроим позже через G-код (живой тест).


Шаг 4. Безопасная парковка и границы стола

1. Z_SAFE_HOMING (Безопасная парковка Z):

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

    #define Z_SAFE_HOMING
    #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X центр стола
    #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y центр стола

2. Границы промера (PROBING_MARGIN):

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

    #define PROBING_MARGIN 15 // Отступ 10-15 мм от краев стола

Шаг 5. Выбор типа автовыравнивания (Bed Leveling)

В разделе @section bed leveling выберите ОДИН из методов.

Для BLTouch обычно используют два:

Вариант 1: BILINEAR (Билинейное - для новичков)

Создает сетку и интерполирует значения между точками.

#define AUTO_BED_LEVELING_BILINEAR

Вариант 2: UBL (Unified Bed Leveling - для продвинутых)

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

#define AUTO_BED_LEVELING_UBL

Настройки сетки (для BILINEAR и UBL):

#define GRID_MAX_POINTS_X 5 // 5 точек по X (итого 25 точек)
#define GRID_MAX_POINTS_Y 5 // 5 точек по Y

Если у вас мощный процессор платы (STM32), можно ставить 7x7. На слабых платах (ATmega1284p, 8-bit) лучше оставить 4x4 или 5x5, иначе компиляция выдаст ошибку нехватки памяти.




Важно:

Раскомментируйте следующие опции для корректной работы:

#define EXTRAPOLATE_BEYOND_GRID // Экстраполяция за пределами сетки
#define RESTORE_LEVELING_AFTER_G28 // Сохранять сетку после парковки

Шаг 6. Расширенные настройки (Configuration_adv.h)

Откройте Configuration_adv.h и найдите секцию BLTouch:

1. Задержка срабатывания:

    #define BLTOUCH_DELAY 500 // 500 мс задержка перед опусканием щупа (чтобы вибрации улеглись)

2. Скоростной режим (High Speed):

Если у вас оригинальный BLTouch 3.1 или качественный аналог (CRTouch), раскомментируйте:

    #define BLTOUCH_HS_MODE true

3. Бэбистеппинг (Babystepping - подстройка Z-офсета во время печати с экрана):

Найдите и включите:

    #define BABYSTEPPING
    #define BABYSTEP_INVERT_Z false
    #define BABYSTEP_MULTIPLICATOR_Z 4 // Чувствительность крутилки

Шаг 7. Компиляция и прошивка

Скомпилируйте прошивку (через Arduino IDE или PlatformIO в Visual Studio Code) и залейте её на материнскую плату.


ВНИМАНИЕ!

Перед первым запуском держите руку на кнопке выключения питания. Если вы неверно указали пины или смещения, принтер может попытаться опустить сопло сквозь стекло.


Шаг 8. Живая калибровка Z-Offset (через G-код)

Вам понадобится программа для связи с принтером (Pronterface, OctoPrint или экран самого принтера с поддержкой G-code).

  1. Очистите старые настройки: Отправьте команду M502 (сброс к дефолтам EEPROM) и затем M500 (сохранить).
  2. Запаркуйте принтер: Отправьте G28. Щуп должен выдвинуться, принтер доедет до центра стола и опустится до срабатывания щупа.
  3. Отключите моторы: Отправьте M84, чтобы крутить моторы рукой (или через меню).
  4. Настройка Z-Offset (Тест с листом бумаги):
    • Медленно опускайте ось Z (через меню Move Axis -> Move 0.1mm), пока между соплом и столом не будет с усилием проходить лист бумаги А4.
    • Посмотрите на экране, на какой высоте остановилось сопло (например, Z = -1.25).
    • Введите команду: M851 Z-1.25 (подставьте свое значение!).
    • Сохраните в память: M500.
  5. Проверка: Снова отправьте G28, затем опустите ось Z на 0 (G1 Z0). Лист бумаги должен идеально проходить под соплом.

Шаг 9. Проверка точности датчика (Repeatability Test)

Отправьте команду:

M48

Принтер начнет щупать одну и ту же точку 10 раз. В конце он выдаст отчет: Mean: -1.250 Min: -1.255 Max: -1.245.

Если разброс (Min/Max) больше 0.05 мм, значит:

  • Плохо закреплен щуп (люфтит).
  • Сопло касается стола и датчик срабатывает от вибрации.
  • Магнитные помехи от проводов моторов (нужно экранирование).

Шаг 10. Настройка Слайсера (Cura / PrusaSlicer / OrcaSlicer)

Чтобы сетка строилась перед каждой печатью, добавьте в Start G-Code (Стартовый G-код) следующие команды после нагрева стола и сопла, но перед печатью юбки:

Если вы использовали AUTO_BED_LEVELING_BILINEAR:

G28          ; Парковка всех осей
G29          ; Запуск процесса автовыравнивания (строит сетку)

Если вы использовали UBL (Unified Bed Leveling):

G28          ; Парковка всех осей
G29 L        ; Загрузить ранее сохраненную сетку из памяти (экономит время)
; ИЛИ G29 J  ; Сделать 3 точки для наклона сетки (если стол сдвинулся)
G29 A        ; Активировать UBL

Частые проблемы и их решения:

* Ошибка Probing failed / out of bounds:

Указаны неверные смещения X и Y в `NOZZLE_TO_PROBE_OFFSET`. Прошивка думает, что щуп находится за пределами стола. Проверьте знаки (+ и -).

* Сопло бьет по стеклу при парковке:

Не включен `USE_PROBE_FOR_Z_HOMING`, или Z-Offset установлен в слишком большое положительное значение.


* Сопло слишком высоко (не давит филамент):

Z-Offset (M851) слишком сильно уходит в минус. Используйте Бэбистеппинг (Babystepping) на экране во время печати первого слоя, чтобы подтянуть стол ближе к соплу, и затем сохраните результат командой `M500` (или `M420 V` для проверки статуса).

* BLTouch мигает красным и не убирает щуп:

Сработала защита от заклинивания. Щуп физически за что-то цепляется внутри корпуса. Проверьте монтаж.

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


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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