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를 선택합니다.
-
(4) CAN RX gpio number
를 선택하고4
를 삭제한 뒤1
을 입력합니다. -
(5) CAN TX gpio number
를 선택하고5
를 삭제한 뒤0
을 입력합니다.
- 마이크로컨트롤러 시작 시 설정할 GPIO 핀을 선택하고, 입력: !gpio5,!gpio19,!gpio24
!gpio5,!gpio19,!gpio24
를 영문 입력법 상태에서 입력하십시오

Q
키를 누르면 구성 저장이 나타나며, 그 후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 펌웨어를 프로그래밍한 후에만 다음 단계를 진행하십시오
장치 검색
- 상위 기기(PC)가 정상적으로 네트워크에 연결되었는지 확인하고, 하위 기기가 상위 기기에 연결된 데이터선이 데이터 전송 기능을 가지고 있는지 확인하세요.
- 상위 기기로 SSH 연결 후 다음 명령어를 입력하고 Enter를 누릅니다:
lsusb
. 아래 이미지에서 동그라미 표시된 정보가 나타나면 다음 단계로 진행할 수 있습니다.- 아무런 정보도 반환되지 않는 경우, 이는 상위 기기의 시스템 문제입니다. 해결할 수 없으므로, 정상적인 시스템으로 교체하거나 상위 기기를 교체해야 합니다.
lsusb
명령어가 없다고 표시되면 다음 명령어를 실행하여 설치할 수 있습니다:sudo apt-get install usbutils
1d50:606f
는 이번에 사용할 장치입니다.- 일부 상위 기기는 시스템 문제로 인해 장치가 제대로 표시되지 않을 수 있습니다.
lsusb
명령어를 입력했을 때 장치가 표시되지만1d50:606f
가 나타나지 않는 경우, 데이터선을 교체하거나 메인보드를 상위 기기의 다른 USB 포트에 연결해 보세요.
1d50:606f
가 표시될 때만 다음 단계로 진행할 수 있습니다.
ID 검색 및 프로그래밍
- ID를 찾거나 펌웨어를 업데이트하는 것은 인쇄 중에는 하지 마십시오
- 동일한 메인보드 또는 도구 보드의 Katapult의 CAN 펌웨어와 Klipper의 CAN 펌웨어는 완전히 동일한 ID를 가집니다
- 상위 기계의 can 네트워크가 이미 설정되었는지 확인하십시오
- lsusb 후
1d50:606f
가 있으면 아래 명령어를 사용하여 CAN ID를 검색할 수 있습니다 - 도구 보드의 CAN 속도가 상위 기계와 일치하지 않으면 ID를 찾을 수 없으며 프로그래밍이 불가능합니다
-
다음 명령어를 실행하여 CANBus UUID를 조회하십시오:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
fast
시스템은 이 명령어를 사용하여CAN_ID
를 검색합니다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가 켜집니다