MCU 연결 가이드
이 가이드는 MCU가 Klipper와 정상적으로 연결되지 않는 문제를 진단하고 해결하기 위한 것입니다.
준비 사항 및 주의 사항
- 권장하지 않는 호스트 장치: 홍미 휴대폰, WiFi 동글, 셋톱박스 등의 사용을 피하십시오. 이러한 장치는 일반적으로 맞춤형 또는 수정된 시스템을 사용하여 MCU를 올바르게 인식하지 못할 수 있습니다.
- 슬레이브 장치 수 확인: 사용 중인 슬레이브 장치(예: 툴 보드)의 수를 미리 확인하십시오. 여러 슬레이브 장치는 연결에 영향을 줄 수 있습니다.
- 배선 단순화: 메인보드와 툴 보드에서 데이터 케이블을 제외한 모든 배선을 일시적으로 제거하고, 간섭을 배제하기 위해 필요한 데이터 연결만 유지하는 것을 권장합니다.
- 권장 인터페이스: Fluidd 인터페이스 사용을 권장합니다. MCU 연결 상태를 보다 직관적으로 표시합니다.
1단계: 설정 백업 및 초기화
1. 호스트 인터페이스에 접속
브라우저에 호스트의 IP 주소(예: 192.168.101.179)를 입력하여 접속합니다.
2. 설정 파일 찾기
WEB 인터페이스에 접속하여 왼쪽 사이드바에서 설정 옵션을 찾습니다:
Fluidd 사용자: Loading... | Mainsail 사용자: Loading... |
3. 설정 파일 백업
printer.cfg 파일을 마우스 오른쪽 버튼으로 클릭하고 Duplicate를 선택하여 복사한 후, 복사본의 이름을 다음과 같이 변경합니다:
printer_Backup.cfg
Fluidd 작업 예시: Loading... | Mainsail 작업 예시: Loading... |
4. 설정 파일 초기화
printer.cfg를 다시 열고 모든 내용을 지운 후 다음 기본 설정을 붙여넣습니다:
[mcu]
serial: /tmp/klipper_host_mcu
[printer]
kinematics: none
max_velocity: 200
max_accel: 1000
5. 저장 및 재시작
- 오른쪽 상단의 SAVE & RESTART를 클릭하면 Klipper가 설정을 저장하고 서비스를 다시 시작합니다.
- 오류가 발생하면 일단 무시하십시오.
- 이후, 모든 장치(호스트 및 모든 슬레이브 장치 포함)의 전원을 완전히 차단하십시오.
- 중요: 완전히 전원을 차단해야 합니다. 그렇지 않으면 후속 단계를 진행할 수 없습니다.
2단계: 장치 감지 및 펌웨어 유형 확인
전제 조건
- 메인 장치 순서: 첫 번째
MCU는 메인보드여야 하며, 툴 보드가 아니어야 합니다. - 펌웨어 유형: FLY 메인보드의 펌웨어가 USB 펌웨어 또는 USB 브리지 CAN 펌웨어인지 확인하십시오. 이 가이드는 다른 유형에는 적용되지 않습니다.
- 연결 방식: 먼저 SSH에 연결하십시오. 이 작업은 네트워크를 통해 수행해야 합니다.
작업 단계
-
장치 감지 실행
- SSH에 성공적으로 연결한 후 다음 명령을 실행합니다:
lsusb
- 시스템이 인식된 모든 USB 장치를 나열합니다.
- SSH에 성공적으로 연결한 후 다음 명령을 실행합니다:
-
명령어 예외 처리
lsusb명령이 없다는 메시지가 표시되면 먼저 설치하십시오:sudo apt-get install usbutils- 실행 후 장치가 전혀 표시되지 않으면 호스트를 교체하는 것이 좋습니다.
-
장치 정보 식별 아래 그림을 참조하여
lsusb출력 결과에서 장치를 식별하십시오:Loading...Loading... -
펌웨어 유형 확인
- 플래시한 펌웨어에 따라
lsusb결과에서 다음 핵심 정보를 확인하십시오:- USB 펌웨어:
1d50:614e가 표시되어야 함 - USB 브리지 CAN 펌웨어:
1d50:606f가 표시되어야 함 - USB Katapult 펌웨어:
1d50:6177이 표시되어야 함 - RS232 어댑터(UTOR 사용 또는 D8 및 D8PRO 메인보드):
1a86:7523이 표시되어야 함 (G2T 사용 시 이 단계 불필요)
- USB 펌웨어:
- 플래시한 펌웨어에 따라
3단계: 장치 ID 검색
중요 사항
- USB ID 검색: USB 펌웨어에만 적용되며 CAN 또는 RS232에는 사용할 수 없습니다.
- CAN ID 검색: CAN 버스 장치에만 적용되며 USB 또는 RS232에는 사용할 수 없습니다.
- RS232 ID 검색: RS232 펌웨어에만 적용되며 USB 또는 CAN에는 사용할 수 없습니다.
- RS232 전용성: RS232 펌웨어는 일반적으로 툴 보드에만 사용되며 메인 MCU에는 적용되지 않습니다.
펌웨어 유형에 따른 방법 선택
USB 펌웨어 장치 다음 명령을 실행하여 USB 장치 ID를 검색합니다:
ls /dev/serial/by-id/*
USB 브리지 CAN 장치 시스템 유형에 따라 해당 명령을 선택하여 CAN ID를 검색합니다:
- 일반 호스트
- Fly_FAST 시스템
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python ~/klipper/scripts/canbus_query.py can0
RS232 펌웨어 장치 다음 명령을 실행하여 RS232 장치 경로를 검색합니다:
ls /dev/serial/by-path/*
결과 해석 및 처리
USB ID 검색 결과
명령 실행 후 터미널에 다음과 유사한 장치 ID가 표시됩니다(예시):
-
✅ 직접 사용 가능:
usb-필드 뒤에Klipper라고 표시된 ID -
⚠️ 펌웨어 플래싱 필요:
usb-필드 뒤에katapult라고 표시된 IDLoading...
CAN ID 검색 결과
명령 실행 후 실제 상황에 따라 판단하십시오:
- ✅ 직접 사용 가능: 표시된 ID의 끝
Application:필드에Klipper라고 표시된 경우 - ⚠️ 펌웨어 플래싱 필요: 표시된 ID의 끝
Application:필드에CANBOOT또는Katapult라고 표시된 경우 - ❌ 장치를 찾을 수 없음:
Total 0 uuids found가 표시되면 가능한 원인은 다음과 같습니다:- CAN 네트워크 구성 오류
- CAN 속도 불일치 (호스트, 메인보드, 툴 보드의 속도가 일치하는지 확인)
- 해당 ID가 이미 사용 중 (설정에서 차단한 후 종료, 전원 차단 및 재시작 필요)
RS232 ID 검색 결과
명령 실행 후 터미널에 RS232 장치 경로가 표시됩니다(예시):
/dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
RS232 장치를 설정할 때는 반드시 보드레이트와 재시작 방법을 지정해야 합니다:
[mcu toolboard]
serial: <여기에 검색된 RS232 장치 경로를 입력>
baud: 250000
restart_method: command
4단계: 메인 MCU ID 설정
설정을 시작하기 전에 툴 보드와 호스트 또는 메인보드의 연결을 분리하여 장치 식별 충돌을 방지하십시오.
printer.cfg 파일을 다시 열고 [mcu] 부분에서 serial: /tmp/klipper_host_mcu 설정 행을 찾습니다.
연결 방식에 따라 아래 해당 방법을 참조하여 설정합니다:
- USB 연결 설정
- CAN 연결 설정
serial: 뒤의 /tmp/klipper_host_mcu를 검색된 USB ID로 바꿉니다.
설정 예시:
# 검색된 USB ID:
# /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
# 설정 변경:
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
serial: /tmp/klipper_host_mcu 설정 항목을 canbus_uuid:로 바꾸고 검색된 CAN ID를 입력합니다.
설정 예시:
# 검색된 CAN ID:
# 688e89f0e401
# 설정 변경:
[mcu]
canbus_uuid: 688e89f0e401
설정을 저장하고 Klipper 서비스를 재시작합니다.
5단계: 메인 MCU 연결 확인
메인 MCU 설정을 완료한 후 연결이 성공했는지 확인해야 합니다:
- Fluidd 인터페이스를 열고 왼쪽 메뉴에서
System을 클릭합니다. - MCU 정보 확인:
Mcu Information아래에서Micro-Controller정보를 찾습니다. - 메인 컨트롤러 모델 확인: 표시된 모델이 메인보드의 실제 메인 컨트롤러 모델과 일치하는지 확인합니다.
- 메인 컨트롤러가 STM32H723인 경우
Micro-Controller에 H723 관련 모델이 표시되어야 합니다. - 올바르게 표시되지 않거나 인식할 수 없는 경우 이전 설정 단계를 확인하십시오.
6단계: 툴 보드 MCU 추가
메인 MCU가 성공적으로 확인되면 툴 보드를 추가할 수 있습니다:
- 툴 보드 다시 연결: 툴 보드의 데이터 케이블을 호스트 또는 메인보드에 다시 연결합니다.
- 설정 파일 편집:
printer.cfg파일의 맨 아래에 툴 보드 설정을 추가합니다. - 툴 보드 ID 설정: 툴 보드의 펌웨어 유형에 따라 새로 추가된 설정 섹션에 해당 ID를 추가합니다.
설정에서 mcu1, mcu2 등의 이름은 다른 장치를 임시로 구분하는 데만 사용됩니다. 이러한 이름은 완전히 사용자 정의할 수 있으며 설정 파일에서 고유성만 유지하면 됩니다.
설정 형식:
[mcu mcu1]
# 여기에 툴 보드의 ID 설정을 추가합니다.
설정 예시:
- USB 툴 보드
- CAN 툴 보드
- RS232 툴 보드
[mcu mcu1]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00
[mcu mcu1]
canbus_uuid: 688e89f0e402
[mcu mcu1]
serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
baud: 250000
restart_method: command
주의 사항:
- 각 MCU는 고유한 ID를 사용해야 하며, 툴 보드 ID가 메인 MCU 및 다른 장치와 다르도록 하십시오.
- MCU 이름은 완전히 사용자 정의할 수 있습니다(예:
toolboard,extruder_mcu등). 설정에서 고유성만 유지하면 됩니다. - 앞서 설명된 단계를 통해 확인된 유효한 툴 보드 ID를 반드시 사용하십시오.
- RS232 장치는
baud: 250000및restart_method: command매개변수를 반드시 설정해야 합니다. - 여러 툴 보드를 설정할 때는 각 장치를 구분하기 위해 다른 이름을 지정하십시오.
다중 툴 보드 보드 간 핀 설정
여러 툴 보드를 사용할 때 핀이 보드 간에 할당되어야 하는 상황이 발생할 수 있습니다. 예: 가열 기능은 첫 번째 툴 보드의 가열 포트를 사용하지만 온도 센서는 메인보드 또는 두 번째 툴 보드에 연결된 경우
Klipper 다중 MCU 설정에서 모든 설정 섹션의 핀은 <mcu 이름>:<핀 번호> 형식을 사용하여 정의된 모든 MCU의 핀을 직접 참조할 수 있으며 추가 설정이 필요하지 않습니다. Klipper는 통신 버스(CAN/USB/시리얼)를 통해 명령을 해당 MCU로 자동 라우팅합니다.
일반적인 시나리오: 가열은 툴 보드에, 온도 센서는 메인보드에
시스템 설정이 다음과 같다고 가정합니다:
- 메인 MCU: 호스트 Klipper 펌웨어 실행, 온도 센서는 메인보드에 연결
- toolboard1: 툴 보드, 가열봉과 압출기 스테퍼가 툴 보드에 연결
1단계: 모든 MCU 정의
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
[mcu toolboard1]
canbus_uuid: e51d5c71a901
2단계: 설정에서 보드 간 핀 직접 참조
[extruder]
# 스테퍼와 가열은 툴 보드 핀 사용
step_pin: toolboard1:gpio9
dir_pin: toolboard1:gpio10
enable_pin: !toolboard1:gpio7
heater_pin: toolboard1:gpio6 # 가열봉은 toolboard1에
# 온도 센서는 메인보드 핀 사용 (gpio 또는 mcu:gpio 직접 입력)
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA0 # 온도 센서는 메인보드에 연결
# 기타 매개변수
rotation_distance: 22.44
gear_ratio: 50:17
microsteps: 16
full_steps_per_rotation: 200
nozzle_diameter: 0.400
filament_diameter: 1.75
min_temp: -235
max_temp: 350
max_power: 1.0
min_extrude_temp: 170
control: watermark
- 툴 보드 핀:
<mcu 이름>:<핀 번호>형식, 예:toolboard1:gpio6 - 메인 MCU 핀: 핀 이름을 직접 쓸 수 있음 (예:
PA0) - 동일한 설정 섹션의 핀은 다른 MCU에서 올 수 있으며 Klipper가 보드 간 통신을 자동으로 처리합니다.
더 많은 보드 간 설정 예시
- 온도 센서가 두 번째 툴 보드에 있는 경우
- 다중 압출기가 다른 툴 보드에 분산된 경우
- 팬 보드 간 제어
가열봉은 첫 번째 툴 보드에, 온도 센서는 두 번째 툴 보드에 있는 경우:
[extruder]
step_pin: toolboard1:gpio9
heater_pin: toolboard1:gpio6 # 가열은 첫 번째 툴 보드에
sensor_type: ATC Semitec 104GT-2
sensor_pin: toolboard2:gpio26 # 온도 센서는 두 번째 툴 보드에
# ... 나머지 압출기 매개변수
두 개의 압출기가 각각 다른 툴 보드에 연결된 경우:
[extruder]
step_pin: toolboard1:gpio9
heater_pin: toolboard1:gpio6
sensor_pin: toolboard1:gpio27
# ... 첫 번째 압출기 매개변수
[extruder1]
step_pin: toolboard2:gpio9
heater_pin: toolboard2:gpio6
sensor_pin: toolboard2:gpio27
# ... 두 번째 압출기 매개변수
압출기는 툴 보드에, 모델 팬은 메인보드에 연결된 경우:
[fan]
pin: PB5 # 모델 팬은 메인보드에 연결
# 메인 MCU 핀은 핀 이름을 직접 입력
[heater_fan 히트싱크 냉각]
pin: toolboard1:gpio14 # 히트싱크 팬은 툴 보드에 연결
heater: extruder
heater_temp: 50
fan_speed: 1.0
- 보드 간 핀을 참조할 때는 해당 MCU가 설정 파일에서
[mcu <이름>]을 통해 올바르게 정의되었는지 확인하십시오. - 최상의 응답 속도와 안정성을 위해 가열봉과 온도 센서와 같이 기능적으로 밀접하게 관련된 장치는 동일한 툴 보드에 연결하는 것이 좋습니다.
설정을 완료한 후 저장하고 Klipper 서비스를 재시작합니다.
7단계: 모든 MCU 연결 확인
툴 보드를 추가하고 Klipper를 재시작한 후 모든 MCU의 연결 상태를 다시 확인해야 합니다:
- Fluidd 인터페이스를 열고 왼쪽 메뉴에서
System을 클릭합니다. - MCU 정보 확인:
Mcu Information아래에서 모든 MCU가 올바르게 인식되었는지 확인합니다. - 각 MCU 상태 확인: 메인 MCU와 툴 보드가 모두 연결 상태로 표시되는지 확인합니다.
- 메인 MCU와 모든 툴 보드가 목록에 표시되어야 합니다.
- 각 MCU의 연결 상태는 "연결됨"으로 표시되어야 합니다.
- 특정 MCU가 표시되지 않거나 연결에 실패한 경우 설정 및 물리적 연결을 확인하십시오.
8단계: 펌웨어 버전 확인
모든 MCU 연결을 완료한 후 펌웨어 버전 호환성을 확인해야 합니다:
- Fluidd 인터페이스를 열고 왼쪽 메뉴에서
System을 클릭합니다. - 버전 정보 확인:
Mcu Information아래에서Version필드를 찾습니다. - 버전 일관성 확인: 모든 MCU의 펌웨어 버전이 호스트 Klipper 버전과 일치하는지 확인합니다.
- 커스텀 컴파일 펌웨어: 사전 설정된 커스텀 장치를 제외하고 직접 컴파일한 모든 펌웨어는 호스트 Klipper 버전과 일치해야 합니다.
- Fly-FAST 시스템: FAST 시스템의 펌웨어 버전은 시스템 버전과 일치하며, 컴파일된 Klipper 펌웨어는 시스템 버전과 일치합니다.
- 버전 불일치의 결과: 다른 버전의 펌웨어는 기능 이상, 통신 실패 또는 시스템 불안정을 초래할 수 있습니다.
확인 사항:
- 메인 MCU와 모든 툴 보드의
Version정보가 표시되고 버전이 일치해야 합니다. - 버전이 일치하지 않으면 해당 펌웨어를 다시 플래시해야 합니다.
9단계: 설정 파일 복원 및 업데이트
모든 MCU 연결이 정상임을 확인한 후 원래 설정 파일을 복원하고 MCU 설정을 업데이트해야 합니다:
-
현재 설정 파일 삭제
- 설정 파일 관리 인터페이스에서 현재
printer.cfg파일을 찾아 삭제합니다.
- 설정 파일 관리 인터페이스에서 현재
-
백업 설정 복원
- 이전에 백업한
printer_Backup.cfg파일의 이름을printer.cfg로 변경합니다.
- 이전에 백업한
-
MCU 설정 업데이트
- 복원된
printer.cfg파일을 엽니다. - 기존
[mcu]설정 섹션을 찾아 이전 단계에서 얻은 ID로 업데이트합니다:
USB 연결 설정:
[mcu]serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00# 실제 검색된 메인 MCU USB ID로 바꾸기CAN 연결 설정:
[mcu]canbus_uuid: 688e89f0e401# 실제 검색된 메인 MCU CAN UUID로 바꾸기 - 복원된
-
툴 보드 설정 업데이트(해당하는 경우)
- 설정 파일에서 툴 보드에 해당하는
[mcu]섹션을 찾습니다. - 연결 방식에 따라 실제 검색된 툴 보드 ID로 업데이트합니다:
USB 툴 보드:
[mcu toolboard]serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00CAN 툴 보드:
[mcu toolboard]canbus_uuid: 688e89f0e402RS232 툴 보드:
[mcu toolboard]serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0baud: 250000restart_method: command - 설정 파일에서 툴 보드에 해당하는
-
저장 및 재시작
- 모든 MCU 설정 업데이트를 완료한 후 SAVE & RESTART를 클릭하여 Klipper를 저장하고 재시작합니다.
System페이지에 다시 들어가 모든 MCU 연결 상태가 정상인지 확인합니다.
- 이번 연결 테스트에서 실제로 검색된 올바른 ID를 사용해야 합니다.
- 여러 툴 보드를 설정하는 경우 각
[mcu]섹션의 ID를 하나씩 업데이트하십시오. - RS232 툴 보드는
baud: 250000및restart_method: command매개변수를 반드시 포함해야 합니다. - 설정을 복원하면 기존 프린터 매개변수(예: 스테퍼 모터, 리미트 스위치 설정 등)는 그대로 유지됩니다.
이로써 MCU 연결 문제 해결 및 설정 복원이 모두 완료되었습니다.