본문으로 건너뛰기

가속도계 테스트 및 보정

의존성 패키지 설치

주의사항
  • 기기에 FlyOS-FAST 시스템이 이미 실행 중인 경우, 필요한 의존성이 사전 설치되어 있으므로 이 단계를 건너뛸 수 있습니다.
  • 비 FLY 상위 컴퓨터를 사용하는 경우, 아래 설치 작업을 반드시 완료하세요.
  • MobaXterm, PuTTY 등 SSH 도구로 연결한 후 작업을 진행하는 것을 권장합니다.
  • 본 튜토리얼은 라즈베리파이를 기준으로 하며, 다른 플랫폼은 참고용으로만 제공됩니다.

설치 단계

  1. 아래 명령어를 순서대로 실행하여 의존성 패키지를 설치합니다.
  2. 설치 시간은 CPU 성능과 네트워크 상태에 따라 다르며, 일반적으로 10–20분이 소요되므로 설치가 완료될 때까지 기다려 주세요.
  3. 기기 메모리(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 모듈을 연결/분리하거나 노출된 핀을 만지지 마세요.

  1. 첫 실행 실패: 일부 Klipper 버전은 명령 인식 지연이 있을 수 있습니다. 첫 실행 시 데이터가 반환되지 않으면 동일한 명령을 한 번 더 실행하세요.
  2. 명령 인식 불가: 여러 번 실행해도 알 수 없는 명령으로 표시되면 Klipper 버전이 너무 낮을 수 있습니다. 다음을 권장합니다:
    • Klipper를 최신 버전으로 업데이트
    • 또는 최신 시스템을 다시 플래시(예: FlyOS-FAST 최신 버전)
  3. Invalid adxl345 id: Invalid adxl345 id (got xx vs e5) 오류가 표시되면 먼저 ACCELEROMETER_QUERY를 즉시 한 번 더 실행하세요. 그래도 오류가 지속되면 완성된 가속도계 배선, 어댑터 보드 또는 센서 모듈을 교체하여 교차 테스트하는 것을 우선 권장하며, 일반 사용자가 직접 납땜하거나 납땜 부위를 수리하는 것은 권장하지 않습니다.
  4. Invalid lis2dw / mpu / icm id: LIS2DW, MPU9250, ICM20948 등 센서를 사용하는 경우 구성 섹션 이름, 통신 버스 및 칩 모델이 실제 하드웨어와 일치하는지 확인하세요.
  5. 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을 처리해야 하며, 가속도계가 손상되었다고 바로 판단해서는 안 됩니다.

조사 방법:

  1. 전체 klippy.log에서 첫 번째 BatchBulkHelper를 찾은 후, 더 이른 시점의 Timer too close, Lost communication with MCU, MCU shutdown 또는 Serial connection closed를 위쪽으로 검색하세요.
  2. 더 이른 shutdown이 존재하는 경우, 먼저 시스템 및 타임아웃 오류에 따라 근본 원인을 처리하세요. 이후의 spi_transfer_response는 일반적으로 연결이 복구되면 사라집니다.
  3. 더 이른 shutdown이 없고 매번 ACCELEROMETER_QUERY 실행 시 즉시 오류가 발생하는 경우, 가속도계의 [mcu], cs_pin, spi_bus 및 칩 유형을 확인하세요.
전원 차단 작업

가속도계 배선, 어댑터 보드 또는 모듈을 재장착하거나 교체하기 전에 프린터 전원을 완전히 끄고 전원 공급을 차단하세요. 전원이 켜진 상태에서 SPI/I2C 배선을 연결/분리하거나 노출된 핀을 만지지 마세요.

  1. 전원 차단 후 완성된 배선, 어댑터 보드 또는 센서 모듈을 교체하여 교차 테스트하세요. 일반 사용자가 직접 납땜하거나 점퍼선을 연결하도록 하지 마세요.
  2. 공진 테스트 시작 또는 종료 시에만 오류가 발생하는 경우, 카메라, 화면 및 기타 고부하 서비스를 임시로 끈 후 다시 테스트하고, 추가 분석을 위해 전체 로그를 보관하세요.

결과 판단

  • 정상 출력: 연속적인 데이터 흐름이 반환되면(아래 그림 참조), 가속도계가 정상 작동하는 것이므로 공진 보상 측정을 진행할 수 있습니다.
  • 오류 출력: 시간 초과, 데이터 없음 또는 통신 오류가 표시되면 다음 순서로 확인하세요:
    1. 전원 차단 후 가속도계 배선이 견고한지 확인
    2. 구성 파일의 센서 설정과 SPI가 올바른지 확인
    3. 완성된 배선, 어댑터 보드 또는 센서 모듈 교체를 우선적으로 통해 전원/통신 문제 판단
Loading...

공진 테스트 일반적인 오류

오류 메시지일반적인 원인처리 방법
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 axesTEST_RESONANCES에 Z축과 X/Y축이 동시에 지정됨Z축은 별도로 테스트해야 하며 X/Y와 혼합하지 마세요
Invalid POINT parameterPOINT= 좌표 형식 오류 또는 x,y,z 세 값 누락POINT=100,100,20 형식으로 입력
Invalid NAME parameter출력 이름이 비어 있거나 특수 문자가 포함되거나 명령 요구 사항과 불일치영어, 숫자, 밑줄 또는 하이픈으로 이름 지정
No accelerometer measurements found테스트 과정에서 유효한 가속도 데이터를 수집하지 못함먼저 ACCELEROMETER_QUERY를 실행한 후, 센서 고정 및 통신 확인
Unsupported outputOUTPUT= 매개변수에 지원되지 않는 유형 입력Klipper가 지원하는 출력 유형에 따라 입력, 일반적으로 resonances 사용

ACCELEROMETER_QUERY가 정상인데 공진 테스트가 계속 실패하는 경우, 다음 순서로 우선적으로 확인하세요:

  1. 전원 차단 후 가속도계 표면이 테스트 대상 부품에 밀착되어 있고 완충재나 양면테이프가 느슨하지 않은지 확인.
  2. 테스트 중 모델 냉각 팬, 핫엔드 팬 및 챔버 팬을 임시로 끄기.
  3. 테스트 중 배선이 센서를 당기거나 운동 축에 걸리지 않는지 확인.
  4. 테스트 진폭 증가: [resonance_tester]에서 accel_per_hz를 기본값 75에서 100–150으로 점진적으로 높이기.
  5. 툴보드(USB/CAN)의 가속도계를 사용하는 경우, 통신선이 모터선이나 히트베드선 근처에 있지 않은지 확인.

가속도계 방향 설정

가속도계의 설치 방향은 공진 측정 결과에 영향을 미칩니다. axes_map 설정이 실제 설치 방향과 일치하지 않으면 TEST_RESONANCES 또는 SHAPER_CALIBRATE가 잘못된 주파수 응답을 제공하여 Input Shaper 보상이失效됩니다.

axes_map이란?

axes_map은 가속도계 자체의 축을 프린터의 X/Y/Z 좌표에 매핑하는 데 사용됩니다. 각 툴보드, 핫엔드 셸 또는 가속도계 모듈의 설치 방향이 다를 수 있으므로 실제 설치 방식에 따라 구성해야 합니다.

axes_map을 입력하지 않으면 Klipper는 기본적으로 x,y,z를 사용하며, 이는 가속도계의 X/Y/Z가 프린터의 X/Y/Z에 직접 대응함을 의미합니다.

[adxl345]
cs_pin: toolboard:PB12
spi_bus: spi1
axes_map: x,y,z # 실제 설치 방향에 따라 조정

axes_map은 축 순서 교환 및 반전(축 앞에 - 추가)을 지원합니다:

설치 상황설정 예시
가속도계 X/Y가 프린터와 일치axes_map: x,y,z
가속도계 90° 회전, X/Y 교체axes_map: y,x,z
가속도계 뒤집어 설치, Z축 반전axes_map: x,y,-z
가속도계 측면 설치, Y/Z 교체axes_map: x,z,y

[adxl345], [lis2dw], [mpu9250], [bmi160], [icm20948] 등 가속도계 설정 섹션은 모두 동일한 axes_map 규칙을 사용합니다.

ACCELEROMETER_QUERY로 방향 초기 판단

정지 상태에서 가속도계는 약 1g의 중력 가속도를 감지합니다. 어떤 축이 ±1g에 가까운 값을 표시하는지 관찰하면 가속도계의 방향을 초기에 판단할 수 있습니다:

  1. ACCELEROMETER_QUERY를 실행하여 각 축의 판독값을 기록합니다.
  2. 프린터(또는 가속도계)를 X, Y, Z 방향으로 각각 기울여 어떤 축의 판독값 변화가 가장 큰지 관찰합니다.
  3. 프린터 X 방향으로 기울였을 때 가속도계 Y축 판독값 변화가 가장 크다면 X/Y 매핑을 교체해야 합니다.
  4. 특정 축의 판독값 부호가 반대인 경우(예: 정방향으로 기울였을 때 음수 판독) 해당 축 앞에 -를 추가합니다.

Shake&Tune으로 방향 검증

전제 조건

다음 방법은 Klippain Shake&Tune 플러그인이 설치되어 있어야 합니다. FlyOS-Fast v1.3.5 이상 버전에는 사전 설치되어 있습니다.

Shake&Tune이 생성한 스펙트럼 그래프로 axes_map이 올바른지 직관적으로 검증할 수 있습니다:

  1. X축과 Y축 공진 테스트를 각각 실행합니다:

    TEST_RESONANCES AXIS=X
    TEST_RESONANCES AXIS=Y
  2. 생성된 스펙트럼 그래프를 확인합니다:

    • 방향 올바름: X축 테스트의 스펙트럼 그래프에는 명확한 X 방향 공진 피크가 표시되고, Y축 테스트에는 명확한 Y 방향 공진 피크가 표시되어야 하며, 두 주파수는 일반적으로 다릅니다.
    • 방향 오류: X축 테스트와 Y축 테스트의 스펙트럼 그래프가 거의 동일하거나 공진 피크 위치가 비정상적으로 가깝다면 axes_map을 조정해야 할 수 있습니다.
  3. axes_map을 수정한 후 RESTART를 실행하고 테스트를 다시 실행하여 결과를 비교합니다.

주의

axes_map 구성 오류는 통신 오류를 발생시키지 않으며 ACCELEROMETER_QUERY는 여전히 정상적으로 데이터를 반환합니다. 공진 측정 결과만 비정상이므로 간과하기 쉽습니다.

axes_map 상세 문제 해결: 공진 보상 및 압력 어드밴스 구성 문제의 axes_map 섹션 보기

가속도계 캘리브레이션

Shake&Tune을 사용하여 더 상세한 분석을 얻으세요

시스템에 Klippain Shake&Tune 플러그인이 설치되어 있는 경우 TEST_RESONANCES 명령은 스펙트럼 차트와 벨트 비교 차트를 자동으로 생성하여 내장 SHAPER_CALIBRATE보다 더 직관적인 시각화 분석을 제공합니다. FlyOS-Fast v1.3.5 이상 버전에는 이 플러그인이 사전 설치되어 있습니다.

캘리브레이션 단계

  1. 프린터가 귀환(homing) 되었는지 확인하세요.

  2. 콘솔에 다음 명령을 입력하여 X, Y축 자동 캘리브레이션을 시작합니다:

    SHAPER_CALIBRATE
  3. 캘리브레이션이 완료된 후 설정을 저장합니다:

    SAVE_CONFIG

단일 축 캘리브레이션

단일 축만 캘리브레이션해야 하는 경우 다음을 사용할 수 있습니다:

SHAPER_CALIBRATE AXIS=X

또는 XY로 교체합니다.

안전 주의사항

캘리브레이션 과정에서 프린터가 심하게 진동할 수 있습니다. 진동이 과도할 경우 즉시 비상 정지 버튼을 누르거나 M112 명령을 보내 긴급 정지하세요.

진동 강도 조절

테스트 중 진동이 너무 강할 경우 accel_per_hz 매개변수 값(기본값 75)을 적절히 낮출 수 있습니다:

[resonance_tester]
accel_per_hz: 50

설정 및 튜닝 문제: 가속도계 하드웨어는 정상이지만 공진 보상 활성화 후 효과가 좋지 않거나, shaper_freq 설정이 잘못되었거나, Pressure Advance와 Input Shaper 간의 충돌 등의 문제는 공진 보상 및 압력 전진 설정 문제를 참조하세요.

설명: 위 단계는 대부분의 Klipper 기반 3D 프린터 공진 보상 설정에 적용됩니다. 실제 하드웨어 및 시스템 환경에 따라 조정하세요.

Loading...