CAN 펌웨어 컴파일
컴파일 시작
펌웨어 컴파일 간단 가이드
주의사항
- 네트워크: 상위 컴퓨터(라즈베리파이 등)가 인터넷에 연결되어 있는지 확인하세요.
- 로그인 방식: 반드시 SSH를 통해 네트워크로 로그인하고, 시리얼 포트는 비활성화하세요.
- 입력기: 키보드를 영문 반각 모드로 유지하세요.
SSH 로그인 및 사용자 전환
MobaXterm, PuTTY 등의 도구를 사용하여 상위 컴퓨터에 SSH로 로그인하세요.
사용자 전환:
- 일반 시스템(라즈베리파이 공식 시스템 등)
root사용을 금지하며, 일반 사용자로 전환해야 합니다:su <사용자명> - FLY 상위 컴퓨터(FlyOS-FAST 시스템)
root사용자 로그인만 지원합니다(비밀번호:mellow).
펌웨어 컴파일 작업 가이드
Klipper 펌웨어 구성 인터페이스에서는 키보드 조작만 지원하며, 마우스는 사용할 수 없습니다.
| 키 | 기능 |
|---|---|
| ↑ / ↓ | 커서를 위아래로 이동하여 메뉴 항목 선택 |
| Enter / 스페이스바 | 선택 확인, 옵션 체크 또는 하위 메뉴 진입 |
| ESC | 상위 메뉴로 돌아가기 |
| Q | 구성 인터페이스 종료 |
| Y | 종료 시 메시지가 나타나면 Y를 눌러 구성 저장 |
펌웨어 컴파일 시작하기
아래에서는 펌웨어를 컴파일하는 방법을 설명합니다:
-
SSH에 연결한 후 다음 명령어를 입력하고
Enter키를 누릅니다:cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig여기서
rm -rf ~/klipper/.config && rm -rf ~/klipper/out은 이전 컴파일 구성과 펌웨어를 삭제하는 데 사용됩니다;make menuconfig는 Klipper 펌웨어 구성 인터페이스를 여는 데 사용됩니다. -
아래 순서대로 항목별로 설정하며, 각 항목을 완료한 후 다음 항목을 진행합니다.
1启用 Enable extra low-level configuration options(Top)Klipper Firmware Configuration2Micro-controller Architecture 选择 STMicroelectronics STM32(Top)Klipper Firmware Configuration3Processor model 选择 STM32H723(Top)Klipper Firmware Configuration4Bootloader offset 选择 128KiB bootloader(Top)Klipper Firmware Configuration5Clock Reference 选择 25 MHz crystal(Top)Klipper Firmware Configuration6Communication interface 选择 CAN bus (on PB8/PB9)(Top)Klipper Firmware Configuration7CAN bus speed 设置为 1000000(Top)Klipper Firmware Configuration8GPIO pins to set at micro-controller startup 设置为 !PA15(Top)Klipper Firmware Configuration9GPIO state at micro-controller startup 选择 Not set此项是 FLYOS-Klipper 功能。通常保持
Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明。(Top)Klipper Firmware Configuration10按 Q 键退出配置界面(Top)Klipper Firmware Configuration11出现 Save configuration 时按 Y 保存配置QuitSave configuration?(Y)es(N)o(C)ancel -
위의 마지막 두 단계를 완료한 후
Q를 눌러 구성 인터페이스를 종료하고,Y를 눌러 구성을 저장합니다. -
명령줄로 돌아간 후 다음 명령어를 입력하고
Enter키를 눌러 컴파일을 시작합니다:make -j4root@flyos-11e5f8 ~/klipper # make -j4Compiling out/src/stm32/stm32f0_i2c.oCompiling out/src/generic/canserial.oCompiling out/src/../lib/fast-hash/fasthash.oCompiling out/src/stm32/fdcan.oCompiling out/src/generic/canbus.oCompiling out/src/stm32/chipid.oCompiling out/src/stm32/hard_pwm.oPreprocessing out/src/generic/armcm_link.ldBuilding out/compile_time_request.oVersion: XXXXLinking out/klipper.elfCreating bin file out/klipper.bin终端末尾出现
Linking out/klipper.elf和Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。
배선
- 펌웨어 플래싱 전에 XT30 데이터 케이블을 사용하여 툴 보드를 UTOC 또는 브리지 펌웨어가 플래싱된 메인보드에 연결합니다. 아래는 참조 배선도입니다.
- 딥 스위치가 올바른 위치에 설정되어 있는지 확인하십시오.
Loading...
- UTOC 연결 참조
Loading...
- 전원을 끈 상태에서 멀티미터로 CAN H와 CAN L 사이의 저항이
60Ω정도인지 확인하십시오.120Ω인 경우120Ω점퍼를 연결하고,40Ω정도인 경우 점퍼를 제거해야 합니다.Loading... - XT30 데이터 케이블을 사용하여 툴 보드를 UTOC 또는 브리지 펌웨어가 플래싱된 메인보드에 연결하면 메인보드의 LED가 깜빡입니다.
- LED가 깜빡이지 않으면 Katapult 펌웨어를 다시 플래싱하십시오: Katapult 펌웨어 플래싱
- LED가 깜빡이지 않으면 Katapult 펌웨어 플래싱을 완료한 후 다음 단계를 진행하십시오.
ID 검색 및 플래싱
CANBus UUID 조회
- 비출력 상태에서 ID 조회 및 펌웨어 플래싱 작업을 수행하여 인쇄 과정에 간섭이 없도록 권장합니다.
- 동일 메인보드/툴보드의 Katapult(CANBoot) 펌웨어와 Klipper 펌웨어는 동일한 CAN ID를 사용합니다.
다음 조건이 충족되지 않으면 CAN ID를 정상적으로 검색할 수 없습니다.
- 호스트 PC의 CAN 네트워크가 올바르게 구성되어 있어야 함
- 툴보드의 CAN 속도가 호스트 PC와 완전히 일치해야 함(속도가 일치하지 않으면 통신 불가)
lsusb명령 실행 후1d50:606f장치(USB-CAN 어댑터)가 보여야 함
검색 명령어(시스템에 따라 선택)
- 일반 호스트 PC 검색 명령어
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
- FLY 호스트 PC 검색 명령어
python3 ~/klipper/scripts/canbus_query.py can0
검색 결과 설명
상황 1: Klipper 펌웨어가 이미 플래싱된 메인보드/툴보드
- 표시 효과: 하나의 CAN ID가 표시되고
Application: Klipper안내 표시 - 설명: 장치가 이미 Klipper 펌웨어를 실행 중이며 바로 사용 가능합니다. 이 ID는 메인보드 ID일 수도 있고 툴보드 ID일 수도 있습니다.
- 구분 방법: 툴보드의 CAN 연결선을 분리한 후 다시 검색합니다. 해당 ID가 사라지면 툴보드에 속한 것이고, ID가 그대로 있으면 메인보드에 속한 것입니다.
상황 2: 메인보드 + 플래싱 대기 중인 툴보드
- 표시 효과: 두 개의 CAN ID가 표시됨
- 설명: 메인보드는 Klipper 펌웨어를 실행 중이고, 툴보드는 CanBoot 펌웨어를 실행 중이며 플래싱을 기다리고 있습니다.
상황 3: UTOC + 플래싱 대기 중인 툴보드
- 표시 효과: UTOC 자체는 ID를 표시하지 않음, 툴보드의 ID만 표시됨
- 설명: UTOC는 브리지 역할만 하며, 툴보드가 CanBoot 모드에 있는지 확인해야 합니다.
상황 4: ID 미표시
- 표시 효과: 어떤 ID도 표시되지 않음
- 가능한 원인:
- CAN 버스가 Klipper에 의해 점유됨
- 호스트 PC의 CAN0 속도 설정 오류
- 물리적 배선 이상
- 장치가 CanBoot 모드로 진입하지 않음
- 플래싱 대기 상태: 툴보드가 CanBoot 모드일 때
Application: CanBoot가 표시되고 펌웨어 LED가 깜빡이며, 이때 펌웨어 플래싱이 가능합니다. - ID 점유 처리: 장치가 이미 Klipper 펌웨어를 실행 중이고 ID가 설정 파일에 입력되어 있으면 ID가 표시되지 않습니다(Klipper에 점유됨). 다시 표시하려면 설정에서 해당 ID를 비활성화하고 완전히 전원을 차단한 후 재부팅해야 합니다.
UUID를 조회할 수 없는 경우 다음을 참조하십시오: CAN 문제 해결 가이드
펌웨어 플래싱
플래싱 명령어
- 아래 명령어의
241696050c56를 실제 조회한 UUID로 바꾸십시오 - 참고:
-u매개변수 뒤에 공백이 있어야 합니다
-
FlyOS-FAST 1.3.8 이상 또는 2026년 4월 9일 이후 Klipper를 업데이트한 시스템은 새 명령어를 사용하십시오:
python3 ~/klipper/lib/katapult/flashtool.py -u 241696050c56 -
구버전 시스템(FAST 1.3.8 이전 또는 2026년 4월 9일 이전에 Klipper를 업데이트하지 않은 경우)은 구 명령어를 사용하십시오:
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
플래싱 성공 확인
CAN Flash Success 안내가 나타나면 플래싱 성공입니다:
펌웨어 업데이트
업데이트 방법
펌웨어 업데이트가 필요할 때는 다음만 하면 됩니다:
- 펌웨어 재컴파일
- 장치 CAN ID 조회 가능 여부 확인(또는 Klipper가 장치에 연결되어 있어야 함)
- 동일한 플래싱 명령어 실행
-
FlyOS-FAST 1.3.8 이상 또는 2026년 4월 9일 이후 Klipper를 업데이트한 시스템:
python3 ~/klipper/lib/katapult/flashtool.py -u <MCU ID> -
구버전 시스템(FAST 1.3.8 이전 또는 2026년 4월 9일 이전에 Klipper를 업데이트하지 않은 경우):
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
업데이트 성공 예시
펌웨어 시작 확인
- 펌웨어가 정상적으로 시작되면 LED가 켜집니다.
Loading...