Настройка BLTouch в Marlin 2.1: от прошивки до первого слоя

Интеграция датчика автоматического выравнивания стола BLTouch в прошивку Marlin 2.1 — это ключевой этап модернизации любого FDM 3D-принтера. Правильная конфигурация позволяет компенсировать неровности платформы и забыть о ручной подкрутке винтов перед каждым запуском печати. Однако процесс настройки требует внимательности к деталям, так как малейшая ошибка в параметрах может привести к столкновению сопла со столом или некорректному первому слою.

В этой статье мы детально разберем все этапы: от изменения конфигурационных файлов до финальной калибровки смещения по оси Z. Особое внимание будет уделено новым функциям и изменениям в синтаксисе, которые появились в версии Marlin 2.1 по сравнению с предыдущими релизами. Вы узнаете, как активировать необходимые модули, настроить пины и провести точную настройку Z-offset для идеального прилипания пластика.

Подготовка конфигурационных файлов и активация модулей

Первым шагом является получение актуальной исходной кода прошивки. Скачайте последнюю стабильную версию Marlin 2.1.x с официального репозитория GitHub. После распаковки архива откройте папку Marlin и найдите два основных файла конфигурации: Configuration.h и Configuration_adv.h. Именно в них сосредоточены все настройки оборудования.

Для активации поддержки BLTouch необходимо раскомментировать соответствующие директивы в файле Configuration.h. Найдите строку #define BLTOUCH и удалите символы комментария в начале строки. Это сообщит компилятору о необходимости включить драйвер для управления сервоприводом датчика. Также убедитесь, что выбран правильный тип зонда, если у вас используется его модификация, например, 3D Touch.

Далее следует проверить настройки количества экстраудеров и типа кровати. В Marlin 2.1 логика определения типа кровати стала строже. Убедитесь, что определена константа #define CUSTOM_MENUS, если вы планируете использовать расширенное меню для калибровки через экран. Без этого некоторые пункты в интерфейсе могут быть недоступны, что усложнит первичную настройку.

Не забудьте проверить назначение пинов. В большинстве современных плат, таких как SKR Mini E3 или BigTreeTech, пины уже предопределены, но для кастомных сборок может потребоваться ручное указание в файле pins_MYBOARD.h. Ошибка в назначении пина SERVO0_PIN приведет к тому, что датчик просто не будет реагировать на команды развертывания.

Настройка параметров выравнивания и сетки probing

После активации самого датчика необходимо настроить алгоритм, который будет использовать полученные данные. В Marlin 2.1 основным методом является Unified Bed Leveling (UBL) или упрощенный Auto Bed Leveling (ABL) с методом BILINEAR. Для большинства пользователей bilinear-сетка является оптимальным балансом между скоростью и точностью.

В файле Configuration.h найдите секцию Auto Bed Leveling. Раскомментируйте строку #define AUTO_BED_LEVELING_BILINEAR. Здесь же задаются параметры сетки probing. Ключевым параметром является GRID_MAX_POINTS_X, который определяет количество точек измерения по оси X. Значение по умолчанию обычно равно 3 или 5, но для более точной компенсации кривизны стола можно увеличить его до 7 или 9.

⚠️ Внимание: Увеличение количества точек сетки значительно замедляет процесс автовыравнивания. Для быстрых повседневных печатей значение 5x5 часто является избыточным, достаточно 3x3 или 4x4.

Важно настроить границы области сканирования, чтобы сопло не ударилось о зажимы стола или винты. Параметры LEFT_PROBE_BED_POSITION, RIGHT_PROBE_BED_POSITION, FRONT_PROBE_BED_POSITION и BACK_PROBE_BED_POSITION ограничивают зону, в которой будет работать BLTouch. Значения указываются в миллиметрах от центра стола (0,0) или от левого нижнего угла, в зависимости от настройки HOMING_ORIGIN.

Разница между MESH и BILINEAR

MESH создает полноценную 3D-карту поверхности и позволяет компенсировать сильные искривления, в то время как BILINEAR строит упрощенную модель, достаточную для небольших неровностей.

Также стоит обратить внимание на скорость перемещения зонда. Параметр XY_PROBE_FEEDRATE задает скорость движения между точками измерения. Слишком высокая скорость может вызвать пропуск шагов моторами, что исказит карту высот. Оптимальным значением считается 4000-5000 мм/мин для стандартных принтеров.

Конфигурация пинов и электрическая схема подключения

Правильное подключение BLTouch критически важно для его работы. Датчик имеет 5 проводов: красный и черный (питание 5В), коричневый (земля сигнала), оранжевый (сигнал управления серво) и желтый (сигнал датчика Z-min). В прошивке Marlin 2.1 необходимо убедиться, что логика управления соответствует вашей плате.

В файле Configuration.h проверьте параметр #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN. Если ваш датчик подключен в разъем Z-STOP, эта опция должна быть активна. Если же вы используете отдельный разъем Z-PROBE (что часто встречается на платах с поддержкой BLTouch "из коробки"), эту опцию нужно закомментировать, а в файле пинов убедиться, что Z_MIN_PROBE_PIN назначен корректно.

Цвет провода BLTouch Назначение Подключение на плате Настройка в Marlin
Красный Питание +5В Pin 5V Не требуется
Черный Земля (GND) Pin GND Не требуется
Коричневый Сигнал GND Pin GND (сигнальный) Не требуется
Оранжевый Серво сигнал SERVO0_PIN Автоматически
Желтый Сигнал Z-мин Z_MIN_PIN или Z_PROBE Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

