072版本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 选择 STM32F072(Top)Klipper Firmware Configuration4Bootloader offset 选择 8KiB bootloader(Top)Klipper Firmware Configuration5Clock Reference 选择 8 MHz crystal(Top)Klipper Firmware Configuration6Communication interface 选择 CAN bus (on PB8/PB9)(Top)Klipper Firmware Configuration7CAN bus speed 设置为 1000000(Top)Klipper Firmware Configuration8启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration9GPIO pins to set at micro-controller startup 设置为 !PC13(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_i2c.oCompiling out/src/generic/canserial.oCompiling out/src/../lib/fast-hash/fasthash.oCompiling out/src/stm32/can.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...
- 请确保CAN H与CAN L在断电情况下使用万用表测量阻值在
60Ω左右,如果是120Ω则需要接上120Ω跳线,如果是40Ω左右需要将跳线移除Loading...
搜索ID并烧录
查询CANBus UUID
- 建议在非打印状态下执行ID查询和固件刷写操作,避免干扰打印过程。
- 同一主板/工具板的Katapult(CANBoot)固件与Klipper固件使用相同的CAN ID。
请确保满足以下条件,否则可能无法正常搜索到CAN ID:
- 上位机CAN网络已正确配置
- 工具板CAN速率与上位机完全一致(速率不一致将无法通信)
- 执行
lsusb命令后能看到1d50:606f设备(USB-CAN适配器)
搜索命令(根据系统选择)
- 普通上位机搜索指令
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
- FLY上位机搜索指令
python3 ~/klipper/scripts/canbus_query.py can0
搜索结果说明
情况一:已刷Klipper固件的主板/工具板
- 显示效果:显示一个CAN ID,并提示
Application: Klipper - 说明:设备已运行Klipper固件,可以直接使用。此ID可能是主板ID也有可能是工具板ID.
- 区分方法:断开工具板的CAN连接线后重新搜索。如果该ID消失,则属于工具板;如果该ID仍在,则属于主板。
情况二:主板 + 待烧录工具板
- 显示效果:显示两个CAN ID
- 说明:主板运行Klipper固件,工具板运行CanBoot固件,等待烧录。
情况三:UTOC + 待烧录工具板
- 显示效果:UTOC本身不显示ID,只显示工具板的ID
- 说明:UTOC仅作为桥接器,需确保工具板处于CanBoot模式。
情况四:无ID显示
- 显示效果:无任何ID显示
- 可能原因:
- CAN总线被Klipper占用
- 上位机CAN0速率配置错误
- 物理接线异常
- 设备未进入CanBoot模式
- 待烧录状态:工具板处于CanBoot模式时会显示
Application: CanBoot且固件灯闪烁,此时可进行固件烧录。 - 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...