Eddy current probe в Klipper: где он быстрее BLTouch и почему Z-home требует отдельной логики - Блог Папы Карло

Опубликовано: 4 месяца назад
Просмотров: 140

Привет. Я тут в своей мастерской опять ковырял Klipper и очередной раз убедился: eddy current probe — штука очень бодрая, но понимать её надо не как «BLTouch, только моднее», а как совсем другой инструмент. Если коротко по делу, то такой датчик реально выигрывает у BLTouch на сканировании стола, adaptive mesh и частых перекалибровках. А вот с точным G28 Z история у него отдельная, потому что нынешняя логика homing в Klipper исторически выросла вокруг обычного концевика.

Ниже я покажу, где eddy probe даёт заметный буст по времени, почему первый слой иногда уезжает именно после home, а не после mesh, и как я бы это настраивал на живом принтере: с safe_z_home, калибровкой, macro для корректировки Z и нормальным чек-листом перед печатью.

Если у тебя уже стоит Klipper и ты выбираешь между BLTouch и eddy current probe, то главный вывод такой: для карты стола eddy почти всегда веселее, для простого и предсказуемого Z-home BLTouch пока понятнее. Особенно если нужен режим «поставил и поехал», а не вечер с терминалом и тестами.

Содержание:

Где eddy current probe реально обгоняет BLTouch

Самый жирный плюс eddy current probe в Klipper — это не «волшебная точность», а скорость сбора данных по столу. BLTouch физически работает штифтом: приехал в точку, опустил пин, поймал касание, поднял, поехал дальше. Даже если включить multi-probing и не убирать штифт после каждого тыка, он всё равно живёт в логике «точка — касание — отъезд». Eddy работает иначе: он измеряет расстояние до металлической поверхности по изменению сигнала катушки и умеет сканировать поверхность почти непрерывно.

Вот где это чувствуется сразу:

  • на больших столах, где mesh 7×7, 9×9 и выше;
  • на принтерах, где ты часто гоняешь adaptive bed mesh перед печатью;
  • когда нужен быстрый пересъём сетки после прогрева;
  • когда используешь METHOD=scan или METHOD=rapid_scan и не хочешь смотреть, как голова полвечера тычется по точкам.

На CoreXY с нормальной кинематикой это видно особенно хорошо: голова идёт плавно, не устраивает постоянные прыжки по Z, и bed mesh собирается заметно бодрее. На больших листах это уже минуты экономии за серию печатей.

Но тут есть важный момент: быстрее не значит всегда лучше в любой задаче. Для плотной сетки на тонком первом слое rapid_scan может притянуть немного шумов. Поэтому eddy хорош там, где важен баланс между скоростью и повторяемостью, а не погоня за цифрой ради самой цифры. Если стол заметно кривой или есть сильный перекос портала, никакой модный датчик это не вылечит. На эту тему у тебя на сайте уже есть хороший материал про ограничения Bed Mesh при перекосах стола и портала — вот его реально стоит держать рядом.

Сценарий Eddy current probe BLTouch
Быстрый bed mesh на большом столе Сильная сторона, особенно с scan и rapid_scan Работает, но заметно медленнее
Обычный домашний принтер с нечастой калибровкой Есть смысл, если любишь тонкую настройку Проще и предсказуемее
Неметаллическая поверхность или сомнительный стол Может не подойти по физике работы Обычно универсальнее
Точный Z-home в текущем mainline Klipper Требует отдельной логики и макросов Понятный привычный сценарий

Ещё один плюс: eddy ускоряет не только сам mesh, но и всю диагностику. Быстрее переснял карту, быстрее понял, что меняется после прогрева, и быстрее отловил источник косяка.

Индуктивный датчик сканирует металлический стол 3D-принтера

Почему Z-home для eddy — отдельная история

А вот теперь начинается самое интересное. В Klipper probing и homing — это не одно и то же. Для обычного концевика или BLTouch такая разница не так бросается в глаза: система делает движение до срабатывания, откатывается, повторяет и считает, что поймала понятную точку. Для eddy current probe этот сценарий уже не такой удобный, потому что сам датчик не «щёлкает» как концевик, а выдаёт поток измерений расстояния.

