Подробный гайд по настройке Z-щупа в Marlin 1.1.9 - Часть 1

Подробный гайд по настройке Z-щупа в Marlin 1.1.9. Настройка пинов, инверсии, смещений, калибровка Z-offset, BLTouch и автовыравнивание стола.

2026.11.07                  


Подробный гайд по настройке Z-щупа в Marlin 1.1.9 - Часть 1Подробный гайд по настройке Z-щупа в Marlin 1.1.9 - Часть 1

1. Что такое Z-щуп и зачем он нужен

Z-щуп (Z probe) — это датчик, который определяет расстояние от сопла до стола или момент касания стола.


Используется для:

  • автоматической компенсации кривизны стола (G29, AUTO_BED_LEVELING);
  • точной установки нуля по оси Z;
  • калибровки первого слоя;
  • работы с датчиками: механический концевик, индуктивный/ёмкостный датчик, BLTouch, сервоприводный щуп и т.д.

В Marlin 1.1.9 вся основная настройка выполняется в файле Configuration.h, частично в Configuration_adv.h и в файлах пинов pins_*.h.




2. Подключение и выбор пина

2.1. Куда подключается щуп

В большинстве плат есть входы:

  • Z_MIN
  • Z_MAX
  • отдельный Z_PROBE (не на всех платах)
  • SERVO0 — для сервопривода/BLTouch

Чаще всего щуп подключают к Z_MIN.


Пример для платы RAMPS 1.4 / Arduino Mega 2560:

#define Z_MIN_PIN   18
#define Z_MAX_PIN   19
#define SERVO0_PIN  11

Точные пины для вашей платы смотрите в файле:

Marlin/pins_ваша_плата.h

Например:

  • pins_RAMPS.h
  • pins_MKS_GEN_13.h
  • pins_AZTEEG_X3_PRO.h
  • pins_MELZI.h
  • pins_SANGUINOLOLU.h

2.2. Если щуп подключён к Z_MIN

Это самый распространённый вариант.

В Configuration.h нужно раскомментировать:

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

Это говорит Marlin, что щуп использует вход Z_MIN.


2.3. Если щуп подключён к Z_MAX

В старых версиях иногда использовали:

#define Z_MIN_PROBE_USES_Z_MAX_ENDSTOP_PIN

Но в зависимости от версии 1.1.9 и набора пинов этот вариант может быть недоступен. Более универсально — оставить щуп на Z_MIN, если это возможно.

Если щуп всё же на Z_MAX, проверьте в Configuration.h наличие/отсутствие:

#define USE_ZMAX_PLUG

и убедитесь, что в файле пинов вашей платы корректно определён Z_MAX_PIN.


2.4. Подключение индуктивного или ёмкостного датчика

Обычно у датчика три провода:

  • коричневый / чёрный — GND
  • синий / красный — питание, часто 6–36 В
  • чёрный / жёлтый / белый — сигнал

Важно: если датчик питается от 12 В или 24 В, а вход платы рассчитан на 5 В, то сигнальный провод нельзя подключать напрямую.


Нужен делитель напряжения, например:

  • для 12 В: 1 кОм от сигнала к входу платы, 2 кОм от входа платы к GND;
  • для 24 В: лучше использовать оптопару или более точный делитель.

Иначе можно повредить вход микроконтроллера.


2.5. Подключение BLTouch

У BLTouch обычно есть:

  • три провода для управления сервоприводом:
    • сигнальный провод;
    • 5 В;
    • GND;
  • два провода датчика:
    • чёрный;
    • белый.

Типовое подключение на RAMPS:

  • серво-часть → SERVO0;
  • провода датчика → Z_MIN;
  • питание и GND → 5 В и GND платы.

В прошивке включается поддержка:

#define BLTOUCH

3. Основные настройки в Configuration.h

Откройте файл:

Marlin/Configuration.h

Найдите секцию:

//===========================================================================
//============================= Z Probe Options =============================
//===========================================================================

4. Выбор типа щупа

4.1. Фиксированный щуп

Если датчик закреплён неподвижно и всегда опущен — используйте:

#define FIX_MOUNTED_PROBE

Подходит для:

  • механического микрика;
  • индуктивного датчика;
  • ёмкостного датчика;
  • фиксированного сопла-щупа.

Пример:

#define FIX_MOUNTED_PROBE

4.2. Сервоприводный щуп

Если щуп на сервоприводе и поднимается/опускается по команде:

#define Z_ENDSTOP_SERVO_NR 0
#define Z_SERVO_ANGLES {70, 0}

Где:

  • первое значение — угол поднятого щупа;
  • второе значение — угол опущенного щупа.

Подбирать нужно под ваш сервопривод.


Например:

#define Z_ENDSTOP_SERVO_NR 0
#define Z_SERVO_ANGLES {90, 0}

Иногда используют:

#define DEACTIVATE_SERVOS_AFTER_MOVE

чтобы сервопривод не держал нагрузку постоянно.


4.3. Настройка BLTouch

Для BLTouch в Configuration.h:

#define BLTOUCH

Дополнительно можно задать задержку:

#define BLTOUCH_DELAY 500

Для старых контроллеров и нестабильного отклика лучше ставить:

#define BLTOUCH_DELAY 500

или даже:

#define BLTOUCH_DELAY 700

Если BLTouch подключён к servo-выходу, убедитесь, что пин сервопривода определён правильно.



Проверить работу BLTouch можно командами:

M280 P0 S10    ; выдвинуть щуп
M280 P0 S90    ; убрать щуп
M280 P0 S160   ; сброс/тест

На разных платах и версиях Marlin углы могут немного отличаться.


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


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

Комментарии

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