주변 장치 및 드라이버 테스트
이 문서는 스텝 드라이버, CAN 툴 보드 등의 주변 장치 모듈이 정상적으로 작동하는지 확인하기 위한 것입니다. 테스트 방식은 기본 I/O 테스트와 동일하며, 최소화된 Klipper 구성을 사용하여 단일 하드웨어를 격리합니다.
MCU 연결, 온도 센서, 팬 출력 또는 입력 포트를 테스트해야 하는 경우 먼저 하드웨어 테스트 방법을 참조하세요.
드라이버 테스트
테스트 목적
가장 간단한 Klipper 구성을 사용하여 단일 TMC 드라이버(UART 또는 SPI 모드)가 메인보드와 정상적으로 통신할 수 있는지 확인하고, 모터가 제어되어 작동하는지 확인합니다.
전제 조건
프린터를 완전히 종료하고 전원 공급을 차단한 후 다음 작업을 수행하세요. 드라이버 모듈이나 스텝 모터 케이블을 전원이 켜진 상태에서 연결하거나 분리하지 마십시오.
- 프린터 전원이 완전히 차단되었습니다.
- 테스트할 TMC 드라이버가 메인보드의 해당 소켓에 올바르게 삽입되었고 방향이 올바른지 확인합니다.
- UART 모드 드라이버(예: TMC2209)인 경우 해당 드라이버 포트의 UART 점퍼 캡이 설치되었는지 확인합니다.
- 테스트할 드라이버 포트에 하나의 스텝 모터만 연결하고, 나머지 드라이버 포트는 비워둡니다.
- 기존 전체 구성 파일을 백업하고, 기본 최소 구성과 테스트할 드라이버 부분만 포함된 임시
printer.cfg를 준비합니다.
단일 드라이버 최소 구성
먼저 기본 최소 구성을 작성한 다음, 현재 드라이버 모드에 해당하는 테스트 조각을 기본 구성 뒤에 추가합니다. [manual_stepper]는 여전히 가장 간단한 [printer] 섹션(kinematics: none)이 필요하며, 모션 축 구성보다 간단하여 순수 하드웨어 검증에 적합합니다.
기본 최소 구성
[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx
드라이버 테스트 구성 조각
아래에는 추가해야 할 드라이버 테스트 조각만 표시합니다. 두 번째 [printer] 또는 [mcu]를 추가하지 마십시오.
- UART 모드 (TMC2209 / TMC2240 등)
- SPI 모드 (TMC5160 / TMC2130 등)
[manual_stepper Drive0]
# 실제 메인보드 핀에 따라 다음 세 항목을 수정하십시오.
step_pin: PE2
dir_pin: PC5
enable_pin: !PF11
# 다음 매개변수는 수정할 필요가 없습니다.
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000
[tmc2209 manual_stepper Drive0]
# 실제 메인보드 핀에 따라 uart_pin을 수정하십시오.
# 드라이버 제조업체 데이터에 따라 sense_resistor를 수정하십시오.
uart_pin: PC4
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
[manual_stepper Drive0]
# 실제 메인보드 핀에 따라 다음 세 항목을 수정하십시오.
step_pin: PE2
dir_pin: PC5
enable_pin: !PF11
# 다음 매개변수는 수정할 필요가 없습니다.
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000
[tmc5160 manual_stepper Drive0]
# 실제 메인보드 핀에 따라 cs_pin과 spi_bus를 수정하십시오.
# 드라이버 제조업체 데이터에 따라 sense_resistor를 수정하십시오.
cs_pin: PC4
spi_bus: spi1a
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
serial: 메인보드의 실제 직렬 포트 ID로 교체하십시오(ls /dev/serial/by-id/로 확인 가능). 기본 최소 구성에 한 곳만 유지하십시오.step_pin/dir_pin/enable_pin: 테스트할 드라이버 포트에 해당하는 메인보드 핀으로 교체하십시오.uart_pin(UART 모드) /cs_pin+spi_bus(SPI 모드) : 실제 핀과 SPI 버스 번호로 교체하십시오.sense_resistor: 드라이버 제조업체에서 제공한 매개변수에 따라 정확히 입력해야 하며, 칩 모델만으로 추측하지 마십시오. 다른 TMC5160 드라이브 보드는0.075,0.033,0.022또는 다른 값일 수 있습니다. TMC2240 등의 드라이버 샘플링 매개변수도 다를 수 있습니다. 제조업체 데이터에 명시되지 않은 경우, 제조업체에 우선 문의하거나 공식 구성 예시를 사용하십시오.- 구성에는 히터, 팬이 포함되어 있지 않으며, 드라이버 통신 검증에만 사용됩니다.
다중 드라이버 테스트 방법
메인보드의 여러 드라이버 포트를 하나씩 검증해야 하는 경우 테스트 구성의 명명 방식을 참조하여 각 드라이버 포트를 독립적인 Drive0, Drive1, Drive2로 작성하십시오.
[manual_stepper Drive1]
step_pin: PE3
dir_pin: PF13
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000
[tmc2209 manual_stepper Drive1]
uart_pin: PF12
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
테스트 시 현재 테스트할 드라이버 포트의 모터만 연결하고, 하나의 포트를 확인한 후 전원을 차단한 다음 다음 포트로 변경하십시오.
테스트 단계
-
기본 최소 구성과 현재 드라이버 테스트 조각을
printer.cfg로 저장합니다. -
모터와 드라이버가 제대로 연결되었는지 확인한 후 전원을 켜고 Klipper를 시작합니다.
-
Mainsail / Fluidd 콘솔에서 다음 명령을 입력하여 모터를 활성화하고 현재 위치를
0으로 설정합니다.MANUAL_STEPPER STEPPER=Drive0 ENABLE=1MANUAL_STEPPER STEPPER=Drive0 SET_POSITION=0- 활성화 후 모터에 유지 토크가 있으면
enable_pin이 기본적으로 유효한 것입니다. - 모터가 여전히 자유롭게 회전할 수 있으면 전원을 차단한 후
enable_pin, 드라이버 방향, 점퍼 캡 및 전원 공급을 확인하십시오.
- 활성화 후 모터에 유지 토크가 있으면
-
수동 이동 테스트를 실행합니다.
MANUAL_STEPPER STEPPER=Drive0 MOVE=100 SPEED=100MANUAL_STEPPER STEPPER=Drive0 MOVE=0 SPEED=100MOVE=는 대상 위치이며 상대 변위가 아닙니다.MOVE=100을 실행한 후MOVE=0을 실행하면 모터가 역방향으로 시작점으로 돌아갑니다.- 모터가 여전히 기계 운동 메커니즘에 연결되어 있는 경우, 첫 번째 테스트는 먼저
MOVE=10 SPEED=5로 변경하여 방향과 이동 범위의 안전성을 확인한 후 속도를 높이는 것이 좋습니다. - 모터가 끊김 없이 부드럽게 회전하면 드라이버, 모터 및 펄스/방향 핀이 기본적으로 정상입니다.
- 모터가 반응하지 않거나 떨림만 있거나 방향이 비정상적인 경우 전원을 차단한 후 핀 구성, 모터 배선 순서, 드라이버 방향 및 점퍼 캡을 확인하십시오.
-
TMC 통신 상태를 확인합니다.
DUMP_TMC STEPPER=Drive0레지스터 정보가 정상적으로 반환되면 UART/SPI 통신이 기본적으로 정상입니다. 레지스터를 읽을 수 없다는 메시지가 표시되면 TMC 오류 해결을 참조하십시오.
-
테스트가 끝나면 모터 활성화를 해제합니다.
MANUAL_STEPPER STEPPER=Drive0 ENABLE=0
예상 결과
| 테스트 항목 | 정상 결과 | 비정상 증상 |
|---|---|---|
| 수동 이동 | 모터가 명령에 따라 정/역방향으로 이동 | 움직이지 않음, 떨림, 끊김 또는 방향 이상 |
| TMC 통신 | DUMP_TMC가 레지스터 정보 반환 | UART/SPI 레지스터 읽기 불가 |
| 유지 토크 | ENABLE=1 후 모터 축을 자유롭게 회전 불가 | 축을 쉽게 회전 가능 (활성화되지 않음) |
위 세 항목이 모두 정상이면 드라이버와 메인보드 통신 및 모터 배선에 문제가 없는 것이므로 원래 printer.cfg로 복원하고 다른 하드웨어를 계속 확인할 수 있습니다.
CAN 툴 보드 최소 테스트
테스트 목적
CAN 툴 보드가 Klipper에 인식되었는지 확인하고, 툴 보드의 온도, 팬, 가속도계 또는 입력 포트를 확인합니다.
최소 구성
먼저 기본 최소 구성을 유지한 다음, 다음 CAN 툴 보드 테스트 조각을 구성 뒤에 추가합니다. CAN 툴 보드만 테스트하는 경우, Klipper가 정상적으로 시작되고 메인보드 연결 상태를 표시할 수 있도록 메인보드 [mcu]도 함께 유지하십시오.
[mcu tool]
canbus_uuid: xxxxxxxxxxxx
[temperature_sensor ToolBoard]
sensor_type: temperature_mcu
sensor_mcu: tool
[output_pin tool_FAN0]
pin: tool:gpio13
pwm: True
cycle_time: 0.010
value: 0
shutdown_value: 0
테스트 단계
- CAN 네트워크 구성 및 ID 검색에 따라
canbus_uuid를 검색하여 입력합니다. - Klipper를 재시작한 후
ToolBoard온도가 정상적으로 표시되는지 확인합니다. SET_PIN PIN=tool_FAN0 VALUE=1을 사용하여 툴 보드 저전압 팬 출력을 테스트하고, 테스트 후SET_PIN PIN=tool_FAN0 VALUE=0을 실행합니다.- 툴 보드 가속도계나 입력 포트를 테스트해야 하는 경우 위의 해당 섹션에 따라 구성을 추가하십시오.
CANH/CANL 배선 순서, 종단 저항, 점퍼 캡 및 와이어링 정리는 모두 전원을 차단한 상태에서 수행해야 합니다. 전원이 켜진 상태에서 CAN 케이블을 분리하거나 종단 저항을 조정하지 마십시오.
일반적인 오류 및 다음 단계
| 비정상 증상 | klippy.log 일반 키워드 | 우선 확인 사항 | 다음 단계 |
|---|---|---|---|
| Klipper가 MCU에 연결할 수 없음 | Unable to connect, Connect error, Serial connection closed | serial / canbus_uuid, 펌웨어, USB/CAN 연결 | 일반 오류 개요 |
| 온도 표시 이상 | ADC out of range, temperature, not heating | sensor_type, sensor_pin, 서미스터 플러그 | 온도, 가열 및 압출 오류 |
| 히터 또는 히트베드 셧다운 | Verify heater, not heating at expected rate | 서미스터 접촉, PID, 히터 전력, SSR | 온도, 가열 및 압출 오류 |
| 팬이 회전하지 않음 | 오류 없음 (출력 포트는 로그를 생성하지 않음) | pin, 팬 전압 사양, PWM 호환성 | 팬 교체 또는 포트 변경 교차 테스트 |
| 입력 상태 변화 없음 | 오류 없음 (입력 포트는 로그를 생성하지 않음) | 풀업 ^, 배선 순서, 스위치 유형 | 전원 차단 후 플러그 및 포트 확인 |
| 가속도계 데이터 없음 | Invalid adxl345 id, Invalid lis2dw id, timeout | cs_pin, spi_bus, 와이어링, 모듈 모델 | 가속도계 테스트 및 보정 |
| 공진 테스트 실패 | No data, Insufficient axis data, Frequency range | 센서 고정, 벨트 장력, 팬 진동 | 가속도계 테스트 및 보정 |
| 모터가 움직이지 않음 | Unable to read tmc uart, Unable to write tmc spi | step_pin, dir_pin, enable_pin, TMC 구성 | TMC 오류 해결 |
| TMC 레지스터 읽기 불가 | DRV_STATUS, read register, GSTAT | UART/SPI 핀, 점퍼 캡, 드라이버 전원, 드라이버 모델 | TMC 오류 해결 |
| CAN 툴 보드 오프라인 | bytes_invalid, Network is down, No buffer space, Timer too close | CAN 배선 순서, 종단 저항, 전원 공급, UUID | CAN 네트워크 구성 및 ID 검색 |
| 인쇄 중 무작위 지연/손실 | Stepper too far in past, Rescheduled timer, Lost communication | 상위 컴퓨터 부하, 통신선 간섭, 속도/가속도 | 시스템, 성능 및 서비스 오류 |
| 구성 저장 불가 | Unable to write, Option conflict, CRC does not match | 파일 권한, 자동 저장 영역 충돌, FIRMWARE_RESTART | 구성 관련 오류 |
참조 구성 조각
테스트 구성을 유지 관리할 때는 하드웨어 유형에 따라 해당 메인보드/툴 보드 템플릿에서 조각을 추출할 수 있습니다.
- 메인보드 테스트 :
temperature_sensor,manual_stepper DriveN,tmcXXXX manual_stepper DriveN,output_pin FANx,gcode_button IOx. - 툴 보드 테스트 :
temperature_sensor,adxl345/lis2dw,manual_stepper Drive0,output_pin FANx,gcode_button. - 다중 드라이버 테스트 :
Drive0,Drive1,Drive2와 같은 명명 방식을 유지하고, 테스트 명령의STEPPER=는 구성 섹션 이름과 일치시킵니다. - 저전압 출력 테스트 : 팬, RGB, 부저 등 저전압 부하를 우선 선택하고, 히터 카트리지나 히트베드를 일반
output_pin테스트로 사용하지 마십시오.
특정 모듈이 위의 최소 테스트를 통과할 수 없는 경우, 먼저 원래 구성을 복원한 다음 특정 오류와 함께 해당 FAQ 페이지를 참조하여 계속 문제를 해결하십시오.