USB 固件编译
连接上位机
Fly-D5主板只能通过Type-C USB接口与上位机进行Klipper通信。
固件编译简明指南
注意事项
- 网络: 确保上位机(树莓派等)已联网
- 登录方式: 必须使用 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 选择 STM32F072(Top)Klipper Firmware Configuration4Bootloader offset 选择 8KiB bootloader(Top)Klipper Firmware Configuration5Clock Reference 选择 8 MHz crystal(Top)Klipper Firmware Configuration6Communication interface 选择 USB (on PA11/PA12)(Top)Klipper Firmware Configuration7USB ids 保持默认,无需进入(Top)Klipper Firmware Configuration8启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration9GPIO pins to set at micro-controller startup 保持为空(Top)Klipper Firmware Configuration10GPIO state at micro-controller startup 选择 Not set此项是 FLYOS-Klipper 功能。通常保持
Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明。(Top)Klipper Firmware Configuration11按 Q 键退出配置界面(Top)Klipper Firmware Configuration12出现 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_adc.oCompiling out/src/stm32/spi.oCompiling out/src/stm32/stm32f0_i2c.oCompiling out/src/stm32/usbfs.oCompiling out/src/stm32/chipid.oCompiling out/src/generic/usb_cdc.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 与系统版本变化。
进入烧录模式
- 使用Type-C数据线将主板连接至上位机后,双击RST按钮,此时主板上会有LED灯闪烁。
烧录固件
开始烧录
- 非Fly官方上位机需要安装Katapult
- 安装Katapult
获取主板ID
执行以下命令搜索设备ID,正常情况应显示类似下图的ID(注意:每张主板的ID都不同):
ls /dev/serial/by-id/*
搜索出来的ID中包含了
usb-katapult_stm32xxxxxxxx,则代表可以下一步
烧录固件
- 请确保已编译好固件文件
- 将下方命令中的
<你的主板ID>替换为上一步查询到的实际ID
- 普通上位机请使用下方代码
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <你的主板ID>
- FLY上位机请使用下方代码
python3 ~/katapult/scripts/flashtool.py -d <你的主板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
- 普通上位机请使用下方代码
~/klippy-env/bin/python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <你的主板ID>
- FLY上位机请使用下方代码
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>
刷错固件的解决方法
方法一:快速进入烧录模式
- 主板断电
- 重新上电后,快速双击RESET按钮
- 重新进入烧录模式
方法二:重新烧录Katapult固件
点击查看Katapult固件烧录指南烧录后搜索 USB ID
固件烧录完成并给主板重新上电后,请继续搜索 USB ID。