Особое внимание уделите напряжению питания. BLTouch требует стабильные 5 вольт. Подключение к 12В или 24В мгновенно выведет датчик из строя. Если на вашей плате нет отдельного выхода 5В с достаточным током, используйте внешний стабилизатор или подключите питание от разъема экрана, если это допустимо конструктивно.

📊 Какая материнская плата установлена в вашем принтере?
Ender 3 Stock (Melzi)
SKR Mini E3 V2/V3
BigTreeTech SKR
Creality 4.2.2/4.2.7
Другая

Компиляция прошивки и загрузка в контроллер

После внесения всех изменений в конфигурационные файлы необходимо скомпилировать прошивку. Для этого удобнее всего использовать среду PlatformIO в редакторе VS Code. Откройте папку с проектом Marlin, выберите вашу плату в файле platformio.ini (секция [env:YOUR_BOARD]) и запустите задачу PlatformIO: Build.

В процессе компиляции внимательно следите за окном вывода. Ошибки часто указывают на синтаксические недочеты в файлах .h, например, незакрытые кавычки или опечатки в названиях макросов. Если компиляция прошла успешно, в папке .pio/build/YOUR_BOARD появится файл прошивки с расширением .bin.

Загрузка прошивки зависит от типа вашего загрузчика. Для плат с SD-картой (например, SKR Mini) достаточно скопировать файл firmware.bin на пустую карту формата FAT32, вставить её в слот на плате и перезагрузить принтер. Индикатор на плате начнет мигать, сигнализируя о процессе перепрошивки. После завершения файл на карте может переименоваться или исчезнуть.

⚠️ Внимание: Никогда не выключайте питание принтера во время мигания индикатора прошивки. Прерывание процесса записи может "окирпичить" контроллер, потребовав восстановления через ISP-программатор.

Для плат без поддержки загрузки через SD (например, старые Melzi) потребуется подключение через USB и использование утилиты XLoader или встроенного загрузчика Arduino. Убедитесь, что выбран правильный порт COM и скорость передачи данных (обычно 115200 или 250000 бод).

Первичная калибровка и настройка Z-offset

После успешной загрузки новой прошивки принтер готов к калибровке. Первый запуск лучше проводить без филамента, чтобы исключить риск засорения сопла при тестовых движениях. Подключитесь к принтеру через терминал (например, Pronterface или консоль в Cura) или используйте экран управления.

Ключевым параметром является Z-offset — расстояние между срабатыванием датчика и реальным положением сопла относительно стола. Чтобы настроить его, выполните команду автохоминга G28, затем опустите зонд командой M280 P0 S10 (развернуть) и подведите сопло к столу. Используйте команду M851 Z-1.5 (значение примерное) для установки начального смещения.

☑️ Чек-лист первичной калибровки

Выполнено: 0 / 5

Процесс точной настройки выглядит так: подложите лист бумаги между соплом и столом. Двигайте ось Z с шагом 0.1 мм, пока не почувствуете легкое трение бумаги. Затем уменьшите шаг до 0.01 мм для финишной регулировки. Как только бумага начнет двигаться с ощутимым сопротивлением, но не порвется, значение на экране (или в терминале) является вашим идеальным Z-offset.

Не забудьте сохранить настройки в энергонезависимую память командой M500. Без этой команды все изменения сбросятся после выключения питания. В Marlin 2.1 также полезно включить функцию BABYSTEPPING, которая позволяет корректировать высоту первого слоя прямо во время печати через меню принтера.

Тестирование автовыравнивания и устранение ошибок

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

Если в процессе появляются ошибки, такие как "Probe Failed" или принтер начинает двигаться в хаотичном порядке, проверьте логику инвертирования конца хода. Команда M119 показывает состояние концевиков. При нажатии на щуп статус z_min должен меняться с open на TRIGGERED. Если статус не меняется или меняется наоборот, проверьте параметр #define Z_MIN_PROBE_ENDSTOP_INVERTING в конфигурации.

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

⚠️ Внимание: Если щуп срабатывает преждевременно (до касания стола), возможно, сопло слишком близко к поверхности или на щупе есть налипший пластик. Очистите иглу датчика спиртом.

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

Что делать, если BLTouch мигает красным 5 раз?

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

Почему BLTouch не развертывается при команде G28?

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

Как часто нужно делать автовыравнивание G29?

При использовании UBL достаточно создать одну качественную сетку и сохранить её. Корректировать нужно только Z-offset при смене сопла или поверхности стола. Для обычного BILINEAR рекомендуется запускать G29 перед каждой печатью.

Можно ли использовать BLTouch с нагреваемым столом 100°C?

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

В чем разница между Marlin 2.0 и 2.1 для настройки BLTouch?

В версии 2.1 улучшена обработка ошибок зонда и добавлена более гибкая настройка задержек срабатывания. Также изменена структура некоторых меню, но основные команды G-кода (G28, G29, M851) остались совместимыми.

Принтер пишет "Homing failed", что делать?

Проверьте, не сработал ли концевик оси Z до начала движения. Возможно, сопло опустилось слишком низко при парковке. Также проверьте команду M119 — если концевик постоянно в статусе TRIGGERED, проверьте проводку на замыкание.