Отладка режима EDDY TAP
Эта страница предназначена для отладки процессов, порядка проверки и устранения распространенных проблем EDDY в режиме TAP. Режим TAP определяет порог срабатывания по легкому касанию сопла поверхности стола. При отладке необходимо обращать внимание на состояние сопла, нагревательного стола и оси Z.
Перед началом работы полностью выключите принтер и отключите питание. Не подключайте и не отключайте жгуты проводов, не выравнивайте порядок проводов в разъемах и не прикасайтесь к клеммам под напряжением.
- Эта страница содержит описание методов отладки, а не полный файл
printer.cfg, который можно скопировать напрямую. canbus_uuid,serial, выводы датчика, направление референсного перемещения, ход оси Z и смещения необходимо изменять в соответствии с фактическим оборудованием.- Перед первым включением убедитесь, что EDDY, плата инструмента, основная плата и механическая конструкция оси Z находятся в нормальном состоянии.
Область применения
- Использование вихревого датчика EDDY / LDC1612 с методом срабатывания
METHOD=tapили порогом TAP. - Подходит для плат инструмента с поддержкой EDDY, таких как FLY SHT36 V3, SB2040 V3 и т.д.
- Базовая проводка EDDY выполнена, выполнена стандартная калибровка высоты, требуется дальнейшее включение или диагностика режима TAP.
Требования к версии
- При использовании системы FLY FAST: версия системы должна быть >=
V1.3.9. - При использовании других систем: убедитесь, что Klipper обновлен до последней версии.
- Прошивка платы инструмента или связанных подчиненных микроконтроллеров (MCU) также должна быть обновлена до последней версии. В противном случае может возникнуть ситуация, когда хост поддерживает команды TAP, но прошивка MCU на них не отвечает.
Обязательная конфигурация
На примере SHT36 V3 или SB2040 V3 в секции [probe_eddy_current fly_eddy_probe] обязательно должно быть указано frequency: 40000000, иначе EDDY может не работать корректно.
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
# Следующие параметры i2c_mcu, i2c_bus, смещения необходимо изменить в соответствии с фактической платой инструмента и местом установки
i2c_mcu: SHT36
i2c_bus: i2c1e
i2c_speed: 400000
frequency: 40000000
x_offset: 0
y_offset: 21.42
descend_z: 2.5
tap_z_offset: 0
# Перед автоматической калибровкой порога TAP закомментируйте эту строку. После успешной калибровки она будет записана командой SAVE_CONFIG
# tap_threshold: 40000
После настройки конфигурации необходимо повторно выполнить калибровку тока драйвера и калибровку высоты в соответствии с документацией соответствующего продукта.
Связанная документация: Использование EDDY с SHT36 V3
Проверки перед настройкой
Перед проверкой жгутов EDDY, разъемов платы инструмента, винтов крепления датчика, сопла и конструкции вокруг стола полностью выключите принтер и отключите питание. Не подключайте и не отключайте жгуты проводов и не регулируйте клеммы под напряжением.
- Сопло и поверхность стола чистые, без остатков филамента, выступов клея или посторонних предметов.
- EDDY закреплен надежно, катушка установлена без люфта.
- Ось Z движется вверх и вниз нормально, без заеданий, упоров или столкновений с рамой.
- На машинах с несколькими осями Z сначала выполняется базовая механическая калибровка.
- Базовая конфигурация EDDY выполнена, данные с датчика считываются корректно.
Пример фрагмента конфигурации
Следующая конфигурация содержит только часто используемые части для EDDY TAP. Имя mcu, шина I2C, смещения, метод калибровки и параметры стартового макроса необходимо изменить в соответствии с реальной конфигурацией станка. Рекомендуется поместить этот фрагмент в отдельный конфигурационный файл и подключить его через include в printer.cfg.
[respond]
[force_move]
enable_force_move: true
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
i2c_address: 42
i2c_mcu: SHT36
i2c_bus: i2c1e
i2c_speed: 400000
frequency: 40000000
x_offset: 0
y_offset: 21.42
descend_z: 2.5
speed: 5
samples: 3
sample_retract_dist: 5.0
samples_tolerance: 0.05
samples_tolerance_retries: 3
tap_z_offset: 0
# Перед автоматическим поиском порога TAP закомментируйте эту строку. После успешной калибровки она будет записана командой SAVE_CONFIG
# tap_threshold: 40000
Макрос установки Z-смещения для TAP
SET_Z_FROM_PROBE METHOD=tap используется для обновления текущей Z-координаты после срабатывания TAP. Рекомендуется выполнить его несколько раз подряд и посмотреть, насколько близки результаты; если разница велика, не сохраняйте результат, а вернитесь к проверке сопла, поверхности стола, люфта оси Z и порога TAP.
[gcode_macro _RELOAD_Z_OFFSET_FROM_PROBE]
description: Обновляет текущую Z-координату на основе результата последнего PROBE
gcode:
{% set Z = printer.toolhead.position.z %}
{% set position_endstop = 0 %}
{% set raw_config = printer.configfile.config %}
{% if 'stepper_z' in raw_config and 'position_endstop' in raw_config.stepper_z %}
{% set position_endstop = raw_config.stepper_z.position_endstop|trim|float %}
{% endif %}
{% set setZ = Z - printer.probe.last_probe_position.z + position_endstop %}
SET_KINEMATIC_POSITION Z={setZ}
RESPOND MSG="position_Z={'%0.3f' | format(Z)} probe_Z={'%0.3f' | format(printer.probe.last_probe_position.z)} position_endstop={'%0.3f' | format(position_endstop)} set_Z={'%0.3f' | format(setZ)}"
[gcode_macro SET_Z_FROM_PROBE]
description: Установка Z-смещения в режиме TAP. Использование: SET_Z_FROM_PROBE METHOD=tap
gcode:
{% set METHOD = params.METHOD | default("automatic") %}
G0 Z5 F300
PROBE METHOD={METHOD} SAMPLES=3
_RELOAD_Z_OFFSET_FROM_PROBE
G0 Z5 F300
Если вы используете этот макрос для сохранения и повторного использования position_endstop, убедитесь, что в конфигурации существует сохраняемое значение stepper_z position_endstop. При первичной отладке его можно установить в 0, а затем определить реальное значение с помощью ручной регулировки Z-смещения и проверки первого слоя.
Вызов макроса начала печати
В стартовом макросе достаточно вызвать TAP для установки Z-смещения после завершения нагрева, референсного перемещения и необходимой калибровки стола. Перед подъемом сопла до температуры печати можно поддерживать более низкую температуру, чтобы избежать налипания филамента, влияющего на TAP.
[gcode_macro PRINT_START]
gcode:
{% set BED = params.BED|default(60)|int %}
{% set EXTRUDER = params.EXTRUDER|default(200)|int %}
{% set X_CENTER = printer.toolhead.axis_maximum.x|float / 2 %}
{% set Y_CENTER = printer.toolhead.axis_maximum.y|float / 2 %}
SET_GCODE_OFFSET Z=0
G21
G90
G28
G1 X{X_CENTER} Y{Y_CENTER} Z15 F9000
M190 S{BED}
M109 S150
# Здесь оставьте вашу обычную подготовку к печати
# ...
# Если есть макрос для очистки сопла, рекомендуется сначала очистить сопло, а затем выполнять TAP
# CLEAN_NOZZLE
SET_Z_FROM_PROBE METHOD=tap
# После TAP продолжайте обычную подготовку к печати
M109 S{EXTRUDER}
G92 E0
Если сопло склонно к налипанию филамента, можно выполнять очистку сопла до и после SET_Z_FROM_PROBE METHOD=tap и повторить SET_Z_FROM_PROBE METHOD=tap для повышения стабильности.
Автоматическая калибровка порога TAP
Начиная с версии Klipper от 2026-05-02, поддерживается автоматическое измерение порога TAP. Перед использованием закомментируйте вручную указанный tap_threshold, а затем используйте следующую команду для поиска порога.
Команда калибровки порога TAP: PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=xxx, часто используемые значения: guess, refine, verify.
Следующие шаги заставят сопло двигаться к поверхности стола и слегка касаться ее. Перед началом убедитесь, что вы можете в любой момент выполнить аварийную остановку (M112). Если сопло продолжает опускаться после касания стола, немедленно выполните аварийную остановку.
① guess: начальное грубое значение порога
Убедитесь, что сопло и поверхность стола чистые. После референсного перемещения переместите инструментальную головку в центр стола на высоте 3~10 мм от поверхности.
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=guess
Эта команда анализирует данные калибровки основного датчика, получает начальное грубое значение tap_threshold, а затем выполняет одно тестовое касание. В идеальном случае датчик опускается до касания соплом стола, затем поднимается и сообщает о валидном результате касания.
② refine: уточнение порога
После успешного выполнения TAP=guess, оставаясь вблизи центра стола на высоте 3~10 мм, выполните:
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=refine
Эта команда использует данные последнего успешного касания для определения более точного порога.
③ verify: проверка стабильности
После успешного выполнения TAP=refine выполните:
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=verify
Эта команда выполняет пять последовательных касаний стола. Если все пять выполнений прошли нормально, а результаты стабильны, тест пройден.
④ Сохранение конфигурации
После успешного выполнения всех вышеперечисленных шагов выполните:
SAVE_CONFIG
После сохранения перезапустите Klipper. На данный момент сохранен только порог TAP. Необходимо также выполнить подтверждение Z-смещения.
Ручной поиск порога
Если во время автоматической калибровки возникает ошибка о неподходящем пороге или наблюдаются такие проблемы, как преждевременное срабатывание или продолжение движения после касания стола, не продолжайте повторять автоматические команды. Вместо этого используйте PROBE_ACCURACY для ручного поиска:
PROBE_ACCURACY METHOD=tap tap_threshold=40000
При ручной регулировке можно начать тестирование со значения около 40000:
- Срабатывание до касания стола → порог слишком низкий, увеличьте его.
- Продолжение движения после касания стола → порог слишком высокий, немедленно выполните аварийную остановку и уменьшите его.
- Перед каждым тестом убедитесь, что сопло и поверхность стола чистые, сопло находится на высоте
3~10 ммот стола.
После стабилизации ручного порога можно вернуться к автоматической калибровке TAP=refine и TAP=verify для проверки.
Установка Z-смещения
После успешного прохождения порога TAP используйте метод TAP Klipper для установки Z-смещения:
SET_Z_FROM_PROBE METHOD=tap
Рекомендуется выполнить команду несколько раз подряд и посмотреть, насколько близки результаты. Если разница велика, не сохраняйте результат, а проверьте чистоту сопла, жесткость стола, люфт оси Z и порог TAP.
В новых версиях Klipper можно использовать tap_z_offset для тонкой настройки зазора TAP. Фактический первый слой все равно рекомендуется подтверждать по результатам печати, а не только по одному измерению.
Ручное подтверждение Z-смещения
После успешного прохождения порога TAP и SET_Z_FROM_PROBE METHOD=tap необходимо вручную подтвердить фактический зазор между соплом и столом:
- Очистите сопло и поверхность стола. Переместите сопло в центр стола.
- Выполните
SET_Z_FROM_PROBE METHOD=tap, убедитесь в отсутствии аномалий. - Проверьте фактический зазор сопла с помощью листа бумаги или теста первого слоя. Отрегулируйте Z-смещение через веб-интерфейс.
- После того как первый слой будет удовлетворительным, сохраните конфигурацию.
- После последующей замены сопла, хотэнда, места установки EDDY или конструкции стола необходимо повторно подтвердить смещение.
Часто задаваемые вопросы
Невозможность нормального использования после настройки конфигурации
- Убедитесь, что версия системы FAST >=
V1.3.9(или Klipper обновлен до последней версии). - Убедитесь, что прошивка подчиненного MCU обновлена до последней версии.
- Убедитесь, что в секции
[probe_eddy_current fly_eddy_probe]указан параметрfrequency: 40000000. - Убедитесь, что
i2c_speedне слишком высока. Для SHT36 V3 / SB2040 V3 можно сначала протестировать со значением400000. - Повторно выполните калибровку тока драйвера и калибровку высоты.
- Просмотрите первую ошибку, связанную с EDDY или TAP, в файле
klippy.logи устраните проблему в соответствии с текстом ошибки.
Нестабильные результаты касания TAP
- Очистите сопло и поверхность стола.
- Проверьте, не ослабло ли крепление EDDY.
- Проверьте ось Z на наличие заеданий или люфта.
- Повторно выполните
TAP=refineиTAP=verify.
Срабатывание Timer too close при EDDY TAP / Z_TILT
Типичная ошибка:
!! MCU 'xxx' shutdown: Timer too close
Если эта ошибка возникает только во время EDDY TAP, Z-референсного перемещения, Z_TILT_ADJUST, QUAD_GANTRY_LEVEL или сканирования стола, обычно необходимо одновременно проверить сэмплирование EDDY, CAN-связь и запас планирования хоста.
- Просмотрите строки
Statsдо и после ошибки вklippy.log. Проверьте, нет ли одновременно аномалийbytes_retransmit,bytes_invalid,canstat_*, ошибок I2C или повышения нагрузки на хост. - Убедитесь, что версии прошивок Klipper, MCU платы инструмента и MCU EDDY согласованы. После обновления необходимо перепрошить все связанные MCU.
- Временно отключите видеопоток с камеры, KlipperScreen, плагины удаленного управления и другие службы с высоким потреблением ресурсов и повторите тест.
- Если ошибка возникает во время
Z_TILT_ADJUSTи конструкция станка позволяет, можно временно переключиться наZ_TILT_ADJUST METHOD=scanдля тестирования, чтобы снизить нагрузку на синхронизацию таймера в процессе срабатывания TAP. - Сократите количество ненужных повторных референсных перемещений, повторных TAP и последовательных сканирований стола в стартовом макросе. Если референсные перемещения уже выполнены и состояние станка достоверно, макрос может избегать повторного выполнения
G28. - Если одновременно появляются ошибки I2C EDDY, сначала следуйте разделу I2C BUS_TIMEOUT для проверки жгутов проводов, скорости I2C и разъемов платы инструмента.
Системные проверки: Timer too close
MCU 'xxx' I2C request to addr 42 reports error BUS_TIMEOUT
Связь между MCU, на котором находится EDDY, и LDC1612 прервана или нестабильна.
Перед проверкой жгутов EDDY, интерфейса I2C, обжима клемм или заменой жгута полностью выключите принтер и отключите питание. Не подключайте и не отключайте жгуты проводов и не регулируйте клеммы под напряжением.
- Сверьте
i2c_mcu,i2c_busили выводы программного I2C с соответствием фактической плате инструмента. - Сначала снизьте
i2c_speedдо400000для тестирования. - Проверьте, не ослаблены ли жгуты EDDY, клеммы и разъемы платы инструмента.
- Убедитесь, что прошивка EDDY и платы инструмента обновлены до версий, поддерживающих текущую версию Klipper.
Unable to detect tap: insufficient slope delta
Типичная ошибка:
!! Unable to detect tap: insufficient slope delta (-36983.054918 vs 30633.703000)
Текущий tap_threshold не подходит, или данные касания не формируют достаточно выраженную точку перегиба TAP.
- Очистите сопло и поверхность стола.
- Не повторяйте автоматическую калибровку. Вместо этого используйте
PROBE_ACCURACY METHOD=tap tap_threshold=40000для ручного поиска порога. - После стабилизации ручного порога вернитесь к проверке
TAP=refineиTAP=verify.
Unable to detect tap: invalid depress distance
Типичная ошибка:
!! Unable to detect tap: invalid depress distance (0.020411 vs 0.030000:0.250000)
Определенное Klipper расстояние вдавливания находится вне ожидаемого диапазона (0.03~0.25 мм). Распространенные причины: недостаточная жесткость стола, нестабильность процесса касания сопла, люфт оси Z или неподходящий порог TAP.
- Проверьте, чистые ли сопло, поверхность стола и магнитная подложка, ровные ли они.
- Проверьте опоры стола, конструкцию оси Z и крепление датчика на наличие заметных люфтов.
- Уменьшите скорость Z-референсного перемещения и касания, затем повторите проверку.
- Если ошибка появляется многократно, не сохраняйте параметры TAP. В первую очередь проверьте механическую жесткость и порог.
- Обычным пользователям не рекомендуется напрямую изменять файл
klippy/extras/probe_eddy_current.pyдля расширения диапазона ошибки. Только после подтверждения исправности оборудования и правильности порога оценку необходимости корректировки может проводить персонал, знакомый с исходным кодом Klipper.
Eddy: CLKIN frequency too low
Типичная ошибка:
!! Eddy: CLKIN frequency too low: 0.001 < 0.002`
Связь по I2C нестабильна, интервал времени получения точек данных аномален.
- Убедитесь, что
i2c_mcu,i2c_busили выводы программного I2C указаны правильно. - Для тестирования сначала установите
i2c_speedна400000, не задавайте слишком высокое значение с самого начала. - Проверьте, не ослаблены ли жгуты EDDY, клеммы и разъемы платы инструмента.
- При использовании программного I2C убедитесь, что соответствующие GPIO не заняты другими функциями и на них не влияют периферийные цепи.