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...