MCU 연결 가이드
이 가이드는 메인 MCU가 Klipper와 정상적으로 연결되지 않는 문제를 해결하기 위한 것입니다. 장치가 정상적으로 연결되는데 MCU ID만 교체하거나 보충해야 하는 경우에는 MCU ID 구성을 바로 확인하시고, 기존 구성을 비울 필요는 없습니다.
문제 해결 절차
- 현재
printer.cfg를 백업합니다. - Klipper에 진입할 수 없는 경우에만 최소 테스트 구성을 활성화합니다.
- 메인보드에서 현재 실행 중인 펌웨어 유형을 확인합니다.
- 실제 MCU ID를 조회하고 임시 구성에 작성하여 연결을 검증합니다.
- 전체 구성을 복원하고 MCU 연결 항목만 업데이트합니다.
USB/CAN 하위 장치를 여러 개 연결할 때 툴보드 ID를 메인보드 [mcu]에 잘못 입력하기 쉽습니다. 문제 해결 단계에서는 메인보드만 먼저 검증하고, 성공을 확인한 후에 툴보드를 하나씩 추가하는 것이 좋습니다.
1단계: 현재 구성 백업
1. 구성 파일 관리에 진입
브라우저에 호스트 IP 주소를 입력합니다. Fluidd 사용자는 왼쪽의 ...을 클릭하고, Mainsail 사용자는 머신을 클릭한 다음 printer.cfg를 찾습니다.
2. 백업 생성
printer.cfg를 마우스 오른쪽 버튼으로 클릭하고 Duplicate를 선택한 다음 복사본 이름을 다음과 같이 변경합니다:
printer_Backup.cfg
Fluidd 작업 예시:
Mainsail 작업 예시:
이후의 최소 구성은 연결 테스트 전용이며 공식 프린터 구성을 대체할 수 없습니다. printer_Backup.cfg가 존재하고 내용이 완전한지 확인한 후에만 계속 진행하세요.
공식 구성에서 [include *.cfg]를 사용하는 경우, 같은 디렉터리에 있는 printer_Backup.cfg도 로드될 수 있습니다. 백업을 해당 규칙과 일치하지 않는 하위 디렉터리로 이동하거나 .txt 확장자로 저장하여 중복 구성 섹션이 발생하지 않도록 하세요.
2단계: 필요에 따라 최소 테스트 구성 활성화
Klipper가 현재 정상적으로 시작되고 연결되는데 MCU ID만 수정하면 되는 경우에는 전체 구성을 유지하고 3단계로 바로 이동하세요.
잘못된 구성이나 여러 하위 장치로 인해 Klipper가 시작되지 않는 경우, printer.cfg 내용을 다음 최소 구성으로 일시적으로 교체할 수 있습니다:
[mcu]
serial: /tmp/klipper_host_mcu
[printer]
kinematics: none
max_velocity: 200
max_accel: 1000
SAVE & RESTART를 클릭하여 저장합니다. 여기의 /tmp/klipper_host_mcu는 호스트 MCU의 임시 연결 주소로, 최소 구성이 시작되도록 하기 위한 것이며 메인보드의 실제 USB ID가 아닙니다.
시작하기 전에 프린터를 완전히 끄고 전원 공급을 차단하세요. 전원이 켜진 상태에서 배선을 뽑거나 꽂거나, 인터페이스 배선 순서를 정리하거나, 단자에 접촉하지 마세요.
전원을 차단한 후 테스트에 참여하지 않는 툴보드 데이터 케이블을 분리하고, 호스트와 메인보드 사이의 필요한 데이터 연결만 유지하세요. 전원 장치를 분해하거나, 시설 전원 배선을 변경하거나, 노출된 단자에 접촉하지 마세요. 연결을 확인한 후 다시 전원을 켭니다.
3단계: 펌웨어 및 통신 방식 확인
먼저 SSH 연결 튜토리얼에 따라 호스트에 진입한 후 다음을 실행합니다:
lsusb
출력 결과를 통해 장치의 현재 모드를 판단합니다:
VID:PID | 장치 상태 | 다음 단계 |
|---|---|---|
1d50:614e | Klipper USB 펌웨어 | USB ID 조회 |
1d50:606f | USB-CAN 브리지 펌웨어 | CAN UUID 조회 |
1d50:6177 | Katapult 플래싱 모드 | 먼저 Klipper 펌웨어 플래싱 또는 시작 |
1a86:7523 | USB 직렬 어댑터 | RS232 경로 조회 |
lsusb: command not found 메시지가 표시되면 usbutils를 설치할 수 있습니다:
sudo apt-get update
sudo apt-get install usbutils
lsusb에 대상 장치가 없음먼저 메인보드에 전원이 정상적으로 공급되고, 데이터 케이블이 통신을 지원하며, 펌웨어 모드가 올바른지 확인하세요. 장치 이름만으로 ID를 추측하지 말고, Katapult/Bootloader 모드의 ID를 printer.cfg에 작성하지 마세요.
4단계: MCU ID 조회 및 입력
USB 메인보드
ls /dev/serial/by-id/*
출력에는 usb-Klipper_...가 포함되어야 합니다. katapult 또는 Bootloader가 포함된 장치는 여전히 플래싱 모드에 있으므로 Klipper 실행 ID로 사용할 수 없습니다.
CAN 메인보드
- 일반 Linux 호스트
- FlyOS-FAST / FLY 호스트
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python3 ~/klipper/scripts/canbus_query.py can0
Application: Klipper에 해당하는 UUID만 구성에 작성할 수 있습니다. Total 0 uuids found가 표시되면 CAN 네트워크 및 ID 검색으로 이동하여 계속 문제를 해결하세요.
RS232 장치
ls -l /dev/serial/by-path/
다음 규칙은 FAQ와 동일한 내용을 공유합니다:
MCU ID 설정 설명
Klipper에서 MCU ID란 [mcu] 또는 [mcu xxx] 구성 섹션에서 컨트롤보드 연결을 식별하는 정보를 말합니다. 통신 방식에 따라 작성 방법이 다릅니다:
| 연결 방식 | 구성 항목 | 예시 |
|---|---|---|
| USB 펌웨어 | serial: | serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxxx |
| CAN 펌웨어 | canbus_uuid: | canbus_uuid: xxxxxxxxxxxx |
| RS232 장치 | serial: | serial: /dev/serial/by-path/xxxxxxxxxxxx |
| 호스트 MCU | serial: | serial: /tmp/klipper_host_mcu |
기입 규칙:
- 메인보드는 기본적으로
[mcu]를 사용하고, 툴보드나 확장보드는[mcu tool],[mcu toolboard]등 사용자 정의 이름을 사용합니다. - USB 펌웨어는
serial:만 기입하고, CAN 펌웨어는canbus_uuid:만 기입합니다. 동일한[mcu]에 두 항목을 동시에 유지하지 마십시오. - 다중 MCU 시스템에서 각
[mcu xxx]는 실제 고유 ID를 사용해야 하며, 동일한 USB ID나 CAN UUID를 복사하지 마십시오. [mcu xxx]의 이름은 핀 접두사에 영향을 줍니다. 예를 들어[mcu tool]의 핀은tool:gpio13으로 작성해야 합니다. 이름의 대소문자는 일관성을 유지해야 합니다.- 문서 예시의
xxxxxxxx는 직접 사용할 수 없으며, 실제 검색된 ID로 교체해야 합니다. - RS232 장치는
serial:외에도 일반적으로baud: 250000과restart_method: command를 추가로 기입해야 합니다. 해당 제품 문서를 기준으로 합니다.
일반적인 오류:
- 플래싱 모드 ID(예:
katapult,canboot가 포함된 ID)를 Klipper 펌웨어 ID로 잘못 사용하는 경우. - USB 펌웨어에
canbus_uuid:를 설정하거나, CAN 펌웨어에 이전serial:을 유지하는 경우. - RS232 장치에서 경로만 기입하고 필요한
baud:또는restart_method:를 누락하는 경우. - 툴보드를
[mcu]로 설정하여 메인보드 MCU 구성을 덮어쓰는 경우. - 핀 접두사와 MCU 이름이 일치하지 않는 경우. 예: 구성이
[mcu toolboard]인데 핀을tool:gpio13으로 작성하는 경우.
USB ID 조회: USB 펌웨어는
ls /dev/serial/by-id/*를 실행하여 ID를 확인할 수 있습니다.
CAN ID 조회: CAN 네트워크 및 ID 검색
RS232 경로 조회:
ls -l /dev/serial/by-path/를 실행하여 안정적인 장치 경로를 확인합니다.
툴보드 구성: 툴보드 MCU 추가 및 크로스보드 구성
전체 조회 설명 및 다중 MCU 예시: MCU ID 구성
5단계: 메인 MCU 검증
[mcu]의 연결 주소를 방금 조회한 실제 ID로 업데이트합니다. 2단계에서 최소 구성을 활성화한 경우 /tmp/klipper_host_mcu를 교체하고, 공식 구성을 유지한 경우 기존 [mcu]의 serial: 또는 canbus_uuid:만 수정하고 다른 매개변수는 변경하지 마세요.
- USB 메인보드
- CAN 메인보드
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
[mcu]
canbus_uuid: 688e89f0e401
SAVE & RESTART를 클릭합니다. 연결에 성공하면:
- Fluidd의
System페이지를 엽니다. Mcu Information에서 메인 MCU를 찾습니다.Micro-Controller가 메인보드의 실제 메인 컨트롤러 모델과 일치하는지 확인합니다.
[mcu]는 메인보드에 해당해야 하며 툴보드 모델로 표시되지 않아야 합니다.- 모든 MCU 펌웨어 버전은 현재 Klipper 시스템과 호환되어야 합니다.
- 여전히 연결할 수 없는 경우 오류 원문을 가지고 연결 문제 해결로 이동하세요.
6단계: 전체 프린터 구성 복원
2단계에서 최소 구성을 활성화한 경우 연결 검증을 완료한 후 반드시 공식 구성을 복원하세요. [mcu]와 kinematics: none만 포함된 테스트 구성을 장기간 사용하지 마세요.
최소 구성 사용
메인 MCU가 연결되었는지 확인한 후:
- 현재 임시
printer.cfg를printer_MCU_Test.txt로 이름을 바꿔서 재검토용으로 보관하고, 동시에*.cfg와일드카드로 로드되지 않도록 합니다. - 이전의
printer_Backup.cfg를 복사하고, 복사본 이름을printer.cfg로 지정합니다. - 복원된
printer.cfg를 열고 기존[mcu]구성 섹션을 찾습니다. serial:또는canbus_uuid:만 업데이트하고, 스테퍼 모터, 히터, 엔드스톱 및 기타 프린터 매개변수는 덮어쓰지 마십시오.- SAVE & RESTART를 클릭하고, 다시
Mcu Information에 들어가 연결을 확인합니다.
백업이 없거나 내용이 불완전한 경우, 먼저 구성 기록에서 전체 구성을 복원하고 현재 파일을 계속 덮어쓰지 마십시오.
최소 구성 건너뜀
현재 printer.cfg는 이미 공식 구성이므로 파일 이름을 바꾸거나 복원할 필요가 없습니다. MCU 연결이 성공했는지 확인하고 첫 번째 단계에서 만든 백업을 유지하면 됩니다.
7단계: 툴보드 추가
메인 MCU 검증이 성공한 후, 각 툴보드를 하나씩 연결하고 추가합니다:
툴보드 및 다중 MCU 구성: 툴보드 MCU 추가 및 보드 간 구성