USB 브리지 CAN 펌웨어 플래싱
호스트 컴퓨터 연결
Fly-D8 메인보드는 Type-C USB 인터페이스를 통해서만 호스트 컴퓨터와 Klipper 통신을 할 수 있습니다.

펌웨어 컴파일 주의사항 및 작업 가이드
주의사항
- 네트워크 연결: 상위 컴퓨터(라즈베리 파이 등)가 네트워크에 연결되어 있는지 확인하세요.
- 접근 방식: 반드시 SSH를 통해 네트워크로 상위 컴퓨터에 로그인해야 하며, 시리얼 도구 사용은 금지됩니다.
- 사용자 권한: 상위 컴퓨터 시스템 유형에 따라 올바른 사용자 계정으로 작업하세요.
- 입력기: 키보드 입력기가 반각 모드(영문 모드) 인지 확인하세요.
SSH 로그인 및 사용자 전환
SSH로 상위 컴퓨터 로그인
SSH 도구(MobaXterm, PuTTY 등)를 사용하여 네트워크를 통해 상위 컴퓨터에 로그인하세요: SSH 연결 상세 튜토리얼 보기
시스템 유형에 따른 사용자 전환
- 일반 상위 컴퓨터 (Armbian)
- FAST 시스템 (FlyOS-FAST)
적용 시스템:
- 라즈베리 파이 공식 시스템
- FLY 파이 Armbian 시스템
- Klipper가 설치된 기타 시스템
사용자 권한 요구사항:
root사용자 사용 금지- 반드시 일반 사용자로 전환하여 작업해야 함
전환 명령어:
-
기타 시스템 (
<username>을 사용자 이름으로 변경)su <username>
일반 사용자는 일반적으로 필요한 컴파일 권한을 가지고 있으며, root 사용자를 사용하면 권한 문제가 발생할 수 있습니다.
적용 시스템:
- FlyOS-FAST 시스템
로그인 정보:
- 사용자 이름:
root - 비밀번호:
mellow
FAST 시스템에는 root 사용자만 존재합니다.
펌웨어 컴파일 설명
1. 키보드 작업 가이드
- Klipper 펌웨어 구성 페이지에서는 다음 단축키만 사용할 수 있습니다:
- 마우스를 직접 사용하여 작업할 수 없습니다!
| 키 | 기능 설명 |
|---|---|
| ↑ ↓ 방향키 | 커서를 위아래로 이동하여 메뉴 항목 선택 |
| Enter 또는 Space | 선택 확인/메뉴 항목 체크 또는 하위 메뉴 진입 |
| ESC | 이전 단계 메뉴로 돌아가기 |
| Q | Klipper 펌웨어 구성 페이지 종료 |
| Y | 종료 시 프롬프트가 있으면 Y 키를 눌러 구성 저장 |
숨겨진 옵션 표시
구성 페이지 옵션이 적다면 먼저 다음을 체크하세요:
[ ] Enable extra low-level configuration options
이 옵션은 일부 숨겨진 구성 옵션을 표시하는 데 사용됩니다.
펌웨어 컴파일 시작하기
아래는 펌웨어를 컴파일하는 방법을 설명합니다:
-
SSH에 연결한 후 아래 명령어를 입력하고 엔터를 누르세요:
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를 선택하고 엔터를 누르세요.

-
Micro-controller Architecture 메뉴로 들어가 STMicroelectronics STM32를 선택하고 엔터를 누르세요.

-
Processor model 메뉴로 들어가 STM32F407를 선택하고 엔터를 누르세요.

-
Bootloader offset을 선택하고 32KiB bootloader를 선택하세요.

-
Communication interface를 선택하고 **USB to CAN bus bridge (USB on PA11/PA12)**를 선택하세요.

Q키를 누르면 Save configuration이 나타납니다. 이때Y키를 누르세요.- 이제 설정이 저장되고 명령줄 인터페이스로 돌아갑니다.
- 아래 명령어를 입력하여 컴파일을 시작하세요. 시간이 다소 걸립니다.
make -j4

- 마지막으로 아래 내용이 출력되면 컴파일이 성공한 것입니다.
- Klipper 버전 문제로 인해
out/klipper.bin이 나타나기만 하면 성공입니다.Linking out/klipper.elf
Creating bin file out/klipper.bin
플래싱 모드 진입
- Type-C 데이터 케이블로 메인보드를 호스트 컴퓨터에 연결한 후, RST 버튼을 두 번 누르세요. 이때 메인보드의 LED가 깜빡입니다.
- LED가 깜빡이지 않으면, katapult 펌웨어를 다시 플래싱하세요: katapult 펌웨어 플래싱
- LED가 깜빡이지 않으면, katapult 펌웨어 플래싱을 완료한 후 다음 단계를 진행하세요.

