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