Klipper 归位超时问题
问题描述
归位过程中出现通信超时错误:
Error during homing z: Communication timeout during homing
主要出现在多 MCU 的 Z 轴归位时,Klipper 要求在 0.025 秒内收到响应。
- 调整超时时间
- 管理KlipperScreen
方法一:调整超时时间
修改超时配置
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.05/' ~/klipper/klippy/mcu.py
重启服务生效
sudo systemctl restart klipper
相关命令
# 查看当前设置
grep "TRSYNC_TIMEOUT =" ~/klipper/klippy/mcu.py
# 恢复默认设置
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.025/' ~/klipper/klippy/mcu.py
方法二:管理KlipperScreen
通过临时关闭 KlipperScreen 来释放系统资源,解决归位过程中的通信超时问题。
1. 下载必要文件
标准系统:
git clone https://cnb.cool/3dmellow/public/klipper-klipperscreen-manager
curl -# -L --retry 3 --retry-delay 2 -o ~/klipper/klippy/extras/gcode_shell_command.py https://raw.githubusercontent.com/dw-0/kiauh/master/kiauh/extensions/gcode_shell_cmd/assets/gcode_shell_command.py
Fast 系统:
cd /data
git clone https://cnb.cool/3dmellow/public/klipper-klipperscreen-manager
curl -# -L --retry 3 --retry-delay 2 -o /data/klipper/klippy/extras/gcode_shell_command.py https://raw.githubusercontent.com/dw-0/kiauh/master/kiauh/extensions/gcode_shell_cmd/assets/gcode_shell_command.py
2. 设置脚本权限
标准系统:
cd ~/klipper-klipperscreen-manager
chmod +x ~/klipper-klipperscreen-manager/scripts/*.sh
Fast 系统:
cd /data/klipper-klipperscreen-manager
chmod +x /data/klipper-klipperscreen-manager/scripts/*.sh
3. 创建配置文件
- 在 Klipper 配置目录中创建
klipper_macros.cfg文件 - 在
printer.cfg文件最上方添加:[include klipper_macros.cfg]
4. 配置宏命令
- 在
klipper_macros.cfg中添加以下内容: - 请注意
/data/klipper-klipperscreen-manager/scripts/需要改成实际路径
# ===== KlipperScreen 控制宏 =====
# 作者: MELLOW-张伟
# 描述: 用于管理 KlipperScreen 的关闭和自动恢复
[gcode_shell_command disable_klipperscreen]
command: sh /data/klipper-klipperscreen-manager/scripts/disable_klipperscreen.sh
timeout: 5.0
verbose: True
[gcode_shell_command enable_klipperscreen]
command: sh /data/klipper-klipperscreen-manager/scripts/enable_klipperscreen.sh
timeout: 5.0
verbose: True
[gcode_macro RESTART_KLIpperSCREEN]
variable_time: 60 # 默认等待时间(秒)
gcode:
{% set wait_time = params.TIME|default(printer["gcode_macro RESTART_KLIpperSCREEN"].time)|int %}
{action_respond_info("等待时间: %s 秒" % wait_time)}
RUN_SHELL_COMMAND CMD=disable_klipperscreen PARAMS={wait_time}
[gcode_macro ENABLE_KLIpperSCREEN]
gcode:
{action_respond_info("立即启动 KlipperScreen")}
RUN_SHELL_COMMAND CMD=enable_klipperscreen
5. 使用方法
临时关闭 KlipperScreen:
# 使用默认 60 秒等待时间
RESTART_KLIpperSCREEN
# 使用自定义等待时间(120 秒)
RESTART_KLIpperSCREEN TIME=120
手动立即重启 KlipperScreen:
ENABLE_KLIpperSCREEN
工作原理
此方法通过临时关闭 KlipperScreen 界面来释放系统资源,降低 CPU 负载,从而避免归位过程中的通信超时问题。
前置检查
- 确认 Klipper 已安装
- 当前用户为 Klipper 安装用户
- 文件路径正确
Loading...