가속도계 사용
메인보드 배선
TFT 화면과 SPI 가속도계 인터페이스를 동시에 사용할 수 없습니다!
- 물리적 충돌: TFT 화면(FPC-TFT 인터페이스 통해), SPI 가속도계 인터페이스(ZH1.5-7P) 및 RRF 확장 인터페이스는 하드웨어적으로 동일한 SPI 리소스 그룹을 공유합니다.
- 결과: 동시에 연결할 경우 화면 표시 이상 및 가속도계 측정 데이터 심각한 오차가 발생합니다.
- 해결 방법: 사용 시 반드시 둘 중 하나만 연결하십시오.
설정
[mcu host]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: host:gpiochip0/gpio263
spi_bus: spidev1.2
[resonance_tester]
accel_chip: adxl345
#accel_chip_y: adxl345 bed
probe_points:
100, 100, 20 # 예시
사용법
가속도계 테스트 및 보정
의존성 패키지 설치
- 기기에 FlyOS-FAST 시스템이 이미 실행 중인 경우, 필요한 의존성이 사전 설치되어 있으므로 이 단계를 건너뛸 수 있습니다.
- 비 FLY 상위 컴퓨터를 사용하는 경우, 아래 설치 작업을 반드시 완료하세요.
- MobaXterm, PuTTY 등 SSH 도구로 연결한 후 작업을 진행하는 것을 권장합니다.
- 본 튜토리얼은 라즈베리파이를 기준으로 하며, 다른 플랫폼은 참고용으로만 제공됩니다.
설치 단계
- 아래 명령어를 순서대로 실행하여 의존성 패키지를 설치합니다.
- 설치 시간은 CPU 성능과 네트워크 상태에 따라 다르며, 일반적으로 10–20분이 소요되므로 설치가 완료될 때까지 기다려 주세요.
- 기기 메모리(RAM)가 너무 작으면 설치가 실패할 수 있습니다.
1단계: 시스템 의존성 패키지 설치
sudo apt install python3-numpy python3-matplotlib libatlas-base-dev
2단계: Klipper 가상 환경 의존성 패키지 설치
~/klippy-env/bin/pip install matplotlib numpy
가속도계 테스트
사전 조건
- 프린터가 귀환(Homing) 작업을 완료했을 것.
- Klipper 구성 파일에 가속도계가 올바르게 활성화되어 있을 것.
테스트 명령어
Klipper 콘솔에서 다음 명령어를 입력합니다:
ACCELEROMETER_QUERY
여러 개의 가속도계가 연결된 경우, 칩을 지정하여 테스트할 수 있습니다:
ACCELEROMETER_QUERY CHIP=<ADXL칩 이름>
<ADXL칩 이름>을 실제 가속도계 식별자(예: adxl345)로 교체하세요.
일부 구형 Klipper 버전은 ACCELEROMETER_QUERY를 두 번 실행해야 가속도 데이터를 얻을 수 있습니다.
일반적인 문제 해결
가속도계 배선을 점검, 재장착 또는 교체하기 전에 프린터 전원을 완전히 끄고 전원 공급을 차단하세요. 전원이 켜진 상태에서 ADXL/LIS2DW/MPU/ICM 모듈을 연결/분리하거나 노출된 핀을 만지지 마세요.
- 첫 실행 실패: 일부 Klipper 버전은 명령 인식 지연이 있을 수 있습니다. 첫 실행 시 데이터가 반환되지 않으면 동일한 명령을 한 번 더 실행하세요.
- 명령 인식 불가: 여러 번 실행해도 알 수 없는 명령으로 표시되면 Klipper 버전이 너무 낮을 수 있습니다. 다음을 권장합니다:
- Klipper를 최신 버전으로 업데이트
- 또는 최신 시스템을 다시 플래시(예: FlyOS-FAST 최신 버전)
- Invalid adxl345 id:
Invalid adxl345 id (got xx vs e5)오류가 표시되면 먼저ACCELEROMETER_QUERY를 즉시 한 번 더 실행하세요. 그래도 오류가 지속되면 완성된 가속도계 배선, 어댑터 보드 또는 센서 모듈을 교체하여 교차 테스트하는 것을 우선 권장하며, 일반 사용자가 직접 납땜하거나 납땜 부위를 수리하는 것은 권장하지 않습니다. - Invalid lis2dw / mpu / icm id: LIS2DW, MPU9250, ICM20948 등 센서를 사용하는 경우 구성 섹션 이름, 통신 버스 및 칩 모델이 실제 하드웨어와 일치하는지 확인하세요.
- Unable to obtain response / timeout: 일반적으로 상위 컴퓨터와 가속도계 MCU 간 통신 오류를 의미합니다. USB/CAN 연결,
[mcu]ID,cs_pin,spi_bus또는i2c_bus를 확인하세요.
BatchBulkHelper / spi_transfer_response
오류 메시지: ACCELEROMETER_QUERY, TEST_RESONANCES 또는 SHAPER_CALIBRATE 실행 시 다음이 나타납니다:
BatchBulkHelper start callback error
BatchBulkHelper stop callback error
Unable to obtain 'spi_transfer_response' response
오류 특성: spi_transfer_response는 Klipper가 SPI 요청에 대한 응답을 받지 못했음을 의미하지만, 이것이 반드시 최초 원인은 아닙니다. 최근 로그 사례에서 MCU가 먼저 Timer too close로 인해 shutdown된 후, ADXL 배치 수집 시 SPI 응답을 얻지 못했다는 오류가 표시되었습니다. 이 경우 먼저 앞선 shutdown을 처리해야 하며, 가속도계가 손상되었다고 바로 판단해서는 안 됩니다.
조사 방법:
- 전체
klippy.log에서 첫 번째BatchBulkHelper를 찾은 후, 더 이른 시점의Timer too close,Lost communication with MCU,MCU shutdown또는Serial connection closed를 위쪽으로 검색하세요. - 더 이른 shutdown이 존재하는 경우, 먼저 시스템 및 타임아웃 오류에 따라 근본 원인을 처리하세요. 이후의
spi_transfer_response는 일반적으로 연결이 복구되면 사라집니다. - 더 이른 shutdown이 없고 매번
ACCELEROMETER_QUERY실행 시 즉시 오류가 발생하는 경우, 가속도계의[mcu],cs_pin,spi_bus및 칩 유형을 확인하세요.
가속도계 배선, 어댑터 보드 또는 모듈을 재장착하거나 교체하기 전에 프린터 전원을 완전히 끄고 전원 공급을 차단하세요. 전원이 켜진 상태에서 SPI/I2C 배선을 연결/분리하거나 노출된 핀을 만지지 마세요.
- 전원 차단 후 완성된 배선, 어댑터 보드 또는 센서 모듈을 교체하여 교차 테스트하세요. 일반 사용자가 직접 납땜하거나 점퍼선을 연결하도록 하지 마세요.
- 공진 테스트 시작 또는 종료 시에만 오류가 발생하는 경우, 카메라, 화면 및 기타 고부하 서비스를 임시로 끈 후 다시 테스트하고, 추가 분석을 위해 전체 로그를 보관하세요.
결과 판단
- 정상 출력: 연속적인 데이터 흐름이 반환되면(아래 그림 참조), 가속도계가 정상 작동하는 것이므로 공진 보상 측정을 진행할 수 있습니다.
- 오류 출력: 시간 초과, 데이터 없음 또는 통신 오류가 표시되면 다음 순서로 확인하세요:
- 전원 차단 후 가속도계 배선이 견고한지 확인
- 구성 파일의 센서 설정과 SPI가 올바른지 확인
- 완성된 배선, 어댑터 보드 또는 센서 모듈 교체를 우선적으로 통해 전원/통신 문제 판단
공진 테스트 일반적인 오류
| 오류 메시지 | 일반적인 원인 | 처리 방법 |
|---|---|---|
No data received from accelerometer | 가속도계 미연결, SPI/I2C 배선 순서 오류, 전원 공급 이상 | 먼저 ACCELEROMETER_QUERY를 실행하여 통신이 정상인지 확인한 후 다시 테스트 |
Insufficient axis data for shaper calibration | 이동 범위가 너무 작음, 가속도가 너무 낮음, 센서 판독 노이즈가 너무 큼 | 테스트 범위 또는 accel_per_hz를 늘리고, 가속도계가 단단히 고정되었는지 확인 |
Frequency range too narrow | 벨트가 너무 느슨함, 기계 공진 주파수가 측정 범위를 벗어남 | 벨트 장력, 기계 구조 고정 확인; 필요한 경우 max_freq를 낮추거나 accel_per_hz를 높임 |
| 공진 그래프가 모두 노이즈이고 뚜렷한 피크 없음 | 센서가 단단히 고정되지 않음, 팬 진동 간섭, 배선 흔들림 | 전원 차단 후 센서 재고정, 테스트 시 팬 끄기, 신호선과 모터선을 분리배선 |
SHAPER_CALIBRATE 실행 후 출력 없음 또는 오류 종료 | Python 의존성 누락(numpy/matplotlib), 메모리 부족 | 문서 시작 부분의 의존성 설치 단계에 따라 보완 설치; 대형 공진 그래프 계산에는 더 많은 메모리가 필요할 수 있음 |
Cannot test Z axis together with other axes | TEST_RESONANCES에 Z축과 X/Y축이 동시에 지정됨 | Z축은 별도로 테스트해야 하며 X/Y와 혼합하지 마세요 |
Invalid POINT parameter | POINT= 좌표 형식 오류 또는 x,y,z 세 값 누락 | POINT=100,100,20 형식으로 입력 |
Invalid NAME parameter | 출력 이름이 비어 있거나 특수 문자가 포함되거나 명령 요구 사항과 불일치 | 영어, 숫자, 밑줄 또는 하이픈으로 이름 지정 |
No accelerometer measurements found | 테스트 과정에서 유효한 가속도 데이터를 수집하지 못함 | 먼저 ACCELEROMETER_QUERY를 실행한 후, 센서 고정 및 통신 확인 |
Unsupported output | OUTPUT= 매개변수에 지원되지 않는 유형 입력 | Klipper가 지원하는 출력 유형에 따라 입력, 일반적으로 resonances 사용 |
ACCELEROMETER_QUERY가 정상인데 공진 테스트가 계속 실패하는 경우, 다음 순서로 우선적으로 확인하세요:
- 전원 차단 후 가속도계 표면이 테스트 대상 부품에 밀착되어 있고 완충재나 양면테이프가 느슨하지 않은지 확인.
- 테스트 중 모델 냉각 팬, 핫엔드 팬 및 챔버 팬을 임시로 끄기.
- 테스트 중 배선이 센서를 당기거나 운동 축에 걸리지 않는지 확인.
- 테스트 진폭 증가:
[resonance_tester]에서accel_per_hz를 기본값75에서100–150으로 점진적으로 높이기. - 툴보드(USB/CAN)의 가속도계를 사용하는 경우, 통신선이 모터선이나 히트베드선 근처에 있지 않은지 확인.
가속도계 보정
보정 단계
-
프린터가 귀환되었는지 확인.
-
콘솔에 다음 명령어를 입력하여 X, Y축 자동 보정을 시작합니다:
SHAPER_CALIBRATE -
보정 완료 후 구성을 저장합니다:
SAVE_CONFIG
단일 축 보정
단일 축만 보정해야 하는 경우 다음을 사용할 수 있습니다:
SHAPER_CALIBRATE AXIS=X
또는 X를 Y로 교체합니다.
보정 과정에서 프린터가 심하게 진동할 수 있습니다. 진동이 과도한 경우 즉시 비상 정지 버튼을 누르거나 M112 명령을 보내 긴급 정지하세요.
진동 강도 조절
테스트 시 진동이 너무 강한 경우 accel_per_hz 매개변수 값(기본값 75)을 적절히 낮출 수 있습니다:
[resonance_tester]
accel_per_hz: 50
설정 및 튜닝 문제: 가속도계 하드웨어는 정상이지만 공진 보상 활성화 후 효과가 좋지 않거나,
shaper_freq설정이 부적절하거나, Pressure Advance와 Input Shaper 간 충돌 등의 문제는 공진 보상 및 압력 전진 설정 문제를 참조하십시오.
설명: 위 단계는 대부분의 Klipper 기반 3D 프린터 공진 보상 설정에 적용됩니다. 실제 하드웨어 및 시스템 환경에 따라 조정하십시오.