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