- 상위기기(Upstream)가 정상적으로 네트워크에 연결되어 있는지 확인하고, 하위기기가 상위기기와 데이터 전송 기능을 가진 데이터 케이블로 연결되어 있는지 확인하십시오.
- 상위기기에 SSH 접속 후 Enter 키를 누르고 명령어
lsusb를 입력하면 아래 이미지에서 빨간색으로 표시된 정보가 나타나면 다음 단계로 진행할 수 있습니다.- 아무런 정보도 반환되지 않는 경우, 이는 상위기기의 시스템 문제이며 해결이 불가능합니다. 정상적인 시스템으로 교체하거나 상위기기를 교체해야 합니다.
lsusb명령어가 없는 경우 다음 명령어를 실행하여 설치할 수 있습니다.sudo apt-get install usbutils
1d50:6177는 이번에 사용할 장치입니다.- 일부 상위기기는 시스템 문제로 인해 완전히 표시되지 않거나 전혀 표시되지 않을 수 있습니다.
- 만약
lsusb명령어를 입력했을 때 장치는 표시되지만1d50:6177이 표시되지 않는 경우 데이터 케이블을 교체하거나 상위기기의 다른 USB 포트로 연결해 보십시오.
- 위 단계를 수행했고 Klipper 펌웨어를 성공적으로 플래시한 적이 있으며, 메인보드가 정상적으로 작동 중이라면 Klipper 펌웨어 업데이트만 진행하려는 경우 오른쪽 메뉴바의
펌웨어 업데이트섹션을 참조하십시오.
반드시 1d50:6177 장치를 확인한 후 다음 단계로 진행해야 합니다.
펌웨어 플래싱
플래싱 시작
- 플래싱 플러그인 설치 시 인터넷 연결이 필요하므로, 상위 컴퓨터가 인터넷에 연결되어 있는지 확인하세요.
- 이미 플래싱 플러그인을 설치한 경우에는 다시 설치할 필요가 없습니다.
플래싱 종속성 설치
Fly 공식 상위 컴퓨터가 아닌 경우 반드시 다음 명령을 실행하여 펌웨어 플래싱 종속성 패키지를 설치하세요!
- GitHub 저장소
- 국내 미러
cd && git clone https://github.com/Arksine/katapult.git
cd && git clone https://gitee.com/MrCakeFuck/katapult.git

보드 ID 가져오기
다음 명령을 실행하여 장치 ID를 검색하세요. 정상적인 경우 아래 그림과 유사한 ID가 표시됩니다(참고: 각 보드의 ID는 다릅니다):
ls /dev/serial/by-id/*

펌웨어 플래싱
- 펌웨어 파일을 컴파일했는지 확인하세요.
- 아래 명령에서
<당신의 보드 ID>를 이전 단계에서 확인한 실제 ID로 바꾸세요.
- Fly-Armbian/일반 상위 컴퓨터
- Fly-FAST 시스템
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d /dev/serial/by-id/<당신의 보드 ID>
python ~/katapult/scripts/flashtool.py -d /dev/serial/by-id/<당신의 보드 ID>
플래싱 과정 참고:

플래싱 성공 참고:

펌웨어 업데이트
- USB 펌웨어 업데이트
- 브리지 CAN 펌웨어 업데이트
USB 펌웨어 업데이트 단계
- 보드 ID 확인
ls /dev/serial/by-id/*
아래 그림의 /dev/serial/by-id/usb-katapult_rp2040_E662549553642032-if00이 보드 ID입니다.
- 펌웨어 업데이트
cd ~/klipper/ && make flash FLASH_DEVICE=<당신의 보드 ID>
<당신의 보드 ID>를 실제로 확인한 ID로 바꾸세요.

브리지 CAN 펌웨어 업데이트 단계
- 리셋하여 플래싱 모드 진입
<당신의 보드 ID>는 printer.cfg 구성 파일에서 보드의 CANBUS UUID입니다.
- Fly-Armbian/일반 상위 컴퓨터
- Fly-FAST 시스템
~/klippy-env/bin/python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <당신의 보드 ID>
python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <당신의 보드 ID>
아래 그림의 f95cee90e1f9은 보드의 CANBUS UUID입니다(예시일 뿐).

- 새 장치 ID 확인
ls /dev/serial/by-id/*
- 이는 참고용입니다!
- 아래 그림의
/dev/serial/by-id/usb-Klipper_stm32f072xb_38001B000551324752333720-if00이 새로 인식된 보드 ID입니다.

- 새 펌웨어 플래싱
cd ~/klipper/ && make flash FLASH_DEVICE=<당신의 보드 ID>

잘못된 펌웨어 플래싱 해결 방법
방법 1: 빠르게 플래싱 모드 진입
- 보드 전원 차단
- 전원을 다시 켠 후, RESET 버튼을 빠르게 두 번 클릭
- 플래싱 모드로 다시 진입