Именно поэтому текущая документация Klipper прямо предупреждает: eddy current probe умеет точно делать PROBE, но не считается датчиком для точного G28 Z. Человеческим языком это значит вот что: при probing Klipper успевает правильно обработать измерение и посчитать реальную позицию, а при homing у нынешней логики есть офсетная ошибка. Отсюда и все эти истории на форумах, когда mesh красивый, а первый слой после home всё равно «то давит, то висит».

Почему так происходит на практике? Потому что код homing в Klipper долгие годы был заточен под модель «двигаемся до триггера endstop». А eddy живёт лучше в схеме, где после остановки нужно ещё обработать данные датчика как полноценное измерение. Разработчики Klipper это сами обсуждали: для eddy и load cell нужен другой подход, где логика homing не притворяется обычным концевиком, а использует именно probe-путь.

Вот почему у eddy current probe так часто всплывают три обязательных слова: safe_z_home, homing correction и стабильная температура.

  • safe_z_home нужен, чтобы home по Z шёл в известной точке стола, а не где попало у края;
  • коррекция после probing нужна, чтобы перезагрузить кинематическую позицию по реальному измерению;
  • стабильная температура нужна, потому что индуктивные датчики ловят thermal drift и на холодном столе могут показать не то же самое, что на прогретом.

Поэтому сценарий «включил как BLTouch и забыл» тут не катит. С eddy логика обычно такая: home в безопасной точке, затем отдельный PROBE или macro, который подтягивает Z к фактическому измерению. В документации Klipper даже приводится макрос с идеей SET_Z_FROM_PROBE — то есть сперва делаем измерение, потом обновляем кинематическую позицию.

[safe_z_home]
home_xy_position: 117.5, 117.5
z_hop: 10
z_hop_speed: 15

[gcode_macro _RELOAD_Z_OFFSET_FROM_PROBE]
gcode:
  {% set Z = printer.toolhead.position.z %}
  SET_KINEMATIC_POSITION Z={Z - printer.probe.last_probe_position.z}

[gcode_macro SET_Z_FROM_PROBE]
gcode:
  PROBE
  _RELOAD_Z_OFFSET_FROM_PROBE
  G0 Z5

Смысл этого куска не в том, чтобы слепо копировать числа, а в том, чтобы понять философию настройки. Home и точное выставление Z для eddy — это две связанные, но разные операции. Если их смешать в голове, потом начинается цирк: bed mesh выглядит ровным, а реальный первый слой не совпадает.

И да, на март 2026 года эта история всё ещё живая. Вокруг homing для новых датчиков в Klipper уже были обсуждения и идеи отдельной команды для home через probe, но в основной документации предупреждение про неточный Z-home для eddy по-прежнему стоит. Так что пока лучше мыслить прагматично: eddy — чемпион по быстрому съёму поверхности, но Z-home ему нужен аккуратный.

Как я бы настраивал eddy в Klipper шаг за шагом

Если бы ты занёс мне принтер в мастерскую, я бы шёл вот в таком порядке.

  1. Сначала механика. Датчик должен стоять жёстко, без люфта, без кривого крепления и без сюрпризов по X/Y offset. Если кронштейн гуляет, потом никакая калибровка не спасёт.
  2. Потом базовая конфигурация probe_eddy_current. Задаём sensor_type, offsets, корректный descend_z, проверяем связь, делаем калибровку тока датчика.
  3. Дальше PROBE_EDDY_CURRENT_CALIBRATE. Это обязательная база. И тут не надо халтурить: сделал смещение по креплению — перекалибруй.
  4. После этого — safe_z_home. Домой по Z надо идти в понятной точке, обычно ближе к центру рабочего поля или в заранее выбранную стабильную зону.
  5. Следом — temperature drift. Стол, хотэнд, сам датчик должны выйти на рабочее состояние. Иначе на одном прогреве всё красиво, а через двадцать минут слой уже другой.
  6. И только потом — rapid_scan. Сразу прыгать в него без базовой калибровки смысла ноль. Сначала добейся повторяемого Z, потом ускоряй рутину.

