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