막힘 감지 최적화
기능 설명
FAST 1.3.8 버전에서는 막힘 감지 기능을 최적화하여 더 정밀한 막힘 감지 기능과 유연한 구성 옵션을 제공합니다. 이 기능은 압출기의 토출 상태를 실시간으로 모니터링하며, 막힘 또는 단절이 감지되면 자동으로 인쇄를 일시 정지하고 사용자에게 알림을 표시합니다.
시스템 버전 요구 사항: 이 기능은 FlyOS-Fast 시스템 버전이 v1.3.8 이상이어야 정상적으로 사용할 수 있습니다.
구성 방법
- 다음 구성을
printer.cfg파일에 추가하세요: - 이것은 참고 구성이며, 구체적인 매개변수는 실제 상황에 따라 조정해야 할 수 있습니다
[filament_blockage_detection my_sensor]
switch_pin: ^PA10
extruder: extruder
distance_per_edge: 0.232
detection_length: 3
pause_on_runout: True
runout_gcode: M118 프린트 중 막힘
insert_gcode: M118 유휴 시 복구
기본 매개변수:
| 매개변수 | 기본값 | 설명 |
|---|---|---|
switch_pin | 필수 | 막힘 감지 센서의 핀, ^는 풀업 저항 활성화를 의미 |
extruder | extruder | 연결된 익스트루더 이름 |
distance_per_edge | 필수 | 센서의 각 펄스에 해당하는 필라멘트 이동 거리(mm), 교정 후 자동 업데이트 |
detection_length | 7.0 | 슬립 거리가 이 임계값(mm)을 초과하고 연속 여러 번 확인 후 막힘으로 판정 |
recovery_length | detection_length * 0.5 | 슬립 거리가 이 값(mm) 이하로 떨어지면 정상 상태로 복구 |
pause_on_runout | — | 막힘 감지 시 프린트 자동 일시정지 여부 |
runout_gcode | — | 막힘 감지 시 실행되는 G-code |
insert_gcode | — | 필라멘트 복구 감지 시 실행되는 G-code |
고급 매개변수 (일반적으로 기본값을 사용하면 됩니다):
| 매개변수 | 기본값 | 설명 |
|---|---|---|
window_length | detection_length * 3 | 슬라이딩 윈도우 길이(mm) |
retraction_min_delta | 0.050 | 리트랙션 운동으로 판정하는 최소 압출 변위(mm), 이 값 미만은 정지로 간주 |
blockage_sample_count | 2 | 연속 임계값 초과 확인 횟수, 도달 시 막힘 판정 (1-5) |
distance_per_edge 매개변수는 CALIBRATE_FILAMENT_BLOCKAGE 교정 명령 실행 후 최적값이 자동 계산되며, SAVE_CONFIG 명령을 통해 구성 파일에 영구 저장됩니다. 초기 구성 시 임의의 값을 입력할 수 있으며, 교정 후 자동으로 덮어씌워집니다.
캘리브레이션 절차
검출 정밀도를 보장하기 위해 사용 전에 센서 캘리브레이션을 수행하는 것을 권장합니다.
단계 1: 노즐 가열
노즐을 정상 작동 온도(권장 220℃)로 가열합니다:
M104 S220
M109 S220
단계 2: 캘리브레이션 명령 실행
노즐이 목표 온도에 도달한 후, 다음 캘리브레이션 명령을 실행합니다:
CALIBRATE_FILAMENT_BLOCKAGE SENSOR=my_sensor TEMPERATURE=220
명령 매개변수:
| 매개변수 | 기본값 | 설명 |
|---|---|---|
SENSOR | 필수 | 센서 이름, 설정의 [filament_blockage_detection my_sensor]에 대응 |
TEMPERATURE | 필수 | 캘리브레이션 시 노즐 온도(℃) |
DISTANCE | 30.0 | 매 회차 캘리브레이션의 압출 길이(mm) |
COUNT | 5 | 캘리브레이션 회차 수(1-20), 여러 회차의 평균값 사용 |
SPEED | 2.0 | 압출 속도(mm/s) |
SETTLE_TIME | 0.375 | 매 회차 압출 후 센서 보고를 대기하는 안정화 시간(초) |
MIN_EDGES | 1 | 매 회차 최소 캡처 펄스 수, 미만 시 오류 발생 |
캘리브레이션 과정에서 시스템은 자동으로 여러 회차의 압출을 수행하고, 각 회차의 엔코더 펄스 수를 집계하여 최적의 distance_per_edge를 계산하고 결과를 안내합니다.
캘리브레이션 출력 예시:
Filament blockage sensor my_sensor calibration round 1/5:
edge_count_delta: 130
implied_distance_per_edge: 0.230769 mm
...
Filament blockage sensor my_sensor calibration result:
samples: 130, 129, 131, 130, 128
average_edge_count: 129.600
calibrated_distance_per_edge: 0.231481 mm
The SAVE_CONFIG command will update the printer config file
with this parameter and restart the printer.
단계 3: 캘리브레이션 결과 저장
캘리브레이션 완료 후, 다음 명령을 실행하여 새로운 distance_per_edge를 설정 파일에 저장하고 Klipper를 재시작합니다:
SAVE_CONFIG
센서 상태 조회
QUERY_FILAMENT_BLOCKAGE 명령을 사용하면 센서의 측정 데이터를 실시간으로 확인할 수 있으며, 압출 길이, 엔코더 측정 거리, 슬립량 등의 주요 정보가 포함됩니다.
QUERY_FILAMENT_BLOCKAGE SENSOR=my_sensor
반환 필드 설명:
| 필드 | 설명 |
|---|---|
total_extruded_distance | 누적 압출기 지령 이동 거리(mm) — Klipper가 압출기를 전진시킨 총 길이 |
total_measured_distance | 누적 엔코더 실제 측정 거리(mm) — 센서가 실제로 감지한 필라멘트 이동량 |
raw_measured_distance | 원시 엔코더 측정 거리(mm) — 방향 판단 없이 누적된 값 |
expected_distance | 마지막 운동 방향 변경 이후 예상 압출 거리(mm) |
measured_distance | 현재 윈도우 내 실제 측정 거리(mm) |
slip_distance | 슬립 거리(mm) — 예상 거리와 실제 측정값의 차이, detection_length 초과 시 막힘 판정 트리거 |
measured_speed | 현재 측정 속도(mm/s) |
edge_count | 엔코더 누적 펄스 수 |
pending_blockage_count | 현재 연속 임계값 초과 확인 횟수, blockage_sample_count 도달 시 막힘 판정 |
in_retraction | 현재 리트랙션 상태 여부(True/False) |
blocked | 막힘으로 판정되었는지 여부(True/False) |
printing | 현재 출력 상태 여부(True/False) |
사용 시나리오:
- 막힘 오탐 트러블슈팅:
total_extruded_distance와total_measured_distance를 비교하여 두 값의 차이가 지속적으로 증가하면 엔코더가 감지한 필라멘트 이동이 압출 지령보다 뒤처지고 있음을 의미하며, 미끄러짐이 발생할 수 있음 - 센서 정상 여부 확인: 출력 중
measured_speed를 조회하여 정상 압출 시 안정적인 속도 판독값이 있어야 함 - 슬립 추세 확인:
slip_distance가detection_length에 근접하면 주의가 필요하며, 지속적으로 초과하면 출력을 일시정지해야 함
장애 해결
문제 1: 막힘 감지가 트리거되지 않음
가능한 원인:
- 센서가 올바르게 연결되지 않음
switch_pin구성 오류- 하위 제어기 펌웨어가 업데이트되지 않음
해결 방법:
- 센서 하드웨어 연결 확인
- 핀 구성이 실제 하드웨어와 일치하는지 확인
- 하위 제어기 펌웨어를 최신 버전으로 업데이트
문제 2: 막힘 오보
가능한 원인:
distance_per_edge매개변수가 정확하지 않음detection_length임계값이 너무 작음
해결 방법:
- 보정 명령 재실행
detection_length값을 적절히 증가(권장 3-5mm)
문제 3: 보정 실패
가능한 원인:
- 노즐 온도가 요구 사항에 도달하지 않음
- 센서 하드웨어 고장
해결 방법:
- 노즐이 지정된 온도로 가열되었는지 확인
- 센서가 정상적으로 작동하는지 확인
- Klipper 서비스를 재시작해 보기
사용 권장 사항
- 필라멘트 브랜드나 직경을 변경할 때마다 센서를 재보정하는 것을 권장합니다
- 센서 상태를 정기적으로 점검하여 감지 정밀도를 유지하세요
- 막힘 감지 기능을 오랜 기간 사용하지 않은 경우, 재보정 후 사용하는 것을 권장합니다
사용 권장 사항
- 소모품 브랜드 또는 직경을 교체할 때마다 센서를 재교정하는 것이 좋습니다
- 센서 상태를 정기적으로 점검하여 감지 정밀도를 보장하십시오
- 막힘 감지 기능을 장시간 사용하지 않은 경우, 재교정 후 사용하는 것이 좋습니다