Перейти к основному содержанию

Отладка режима 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, разъемов платы инструмента, винтов крепления датчика, сопла и конструкции вокруг стола полностью выключите принтер и отключите питание. Не подключайте и не отключайте жгуты проводов и не регулируйте клеммы под напряжением.

  1. Сопло и поверхность стола чистые, без остатков филамента, выступов клея или посторонних предметов.
  2. EDDY закреплен надежно, катушка установлена без люфта.
  3. Ось Z движется вверх и вниз нормально, без заеданий, упоров или столкновений с рамой.
  4. На машинах с несколькими осями Z сначала выполняется базовая механическая калибровка.
  5. Базовая конфигурация 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 необходимо вручную подтвердить фактический зазор между соплом и столом:

  1. Очистите сопло и поверхность стола. Переместите сопло в центр стола.
  2. Выполните SET_Z_FROM_PROBE METHOD=tap, убедитесь в отсутствии аномалий.
  3. Проверьте фактический зазор сопла с помощью листа бумаги или теста первого слоя. Отрегулируйте Z-смещение через веб-интерфейс.
  4. После того как первый слой будет удовлетворительным, сохраните конфигурацию.
  5. После последующей замены сопла, хотэнда, места установки EDDY или конструкции стола необходимо повторно подтвердить смещение.

Часто задаваемые вопросы

Невозможность нормального использования после настройки конфигурации

  1. Убедитесь, что версия системы FAST >= V1.3.9 (или Klipper обновлен до последней версии).
  2. Убедитесь, что прошивка подчиненного MCU обновлена до последней версии.
  3. Убедитесь, что в секции [probe_eddy_current fly_eddy_probe] указан параметр frequency: 40000000.
  4. Убедитесь, что i2c_speed не слишком высока. Для SHT36 V3 / SB2040 V3 можно сначала протестировать со значением 400000.
  5. Повторно выполните калибровку тока драйвера и калибровку высоты.
  6. Просмотрите первую ошибку, связанную с EDDY или TAP, в файле klippy.log и устраните проблему в соответствии с текстом ошибки.

Нестабильные результаты касания TAP

  1. Очистите сопло и поверхность стола.
  2. Проверьте, не ослабло ли крепление EDDY.
  3. Проверьте ось Z на наличие заеданий или люфта.
  4. Повторно выполните 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-связь и запас планирования хоста.

  1. Просмотрите строки Stats до и после ошибки в klippy.log. Проверьте, нет ли одновременно аномалий bytes_retransmit, bytes_invalid, canstat_*, ошибок I2C или повышения нагрузки на хост.
  2. Убедитесь, что версии прошивок Klipper, MCU платы инструмента и MCU EDDY согласованы. После обновления необходимо перепрошить все связанные MCU.
  3. Временно отключите видеопоток с камеры, KlipperScreen, плагины удаленного управления и другие службы с высоким потреблением ресурсов и повторите тест.
  4. Если ошибка возникает во время Z_TILT_ADJUST и конструкция станка позволяет, можно временно переключиться на Z_TILT_ADJUST METHOD=scan для тестирования, чтобы снизить нагрузку на синхронизацию таймера в процессе срабатывания TAP.
  5. Сократите количество ненужных повторных референсных перемещений, повторных TAP и последовательных сканирований стола в стартовом макросе. Если референсные перемещения уже выполнены и состояние станка достоверно, макрос может избегать повторного выполнения G28.
  6. Если одновременно появляются ошибки 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, обжима клемм или заменой жгута полностью выключите принтер и отключите питание. Не подключайте и не отключайте жгуты проводов и не регулируйте клеммы под напряжением.

  1. Сверьте i2c_mcu, i2c_bus или выводы программного I2C с соответствием фактической плате инструмента.
  2. Сначала снизьте i2c_speed до 400000 для тестирования.
  3. Проверьте, не ослаблены ли жгуты EDDY, клеммы и разъемы платы инструмента.
  4. Убедитесь, что прошивка EDDY и платы инструмента обновлены до версий, поддерживающих текущую версию Klipper.

Unable to detect tap: insufficient slope delta

Типичная ошибка:

!! Unable to detect tap: insufficient slope delta (-36983.054918 vs 30633.703000)

Текущий tap_threshold не подходит, или данные касания не формируют достаточно выраженную точку перегиба TAP.

  1. Очистите сопло и поверхность стола.
  2. Не повторяйте автоматическую калибровку. Вместо этого используйте PROBE_ACCURACY METHOD=tap tap_threshold=40000 для ручного поиска порога.
  3. После стабилизации ручного порога вернитесь к проверке 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.

  1. Проверьте, чистые ли сопло, поверхность стола и магнитная подложка, ровные ли они.
  2. Проверьте опоры стола, конструкцию оси Z и крепление датчика на наличие заметных люфтов.
  3. Уменьшите скорость Z-референсного перемещения и касания, затем повторите проверку.
  4. Если ошибка появляется многократно, не сохраняйте параметры TAP. В первую очередь проверьте механическую жесткость и порог.
  5. Обычным пользователям не рекомендуется напрямую изменять файл klippy/extras/probe_eddy_current.py для расширения диапазона ошибки. Только после подтверждения исправности оборудования и правильности порога оценку необходимости корректировки может проводить персонал, знакомый с исходным кодом Klipper.

Eddy: CLKIN frequency too low

Типичная ошибка:

!! Eddy: CLKIN frequency too low: 0.001 < 0.002`

Связь по I2C нестабильна, интервал времени получения точек данных аномален.

  1. Убедитесь, что i2c_mcu, i2c_bus или выводы программного I2C указаны правильно.
  2. Для тестирования сначала установите i2c_speed на 400000, не задавайте слишком высокое значение с самого начала.
  3. Проверьте, не ослаблены ли жгуты EDDY, клеммы и разъемы платы инструмента.
  4. При использовании программного I2C убедитесь, что соответствующие GPIO не заняты другими функциями и на них не влияют периферийные цепи.
Loading...