CAN 펌웨어 컴파일
컴파일 시작
- 설치된
klipper
서비스를 사용해야 합니다. 웹을 통해 SSH 연결 - 그리고 장치를 상위 기계에 연결해야 합니다.
- 주의: 일반적인 상위 기계, 예를 들어 라즈베리파이 FLY파이 등을 사용하십시오. 마이크로 변형 상위 기계(예: WiFi 스틱, 홍미 등)는 문제점이 많아 지원을 제공할 수 없습니다.
- FlyOS-Armbian 시스템과 일반 시스템 주의사항
- FlyOS-FAST 시스템 주의사항
FlyOS-Armbian
시스템과 일반 시스템 주의사항- 라즈베리파이, FLY파이 등 일반적인 상위 기계 시스템은 이와 같습니다.
- 이 종류의 상위 기계에서는
ROOT
사용자로 아무 작업도 하지 마십시오. - 일반 사용자로 작업하십시오.
- 사용자 전환 방법,
FlyOS-Armbian
시스템의 경우su fly
명령어를 사용하여 일반 사용자로 전환하십시오. - 다른 시스템의 경우
su <상위 기계 사용자 이름>
명령어를 사용하여 일반 사용자로 전환하십시오.
su <상위 기계 사용자 이름>
FlyOS-FAST
시스템 주의사항FAST 시스템
의 기본 사용자는root
이며, 비밀번호는mellow
입니다.- 펌웨어를 컴파일하는 것은
root
사용자만이 수행할 수 있습니다. - 또한
FAST 시스템
에는ROOT
사용자만 존재하며, 사용자를 전환할 필요가 없습니다!!!
- 상위기기(Up Host)가 정상적으로 네트워크에 연결되어 있는지 확인하세요.
- 펌웨어 컴파일 전에 SSH를 통해 상위기기에 네트워크로 로그인해야 합니다.
- 상위기기에 시리얼 포트(Serial Tool)를 사용하지 마세요.
Klipper 펌웨어 컴파일 및 구성 페이지 작동 설명
키보드 입력 모드를 반각(Half-width) 모드로 설정해 주세요. 즉, 영문 모드입니다.
- 키보드의
↑
(위쪽 화살표),↓
(아래쪽 화살표)는 메뉴 항목을 선택하기 위해 커서를 위아래로 이동시킵니다. - 확인 키
Enter
또는 공백 키Space
는 메뉴를 선택하거나 하위 메뉴로 진입합니다. - 종료 키
ESC
는 상위 메뉴로 돌아갑니다. Q
키는 Klipper 펌웨어 구성 페이지를 종료합니다.- Klipper 펌웨어 구성 페이지를 종료할 때
Y
키를 눌러 구성 파일을 저장할 수 있습니다.
구성 페이지 옵션이 적을 경우, Enable extra low-level configuration options
항목을 선택([ ]
)하여 일부 숨겨진 옵션을 표시할 수 있습니다.
아래는 펌웨어를 컴파일하는 방법을 소개합니다:
-
SSH에 연결한 후 다음 명령어를 입력하고 Enter를 누릅니다:
cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
-
여기서
rm -rf ~/klipper/.config && rm -rf ~/klipper/out
는 이전에 컴파일된 데이터와 펌웨어를 삭제하고,make menuconfig
는 펌웨어를 컴파일하며, 실행 후 아래와 같은 화면이 나타나야 합니다: -
Enable extra low-level configuration options을 선택하고 Enter를 누릅니다:
-
메뉴 Micro-controller Architecture로 이동한 후 Raspberry Pi RP2040/RP235x를 선택하고 Enter를 누릅니다:
-
Bootloader offset를 선택하고: 16KiB bootloader를 선택합니다:
-
Communication interface를 선택하고: CAN bus를 선택합니다:
- 마이크로컨트롤러 시작 시 GPIO 핀을 선택합니다. 입력: gpio24
Q
키를 누르면 Save configuration가 나타나며, 그 후Y
키를 누릅니다.- 이제 설정을 저장하고 명령줄 인터페이스로 나갑니다.
- 다음 명령을 입력하여 컴파일을 시작합니다. 시간이 조금 걸립니다.
make -j4

