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

Отладка режима 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...