Klipper ホーム位置決めタイムアウト問題
問題の説明
ホーム位置決め中に通信タイムアウトエラーが発生:
Error during homing z: Communication timeout during homing
これは特に複数のMCUを使用するZ軸のホーム位置決め時に発生し、Klipperは0.025秒以内に応答を受信する必要があります。
- タイムアウト時間の調整
- KlipperScreenの管理
方法1: タイムアウト時間の調整
タイムアウト設定の変更
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
方法2: 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...