주변기기 및 드라이버 테스트
이 문서는 스텝 드라이버, CAN 툴 보드 등의 주변기기 모듈이 정상적으로 작동하는지 확인하기 위한 것입니다. 테스트 방식은 기본 I/O 테스트와 동일하며, 최소화된 Klipper 설정을 사용하여 개별 하드웨어를 분리합니다.
MCU 연결, 온도 센서, 팬 출력 또는 입력 포트를 테스트해야 하는 경우 먼저 하드웨어 테스트 방법을 참조하십시오.
드라이버 테스트
테스트 목적
가장 간단한 Klipper 설정을 사용하여 단일 TMC 드라이버(UART 또는 SPI 모드)가 메인보드와 정상적으로 통신할 수 있는지 확인하고, 모터가 제어되어 작동하는지 확인합니다.
사전 조건
먼저 프린터를 완전히 종료하고 전원 공급 장치를 분리한 후 다음 작업을 진행하십시오. 드라이버 모듈 또는 스텝 모터 케이블을 전원이 켜진 상태에서 삽입하거나 분리하지 마십시오.
- 프린터의 전원이 완전히 차단되었습니다.
- 테스트할 TMC 드라이버가 메인보드의 해당 소켓에 올바르게 삽입되었으며, 방향이 올바른지 확인합니다.
- UART 모드 드라이버(예: TMC2209)의 경우 해당 드라이버 포트의 UART 점퍼 캡이 설치되어 있는지 확인합니다.
- 테스트할 드라이버 포트에 하나의 스텝 모터만 연결하고, 나머지 드라이버 포트는 비워둡니다.
- 테스트할 드라이버만 포함된 최소
printer.cfg파일을 준비합니다. 기존 전체 설정 파일은 백업해 두는 것이 좋습니다.
단일 드라이버 최소 설정
다음 최소 설정을 사용하여 printer.cfg를 교체하고, [printer], [mcu], 테스트할 [manual_stepper Drive0] 및 해당 [tmcXXXX manual_stepper Drive0] 섹션만 유지합니다. [manual_stepper]는 여전히 최소 [printer] 섹션(kinematics: none)이 필요하며, 이는 모션 축 설정보다 간단하여 순수 하드웨어 검증에 적합합니다.
- UART 모드 (TMC2209 / TMC2240 등)
- SPI 모드 (TMC5160 / TMC2130 등)
[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx
[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
[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx
[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에 인식되었는지 확인하고, 툴 보드의 온도, 팬, 가속도계 또는 입력 포트를 확인합니다.
최소 설정
[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, 서미스터 커넥터 | 온도, 가열 및 압출 오류 |
| 히터 또는 베드 shutdown | 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 페이지에서 계속 문제를 해결하십시오.