-
마지막으로 아래 내용이 출력되면 컴파일이 성공입니다.
Linking out/klipper.elf
Creating bin file out/klipper.bin
선 연결
- 펌웨어를 프로그래밍하기 전에 XT30 데이터 케이블을 사용하여 도구 보드를 UTOC 또는 브리지 펌웨어가 설치된 메인보드에 연결합니다. 아래는 참고용 연결도입니다.
- CAN H와 CAN L은 전원이 꺼진 상태에서 멀티미터로 저항 값을 측정하여 약
60Ω
인지 확인하십시오. 만약120Ω
라면120Ω
점퍼를 연결해야 하며,40Ω
근처라면 점퍼를 제거해야 합니다. - XT30 데이터 케이블을 사용하여 도구 보드를 UTOC 또는 브리지 펌웨어가 설치된 메인보드에 연결한 후, 메인보드에 LED가 깜빡입니다.
- LED가 깜빡이지 않는다면, 다시 katapult 펌웨어를 프로그래밍하세요:katapult 펌웨어 프로그래밍
- katapult 펌웨어를 프로그래밍한 후에만 다음 단계를 수행하십시오.
장치 검색
- 이제 상위 컴퓨터에 정상적으로 로그인한 상태라면
lsusb
명령어를 입력하여 장치를 검색할 수 있습니다. 다음과 같은 경우 중 하나가 발생할 수 있습니다.lsusb
입력 시ls
명령어를 찾을 수 없다는 메시지가 나오면, 아래 명령어를 입력하여 설치할 수 있습니다.sudo apt-get install usbutils
lsusb
입력 후 아무 반응이 없는 경우, 이는 시스템 문제로 해결이 불가능하므로 다른 정상적인 시스템으로 교체해야 합니다.- 아래 사진과 같은 정보가 나타납니다. 참고용이므로,
1d50:606f
가 표시되는지만 확인하시면 됩니다.
1d50:606f
는 이번에 사용할 장치입니다.- 여러 개의
1d50:606f
가 나타난다면, 하나를 제외하고는 제거해야 합니다. 그렇지 않으면 향후 플래싱 및 펌웨어 연결에 영향을 줄 수 있습니다. 예를 들어FLY MINI PAD
의 경우, 외부 CAN 브리지 장치가 아닌 내장된UTOC
를 사용하는 것이 좋습니다. - 만약 나타나지 않았다면, 케이블 연결 상태와 펌웨어가 올바르게 작성되었는지 스스로 확인하십시오.
1d50:606f
가 나타날 경우에만 CAN ID 검색을 진행해야 합니다.
ID 검색 및 프로그래밍
- ID 찾기와 펌웨어 플래싱은 프린팅 도중에는 하지 않는 것이 좋습니다.
- 동일한 메인보드 또는 툴보드인 Katapult의 CAN 펌웨어와 Klipper의 CAN 펌웨어는 ID가 완전히 동일합니다.
- 상위컴퓨터의 CAN 네트워크가 이미 설정되어 있는지 확인하십시오.
- lsusb 후에
1d50:606f
가 표시될 때만 아래 명령어로CAN ID
를 검색할 수 있습니다. - 툴보드의 CAN 속도는 상위컴퓨터와 동일해야 하며, 그렇지 않으면
ID
를 찾을 수 없고 플래싱도 불가능합니다.
-
아래 명령어를 실행하여 CANBus UUID를 확인하십시오:
- Fly-Armbian과 일반 상위컴퓨터 검색 방법
- Fly-FAST 검색 방법
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python ~/klipper/scripts/canbus_query.py can0
-
입력 후 기기에 따라 다음과 같은 결과가 나타납니다(참고 사항):
- 첫 번째: 브리지 펌웨어가 플래싱된 메인보드에서 하나의 ID가 나타나며
Application: Klipper
이라고 표시됩니다. - 두 번째: 브리지 펌웨어가 플래싱된 메인보드와 함께 플래싱할 펌웨어가 필요한 툴보드를 사용할 경우 두 개의 ID가 나타납니다.
- 세 번째: 플래싱할 펌웨어가 필요한 툴보드와 함께
UTOC
를 사용하는 경우 - 참고:
UTOC
는 ID가 표시되지 않습니다. - 네 번째: ID가 표시되지 않음. 일반적으로 Klipper가 점유하고 있거나 상위컴퓨터의 CAN0 속도가 잘못되었거나 배선에 문제가 있을 수 있습니다.
- 첫 번째: 브리지 펌웨어가 플래싱된 메인보드에서 하나의 ID가 나타나며
-
정상적으로 플래싱할 툴보드가 CANBOOT 상태이면
Application: CanBoot
라고 표시되며 해당 펌웨어의 LED가 깜빡입니다. 이때 Klipper 펌웨어를 플래싱해야 연결이 가능합니다. 그렇지 않으면 연결할 수 없습니다. -
참고: Klipper 펌웨어를 사용하고 있으며 설정에 ID를 입력한 경우 ID가 표시되지 않으며 Klipper가 점유하고 있을 것입니다. 이 경우 해당 ID를 비활성화한 후 메인보드의 전원을 완전히 끄고 다시 켜야 합니다.
- UUID를 검색하지 못한 경우 아래 문서를 참조하십시오.
- CAN 문제 모음
펌웨어 플래싱
-
아래 명령어의
241696050c56
을 검색한 UUID로 교체하십시오.-u
뒤에 공백이 있음을 주의하십시오.python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
-
아래 그림과 같이
CAN Flash Success
가 표시되면 플래싱이 성공한 것입니다.
펌웨어 업데이트
- 펌웨어 업데이트가 필요한 경우 펌웨어를 컴파일한 후 다시 플래싱 명령을 실행하면 됩니다.
- 단, 해당 ID를 찾을 수 있거나 Klipper가 연결되어 있는지 확인하십시오.
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
펌웨어가 시작되었는지 확인
- 펌웨어가 정상적으로 시작되면 LED가 켜집니다.