Homing Override - 홈 오버라이드 설정
개요
이 페이지는 3D 프린터의 홈 복귀 프로세스를 최적화하여 안전성과 정밀도를 높이기 위한 두 가지 Klipper 홈 오버라이드(Homing Override) 참조 설정을 제공합니다.
설정 목록
| 설정 | 기능 설명 | 적용 시나리오 |
|---|---|---|
| 설정 1 | 기본 홈 오버라이드 + 히트베드 중앙 이동 | 표준 홈 복귀 프로세스 최적화 |
| 설정 2 | 노즐 온도 확인 + 안전 홈 복귀 | 고온 환경에서의 안전한 홈 복귀 |
설정 1: 기본 홈 오버라이드
기능 설명
- Z축 홈 복귀 여부 자동 감지, 미복귀 시 가상 Z 위치 설정
- Z축 홈 복귀 전 히트베드 중앙 위치로 자동 이동
- 독립적인 X, Y, Z 홈 복귀 명령 지원
- printer.configfile.config를 사용하여 프린터 최대 이동 범위 읽기
전체 설정
[force_move]
enable_force_move: true
[homing_override]
axes: z
gcode:
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
; Z축이 홈 복귀되지 않았다면, 가상 위치 설정 및 상승
{% if 'z' not in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z=0
G90
G0 Z5 F600
{% endif %}
{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}
{% if home_all or 'X' in params %}
G28 X
{% endif %}
{% if home_all or 'Y' in params %}
G28 Y
{% endif %}
{% if home_all or 'Z' in params %}
; 히트베드 중앙으로 이동【중요】 Z 홈 복귀 시 충돌 방지
G0 X{max_x / 2} Y{max_y / 2} F3600
G28 Z
G1 Z10 F2000
{% endif %}
핵심 코드 설명
G0 X{max_x / 2} Y{max_y / 2} F3600
이 코드 줄은 Z축을 홈 복귀하기 전에 노즐을 히트베드 중앙 위치로 이동시키는 역할을 합니다.
X{max_x / 2}: X축을 최대 이동 범위의 절반으로 이동 (히트베드 중앙 X 좌표)Y{max_y / 2}: Y축을 최대 이동 범위의 절반으로 이동 (히트베드 중앙 Y 좌표)- F3600: 이동 속도 3600mm/min (60mm/s), 고속 이동
히트베드 중앙으로 이동해야 하는 이유는?
- 충돌 방지: 노즐이 히트베드 가장자리에서 홈 복귀할 때 레벨링 노브나 다른 장애물에 부딪히는 것을 방지
- 정밀도 향상: 히트베드 중앙은 일반적으로 가장 평평한 영역으로, 홈 복귀가 더 정확함
- 호환성: ALPS, BL-Touch, EDDY 등 다양한 프로브 지원
이동 속도는 어떻게 수정하나요?
G0 X{max_x / 2} Y{max_y / 2} F3600줄을 찾습니다.F3600을 원하는 속도 값으로 변경합니다.- 권장 범위: F1800-F3600 (30-60mm/s)
사용 예시
G28 ; 전체 홈 복귀 → Z 감지 → XY 홈 복귀 → 중앙 이동 → Z 홈 복귀 → 상승
설정 2: 온도 보호 기능이 포함된 홈 오버라이드
기능 설명
- 설정 1의 모든 기능 포함
- 노즐 온도 확인 기능 추가
- 온도가 너무 높을 경우 안전 온도로 자동 냉각
- 홈 복귀 완료 후 원래 온도 설정 복원
전체 설정
[force_move]
enable_force_move: true
[homing_override]
axes: z
gcode:
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
{% set e_target = printer.extruder.target %} ; 목표 온도 저장
{% set fan_speed = printer.fan.speed %} ; 팬 속도 저장
; Z축이 홈 복귀되지 않았다면, 가상 위치 설정 및 상승
{% if 'z' not in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z=0
G90
G0 Z5 F600
{% endif %}
{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}
{% if home_all or 'X' in params %}
G28 X
{% endif %}
{% if home_all or 'Y' in params %}
G28 Y
{% endif %}
{% if home_all or 'Z' in params %}
; 온도 확인【수정 가능】 150을 원하는 온도 임계값으로 변경
{% if e_target >= 150 or printer.extruder.temperature >= 150 %}
M106 S255 ; 팬 켜기 (냉각 지원)
M109 S150 ; 150°C로 냉각될 때까지 대기【수정 가능】
{% endif %}
M106 S0 ; 팬 끄기
; 히트베드 중앙으로 이동【중요】 Z 홈 복귀 시 충돌 방지
G0 X{max_x / 2} Y{max_y / 2} F3600
G28 Z
G1 Z10 F2000
; 온도 및 팬 속도 복원
M109 S{e_target}
M106 S{fan_speed}
{% endif %}
온도 보호 로직
- 온도 확인: 노즐 목표 온도 또는 실제 온도가 ≥ 150°C인지 판단
- 팬 켜기: M106 S255로 냉각 팬 최대 속도로 켜기
- 냉각 대기: M109 S150으로 노즐이 150°C로 냉각될 때까지 대기
- 팬 끄기: M106 S0으로 팬 끄고 홈 복귀 준비
- 홈 복귀 실행: 중앙 이동 → Z 홈 복귀 → 상승
- 상태 복원: 원래 목표 온도와 팬 속도로 복원
온도 임계값 수정 방법
- 【수정 가능】 으로 표시된 두 곳을 찾습니다.
150을 원하는 온도 값으로 변경합니다.- 두 곳 모두 동일한 값으로 변경해야 합니다.
- 저장하고 Klipper를 재시작합니다.
사용 예시
G28 ; 전체 홈 복귀 → 온도 확인 → 냉각 (필요 시) → 중앙 이동 → Z 홈 복귀 → 온도 복원
관련 자료
Loading...