Рабочий каркас конфига у меня обычно выглядит примерно так:

[probe_eddy_current my_eddy]
sensor_type: ldc1612
descend_z: 0.5
x_offset: 0
y_offset: 25
speed: 5
lift_speed: 15

[temperature_probe my_eddy]
sensor_type: Generic 3950

[bed_mesh]
speed: 120
horizontal_move_z: 2
mesh_min: 20, 20
mesh_max: 215, 215
probe_count: 5, 5
scan_overshoot: 8

Потом я бы сделал несколько тестов подряд:

  • три раза подряд home + macro на установку Z;
  • три раза подряд mesh на прогретом столе;
  • проверку первого слоя на маленькой сетке по углам и по центру;
  • ещё один прогон после паузы, когда принтер постоял и датчик остыл.

Если расхождения начинаются после паузы или смены температуры, копать надо не в slicer, а в drift и процедуру homing. Если mesh стабилен, а слой пляшет — первым делом смотрим логику Z-home и офсет после probing. Кстати, у тебя на сайте уже есть полезный материал про калибровку Z-offset; с eddy его особенно полезно перечитать, потому что люди часто думают, что новый датчик сам отменит всю ручную доводку. Не отменит.

Когда брать eddy, а когда оставить BLTouch

Я бы выбирал так.

Бери eddy current probe, если: ты сидишь на Klipper всерьёз, любишь быстрый bed mesh, у тебя металлический стол, ты печатаешь часто и хочешь сократить рутину перед стартом. Особенно хорошо он раскрывается там, где нужен adaptive mesh и где каждая лишняя минута на подготовке реально раздражает.

Оставь BLTouch, если: нужен более универсальный и привычный сценарий, стол не самый стандартный, ты не хочешь лезть в macro и разбираться, почему home и probe у тебя живут по разным правилам. Для многих бытовых принтеров BLTouch всё ещё остаётся понятной рабочей лошадкой.

Я бы ещё добавил вот что: eddy — это не обязательный апгрейд для каждого. Если текущий BLTouch даёт стабильный первый слой, менять его только ради модного железа нет смысла. А вот если бесит длительный mesh на крупном столе, тогда eddy начинает показывать зубы.

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

Что чаще всего ломает первый слой

Вот мой короткий чек-лист, когда после установки eddy current probe принтер вроде бы «настроен», а печать всё равно чудит:

  • датчик калибровали на одной температуре, а печатают на другой;
  • используют rapid_scan на слишком кривом столе или при слишком большом horizontal_move_z;
  • путают красивый mesh с корректным Z-home;
  • не обновили X/Y offset после перестановки крепления;
  • не проверили, что safe_z_home ведёт в реально стабильную точку;
  • пытаются лечить геометрию портала только сеткой стола;
  • смотрят на датчик, хотя проблема вообще в адгезии, загрязнённом листе или настройках первого слоя.

Если после всех манипуляций пластик всё равно кладётся криво, полезно ещё пробежаться по материалам про адгезию и настройку первого слоя. Потому что иногда мы начинаем винить probe, а виноват жирный PEI, слишком холодный стол или банально неудачный стартовый профиль.

Итог по-человечески

Если подвести всё это к верстаку и откинуть маркетинговый шум, картина простая. Eddy current probe в Klipper быстрее BLTouch там, где надо быстро собирать bed mesh и часто переснимать поверхность. Для scan и rapid_scan это очень удобная штука, и на крупных столах разница ощущается сразу. Но Z-home у него просит отдельной логики, потому что нынешний путь homing в Klipper не полностью совпадает с тем, как eddy корректно измеряет высоту.

Так что мой совет такой: хочешь быстрый и современный инструмент для карты стола — смотри в сторону eddy. Хочешь более прямолинейный сценарий homing с меньшим количеством нюансов — BLTouch всё ещё держится молодцом. А если берёшь eddy, не ленись один раз сделать настройку как следует: safe_z_home, калибровка, контроль температуры, проверка повторяемости и macro для корректного Z после probing. Тогда датчик не будет казаться капризным, и первый слой начнёт радовать, а не спорить с тобой каждое утро.

Метки: , , , , , , ,