Ошибка «probe triggered prior to movement» в Klipper прерывает команду PROBE, BED_MESH или Z_TILT_ADJUST, потому что датчик выравнивания оказался в сработавшем состоянии ещё до того, как сопло начало опускаться к столу. Чаще всего виноваты не прошивка и не сами параметры, а зависший штифт BLTouch, неверно подключённый сигнальный провод или слишком большое расстояние между индуктивным датчиком и столом.
Разберём, что именно проверяет Klipper в момент этой ошибки, как безопасно локализовать причину и какие параметры в printer.cfg влияют на поведение пробника. Инструкция подходит для BLTouch, CR Touch, индуктивных и кнопочных датчиков, но конкретные распиновки разъёмов зависят от вашей платы — сверяйтесь с её схемой.
Что означает эта ошибка на техническом уровне
Перед каждым опусканием оси Z к точке измерения Klipper запрашивает состояние пина датчика. Если пин уже сообщает «сработано» (triggered), дальнейшее движение бессмысленно и опасно: сопло просто врежется в стол, ведь конечная точка уже якобы достигнута. Прошивка останавливает операцию и выводит сообщение «Probe triggered prior to movement» — это защитный механизм, а не сбой.
Важно понимать: датчик может быть «сработавшим» как физически (штифт зажат, контакт замкнут), так и логически — например, из-за инверсии сигнала в конфиге. Во втором случае пробник вполне исправен, просто Klipper трактует его состояние наоборот.
Ошибка означает, что Klipper видит датчик уже сработавшим до начала опускания оси Z. Это защита от удара сопла о стол, а не неисправность сама по себе.
Быстрая диагностика: проверка состояния датчика
Первый шаг — узнать, как Klipper видит пробник прямо сейчас. Для этого в консоли (в Mainsail или Fluidd) выполните команду:
QUERY_PROBE
Ответ probe: TRIGGERED при поднятом штифте и сопле далеко от стола подтверждает проблему: датчик сработал, хотя не должен. Ответ probe: open означает, что в момент запроса всё в порядке, и ошибка возникает из-за логики команды — например, штифт BLTouch не успевает опуститься.
Дополнительно проверьте вручную: поднесите к индуктивному датчику металлический предмет или нажмите штифт кнопочного проба и повторите QUERY_PROBE. Состояние должно меняться. Если оно не меняется вообще — проблема в проводке, распиновке или самом датчике.
☑️ Быстрая диагностика пробника
Типичные причины по типам датчиков
У разных пробников свои характерные источники этой ошибки. Ниже — наиболее частые сценарии, с которых стоит начинать проверку.
- 🔧 BLTouch / CR Touch: штифт застрял в поднятом положении из-за грязи, намагниченности сердечника или механического повреждения.
- 🔌 Индуктивный датчик: расстояние до стола слишком мало — датчик «видит» стол уже в исходной позиции.
- ⚡ Любой датчик: перепутаны сигнальный и земляной провода, плохой контакт в разъёме, обрыв кабеля у каретки из-за перегибов.
- ⚙️ Конфигурация: неверная инверсия пина (символ
!или^в параметреpin) в секции[probe]или[bltouch]. - 📍 Геометрия: пробник установлен ниже уровня сопла и упирается в стол раньше времени.
⚠️ Внимание: перед любыми тестами с опусканием оси Z убедитесь, что стол свободен, а сопло не находится вплотную к поверхности. Держите руку на кнопке аварийного отключения или будьте готовы выключить принтер, если движение пойдёт не так.
Решение для BLTouch и CR Touch
С сервоприводными датчиками начните с самотеста. Выполните в консоли последовательно:
BLTOUCH_DEBUG COMMAND=pin_down
QUERY_PROBE
BLTOUCH_DEBUG COMMAND=pin_up
Если штифт не опускается или не поднимается по командам — причина механическая или электрическая. Возможные действия: аккуратно выкрутить винт на верхней части корпуса BLTouch, извлечь штифт, очистить его и проверить намагниченность сердечника. Известная особенность этих датчиков — сердечник со временем намагничивается, и штифт начинает «прилипать». Помогает размагничивание или замена штифта.
Если штифт двигается нормально, но QUERY_PROBE при опущенном штифте показывает TRIGGERED, а при поднятом — open (или наоборот), проверьте логику пина. В секции [bltouch] параметр sensor_pin может требовать инверсии — добавьте или уберите символ ! перед именем пина, например sensor_pin: ^!PC14. Точное имя пина зависит от вашей платы, его нужно брать из конфигурации производителя.
Решение для индуктивных и кнопочных датчиков
Индуктивные пробники срабатывают на расстоянии, поэтому главная причина ошибки — датчик уже «видит» стол в стартовой позиции. Проверьте высоту монтажа: нижняя кромка датчика должна быть выше сопла, но в пределах рабочего хода, указанного в документации конкретной модели датчика. Если датчик опущен слишком низко, приподнимите его на кронштейне и повторите тест.
Для кнопочных датчиков и систем типа Klicky типичны две проблемы: залипание микровыключателя и наводки на длинный неэкранированный провод. Второе проявляется как случайные срабатывания при движении моторов. Помогает замена кабеля на витую пару и программное подавление дребезга — если ваша версия конфигурации это поддерживает.
Если ошибка появляется нестабильно — то есть команда PROBE срабатывает через раз — почти наверняка дело в контакте разъёма или переломе провода у подвижной каретки. Пошевелите кабель при выполненном QUERY_PROBE и следите за сменой состояния.
Проверка конфигурации printer.cfg
Ошибку нередко вызывает сама конфигурация. Откройте printer.cfg и сверьте ключевые параметры секции датчика:
| Параметр | Что проверить | Типичная ошибка |
|---|---|---|
pin / sensor_pin | Правильный пин платы и инверсия | Лишний или пропущенный символ ! |
x_offset, y_offset | Смещение датчика относительно сопла | Неверный знак — пробник уезжает за край стола |
z_offset | Не влияет на эту ошибку напрямую | Путают с причиной — калибруется позже |
speed / lift_speed | Скорость опускания при пробе | Слишком быстро — штифт не успевает сработать корректно |
samples, samples_result | Количество повторных измерений | Маскирует нестабильный датчик вместо ремонта |
После любого изменения конфига выполните RESTART и снова проверьте QUERY_PROBE. Меняйте параметры по одному — иначе не поймёте, что именно помогло.
Почему ошибка возникает только при BED_MESH, но не при PROBE
При построении сетки стола пробник перемещается между точками с поднятым штифтом. Если штифт не успевает подняться или датчик цепляется за неровность стола при переезде, следующая точка начинается с уже сработавшим датчиком. Попробуйте увеличить высоту подъёма между точками (параметр horizontal_move_z в [bed_mesh]) и снизить скорость перемещения.
Когда проблема в железе, а не в настройках
Если программные проверки исчерпаны, а QUERY_PROBE стабильно показывает неверное состояние, остаётся аппаратная часть. Обратите внимание на следующие признаки:
- 🔍 Датчик не реагирует на ручное срабатывание вообще — вероятен обрыв, неисправность самого датчика или неверная распиновка разъёма на плате.
- 🔥 Состояние меняется хаотично при движении осей — наводки или перелом жилы в кабеле около цепи кабель-канала.
- 🧲 Штифт BLTouch опускается с трудом или «прилипает» — намагниченный сердечник, нужна чистка или замена штифта.
- 💡 Индикатор на датчике (если есть) светится постоянно — датчик либо неисправен, либо постоянно «видит» металл рядом с собой.
⚠️ Внимание: при переподключении разъёмов датчика всегда отключайте питание принтера. Замыкание сигнального провода на питающий контакт «на горячую» может вывести из строя вход микроконтроллера на плате.
Точную распиновку разъёма под датчик берите из схемы вашей платы — у разных производителей порядок контактов отличается, и «стандартного» подключения не существует. Если датчик куплен отдельно, сверяйте цвета проводов с его документацией, а не с чужими фото подключения.
Порядок диагностики всегда один: QUERY_PROBE → ручное срабатывание → команды штифта (для BLTouch) → конфиг → проводка. В большинстве случаев причина находится на первых трёх шагах.
Часто задаваемые вопросы
Ошибка появляется сразу при команде G28 (парковка). Это то же самое?
Да, если парковка по Z выполняется пробником. Klipper проверяет состояние датчика перед опусканием так же, как при PROBE. Диагностика идентична: начните с QUERY_PROBE и проверки штифта или расстояния до стола.
Можно ли просто отключить эту проверку в конфиге?
Штатной опции отключения защиты нет, и обходить её не стоит: проверка предотвращает удар сопла о стол, который может повредить сопло, покрытие стола и механику оси Z. Правильный путь — устранить причину ложного срабатывания.
BLTouch мигает красным и выдаёт эту ошибку. Что это значит?
Мигание индикатора обычно означает аварийное состояние датчика — штифт не смог выполнить команду. Выполните BLTOUCH_DEBUG COMMAND=reset, затем проверьте свободный ход штифта. Если ошибка возвращается, вероятна намагниченность сердечника или механическое повреждение.
Ошибка возникает только на первом измерении, повторные проходят нормально. Почему?
Типичный признак того, что штифт не успевает опуститься или датчик «просыпается» с задержкой после включения. Попробуйте перед командой измерения вручную выполнить опускание и подъём штифта, а также проверьте питание датчика — просадки напряжения дают похожий эффект.
После замены платы появилась эта ошибка, хотя конфиг тот же. В чём дело?
Имена пинов у разных плат различаются, и старый конфиг может ссылаться на несуществующий или неверный контакт. Возьмите шаблон конфигурации именно для новой платы из официального репозитория Klipper и перенесите в него свои механические параметры — offsets, шаги, габариты.