USB 固件编译
提示
- Micro4出厂已经预刷USB连接的Katapult固件无需自己再刷一次
开始编译
固件编译简明指南
注意事项
- 网络: 确保上位机(树莓派等)已联网
- 登录方式: 必须使用 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 选择 Raspberry Pi RP2040/RP235x(Top)Klipper Firmware Configuration3Processor model 选择 rp2040(Top)Klipper Firmware Configuration4Bootloader offset 选择 16KiB bootloader(Top)Klipper Firmware Configuration5Communication Interface 选择 USBSERIAL(Top)Klipper Firmware Configuration6USB ids 保持默认,无需进入(Top)Klipper Firmware Configuration7启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration8GPIO pins to set at micro-controller startup 设置为 gpio17(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/rp2040/bootrom.oCompiling out/src/rp2040/usbserial.oCompiling out/src/generic/usb_cdc.oCompiling out/src/rp2040/chipid.oCompiling out/src/rp2040/hard_pwm.oCompiling out/src/rp2040/spi.oCompiling out/src/rp2040/i2c.oPreprocessing out/src/rp2040/rpxxxx_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数据线将主板连接至上位机后,双击reset按钮,此时主板上会有LED灯闪烁。
警告
- 如果没有LED灯闪烁,请重新烧录Katapult固件:烧录Katapult固件
- 如果没有LED灯闪烁,请在烧录完Katapult固件后,再执行下一步
烧录固件
开始烧录
- 非Fly官方上位机需要安装Katapult
- 安装Katapult
获取主板ID
执行以下命令搜索设备ID,正常情况应显示类似下图的ID(注意:每张主板的ID都不同):
ls /dev/serial/by-id/*
搜索出来的ID中包含了
usb-katapult_stm32xxxxxxxx,则代表可以下一步
Loading...
烧录固件
⚠️ 准备工作
- 请确保已编译好固件文件
- 将下方命令中的
<你的主板ID>替换为上一步查询到的实际ID
- 普通上位机请使用下方代码
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <你的主板ID>
- FLY上位机请使用下方代码
python3 ~/katapult/scripts/flashtool.py -d <你的主板ID>
烧录过程参考:
Loading...
烧录成功参考:
Loading...
固件更新
- USB固件更新
- 桥接CAN固件更新
USB固件更新步骤
- 查询主板ID
ls /dev/serial/by-id/*
识别要点
下图中的 /dev/serial/by-id/usb-katapult_rp2040_E662549553642032-if00 即为主板ID
Loading...
- 更新固件
cd ~/klipper/ && make flash FLASH_DEVICE=<你的主板ID>
注意
- 请将
<你的主板ID>替换为实际查询到的ID
Loading...
桥接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(仅作示例)
Loading...
- 查询新的设备ID
ls /dev/serial/by-id/*
识别要点
- 这只是参考!
- 下图中的
/dev/serial/by-id/usb-Klipper_stm32f072xb_38001B000551324752333720-if00即为新识别的主板ID
Loading...
- 烧录新固件
cd ~/klipper/ && make flash FLASH_DEVICE=<你的主板ID>
Loading...
刷错固件的解决方法
方法一:快速进入烧录模式
- 主板断电
- 重新上电后,快速双击RESET按钮
- 重新进入烧录模式
方法二:重新烧录Katapult固件
点击查看Katapult固件烧录指南确认固件是否启动
- 如果固件正常启动LED会亮起来
Loading...
Loading...