无限位使用
无限位归位也称 Sensorless Homing,通过 TMC 驱动的 DIAG 信号判断电机堵转,从而替代物理限位开关。
必备条件
必须同时满足以下条件:
- 主板支持
DIAG功能。 - 驱动器支持
DIAG信号输出。 - 对应限位口不能接任何设备。
- 机器结构适合使用无限位归位,运动部件撞到端点时不会造成损坏。
主板兼容性检查
| 类型 | 支持情况 | 代表型号 | 操作要求 |
|---|---|---|---|
| A 类 | 默认直连 | Super / Gemini / CDY / E3 系列 | 直接使用对应限位接口 |
| B 类 | 需跳线启用 | D / C / Pro-X10 / Micro 系列 | 必须安装 DIAG 跳线帽 |
| C 类 | 不支持 | Fly-F407ZG | 无法使用无限位功能 |
确认方法:
- 查看主板是否有标注
DIAG的跳线座。 - 查阅原理图,确认驱动接口的
DIAG信号是否连接到限位口。 - 大部分主板为
Drive0对应io0、Drive1对应io1,依此类推。
A 类主板:没有 DIAG 跳线,默认直连对应限位口。
Loading...
B 类主板:需要使用 DIAG 跳线。
Loading...
驱动兼容性检查
提示
TMC5160、TMC2240 与 TMC2130 通常有两个 DIAG 引脚,需要查看对应产品文档或咨询客服确认使用哪个引脚。
| 驱动型号 | 兼容性 | DIAG 引脚 | 配置要求 | 灵敏度范围 |
|---|---|---|---|---|
| TMC2209 | 支持 | 单引脚 | 直接使用 diag_pin | 0-255,255 最敏感,0 最不敏感 |
| TMC5160 | 支持 | 双引脚 | 选择 diag0_pin 或 diag1_pin | -64-63,-64 最敏感,63 最不敏感 |
| TMC2240 | 支持 | 双引脚 | 选择 diag0_pin 或 diag1_pin | -64-63,-64 最敏感,63 最不敏感 |
| TMC2130 | 支持 | 双引脚 | 选择 diag0_pin 或 diag1_pin | -64-63,-64 最敏感,63 最不敏感 |
| TMC2208 | 不支持 | - | 无法使用无限位功能 | - |
| TMC2660 | 不支持 | - | 无法使用无限位功能 | - |
| LV8729 | 不支持 | - | 无法使用无限位功能 | - |
配置说明
- 需要按实际驱动型号和轴名修改配置。
tmc2209_stepper_x中的tmc2209需要改成对应驱动型号。stepper_x中的x代表 X 轴,如果配置 Y 轴,需要改为stepper_y。- 部分机器使用无限位归位时,回退会导致归位失败,需要将
homing_retract_dist设置为0。
参考配置
- TMC2209 参考配置
- TMC5160 参考配置
- TMC2130 参考配置
- TMC2240 参考配置
注意事项:
- 下方引脚仅供参考,需要按实际主板修改。
diag_pin通常需要添加^,否则可能导致归位失败。driver_SGTHRS需要实测,255 最敏感,0 最不敏感。
printer.cfg
[stepper_x]
endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: 0
homing_retract_dist: 0
[tmc2209 stepper_x]
diag_pin: ^PD9
driver_SGTHRS: 100
注意事项:
- 下方引脚仅供参考,需要按实际主板修改。
- 需要查看产品手册确认使用
diag0_pin还是diag1_pin。 driver_SGT需要实测,-64 最敏感,63 最不敏感。
printer.cfg
[stepper_y]
endstop_pin: tmc5160_stepper_y:virtual_endstop
position_endstop: 0
homing_retract_dist: 0
[tmc5160 stepper_y]
diag1_pin: ^!PD9
driver_SGT: 1
注意事项:
- 下方引脚仅供参考,需要按实际主板修改。
- 需要查看产品手册确认使用
diag0_pin还是diag1_pin。 driver_SGT需要实测,-64 最敏感,63 最不敏感。
printer.cfg
[stepper_y]
endstop_pin: tmc2130_stepper_y:virtual_endstop
position_endstop: 0
homing_retract_dist: 0
[tmc2130 stepper_y]
diag1_pin: ^!PD9
driver_SGT: 1
注意事项:
- 下方引脚仅供参考,需要按实际主板修改。
- 需要查看产品手册确认使用
diag0_pin还是diag1_pin。 driver_SGT需要实测,-64 最敏感,63 最不敏感。
printer.cfg
[stepper_x]
endstop_pin: tmc2240_stepper_x:virtual_endstop
position_endstop: 0
homing_retract_dist: 0
[tmc2240 stepper_x]
diag1_pin: ^!PD9
driver_SGT: 1
测试灵敏度
测试安全
测试无限位时必须把打印头移动到机器中间位置,并随时准备执行 M112 急停。不要在高速或无人看守状态下测试。
步骤 1:设置最高灵敏度
TMC2209:
SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255
TMC5160 / TMC2240 / TMC2130:
SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64
步骤 2:执行单轴归位
G28 X
如果轴没有开始移动、移动异常或无法停止,请立即执行:
M112
此时需要检查对应 DIAG 引脚接线、跳线帽和配置。
步骤 3:逐步降低灵敏度
- TMC2209:逐步减少
SGTHRS。 - TMC5160 / TMC2240 / TMC2130:逐步增加
sgt。 - 每调整一次,都重新执行
SET_TMC_FIELD和单轴归位测试。
目标是找到能让滑车稳定移动到端点并停止的最高可靠灵敏度。
步骤 4:写回配置
测试到合适值后,将该值写回 printer.cfg 对应驱动配置中。
如果最大灵敏度下仍有明显撞击声、点击声或无法稳定触发,通常说明归位速度过低、驱动电流过低、机械阻力异常,或该轴不适合使用无限位归位。
Loading...