跳到主要内容

EDDY TAP 模式调试

本页面用于 EDDY 在 TAP 模式下的调试流程、检查顺序和常见问题排查。TAP 模式通过喷嘴轻触床面判断触发阈值,调试时需留意喷嘴、热床和 Z 轴运动状态。

断电操作

开始前请完全关闭打印机并断开电源供应。不要在通电状态下插拔线束、整理接口线序或触碰端子。

使用说明
  • 本页面是调试方法说明,不是可直接照抄的完整 printer.cfg
  • canbus_uuidserial、探针引脚、归位方向、Z 轴行程和偏移量需按实际硬件修改。
  • 首次启用前请先确认 EDDY、工具板、主板和 Z 轴机械结构状态正常。

适用范围

  • 使用 EDDY / LDC1612 涡流传感器,需使用 METHOD=tap 或 TAP 阈值触发方式。
  • 适用于 FLY SHT36 V3、SB2040 V3 等带 EDDY 支持的工具板。
  • 已完成基础 EDDY 接线和普通高度校准,需进一步启用或排查 TAP 模式。

版本要求

版本更新
  • 使用 FLY FAST 系统:需确保系统版本 >= V1.3.9
  • 使用其他系统:请确保 Klipper 已更新到最新版本。
  • 工具板或相关下位机固件也需更新到最新,否则可能出现主机支持 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

配置完成后,需根据对应产品文档重新执行 驱动电流校准高度校准

相关文档SHT36 V3 EDDY 使用

配置前检查

断电操作

检查 EDDY 线束、工具板接口、探针固定螺丝、喷嘴和热床周围结构前,请完全关闭打印机并断开电源。不要在通电状态下插拔线束或调整端子。

  1. 喷嘴和床面干净,无耗材残留、胶水凸起或异物。
  2. EDDY 固定牢靠,线圈安装位置无松动。
  3. Z 轴能正常上下移动,无卡死、顶死或碰撞机架。
  4. 多 Z 轴机器先完成基础机械调平。
  5. 已完成 EDDY 基础配置,能正常读取传感器数据。

参考配置片段

以下配置只保留 EDDY TAP 常用部分,mcu 名称、I2C 总线、偏移量、调平方式和开始宏参数需按机器实际情况修改。建议放到独立配置文件中,再由 printer.cfg include。

[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

TAP 设置 Z 偏移宏

SET_Z_FROM_PROBE METHOD=tap 用于在 TAP 触发后更新当前 Z 坐标。建议连续执行数次,观察结果是否接近;差异很大时先不要保存,回去检查喷嘴、床面、Z 轴回差和 TAP 阈值。

[gcode_macro _RELOAD_Z_OFFSET_FROM_PROBE]
description: 根据上一次 PROBE 结果刷新当前 Z 坐标
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: TAP 模式设置 Z 偏移,使用: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,常用值为 guessrefineverify

急停准备

以下步骤会让喷嘴向床面移动并发生轻触。开始前请确保可随时执行急停(M112)。如果喷嘴接触床面后仍继续下降,请立即急停。

① guess:初始粗略阈值

确认喷嘴和床面干净,归零后将工具头移至床面中心附近,喷嘴离床面 3~10mm

PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=guess

此命令会根据主探针校准数据分析得到初始 tap_threshold 粗略值,然后执行一次轻触探测。理想情况下,探针下降至喷嘴接触床面后抬起,并报告有效探测结果。

② refine:精炼阈值

TAP=guess 成功后,保持喷嘴在床面中心附近 3~10mm 处,执行:

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~10mm

手动阈值稳定后,可回到自动校准的 TAP=refineTAP=verify 验证。

设置 Z 偏移

TAP 阈值通过后,用 Klipper 的 TAP 方法设置 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. 确认下位机固件已更新到最新版本。
  3. 确认 [probe_eddy_current fly_eddy_probe] 中已配置 frequency: 40000000
  4. 确认 i2c_speed 不过高,SHT36 V3 / SB2040 V3 可先按 400000 测试。
  5. 重新执行驱动电流校准与高度校准。
  6. 查看 klippy.log 中第一条 EDDY 或 TAP 相关报错,按报错内容排查。

TAP 探测结果不稳定

  1. 清理喷嘴和床面。
  2. 检查 EDDY 固定是否松动。
  3. 检查 Z 轴是否有卡顿或回差。
  4. 重新执行 TAP=refineTAP=verify

MCU 'xxx' I2C request to addr 42 reports error BUS_TIMEOUT

EDDY 所在 MCU 与 LDC1612 通信失败或不稳定。

断电操作

检查 EDDY 线束、I2C 接口、端子压接或更换线束前,请完全关闭打印机并断开电源。不要在通电状态下插拔线束或调整端子。

  1. 核对 i2c_mcui2c_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=refineTAP=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.25mm)内。常见原因:热床刚性不足、喷嘴接触过程不稳定、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_mcui2c_bus 或软件 I2C 引脚填写正确。
  2. i2c_speed 先按 400000 测试,不要一开始写过高。
  3. 检查 EDDY 线束、端子和工具板接口是否松动。
  4. 如果使用软件 I2C,确认对应 GPIO 未被其他功能占用,且无外围电路影响信号。
Loading...