USB桥接CAN固件烧录
连接上位机
Fly-D8主板只能通过Type-C USB接口与上位机进行Klipper通信。
固件编译简明指南
注意事项
- 网络: 确保上位机(树莓派等)已联网
- 登录方式: 必须使用 SSH 通过网络登录,禁用串口
- 输入法: 保持键盘为英文半角模式
SSH登录与用户切换
使用 MobaXterm、PuTTY 等工具 SSH 登录上位机。
切换用户:
- 普通系统(树莓派官方系统等)
禁止使用root,需切换到普通用户:su <用户名> - FLY上位机(FlyOS-FAST系统)
仅支持root用户登录(密码:mellow)
固件编译操作指南
在 Klipper 固件配置界面中仅支持键盘操作,无法使用鼠标。
| 按键 | 功能 |
|---|---|
| ↑ / ↓ | 上下移动光标,选择菜单项 |
| Enter / 空格 | 确认选择、勾选选项或进入子菜单 |
| ESC | 返回上一级菜单 |
| Q | 退出配置界面 |
| Y | 退出时,如有提示则按 Y 保存配置 |
开始固件编译
下面介绍如何编译固件:
-
连接到SSH后输入下面的命令并回车:
cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig -
其中
rm -rf ~/klipper/.config && rm -rf ~/klipper/out是删除之前编译数据与固件 -
make menuconfig是编译固件,执行后应该出现下方界面 -
其中
rm -rf ~/klipper/.config && rm -rf ~/klipper/out是删除之前编译数据与固件,make menuconfig是编译固件,执行后应该出现下方界面Loading... -
选择
Enable extra low-level configuration options,按Enter键回车Loading... -
进入菜单
Micro-controller Architecture然后选择STMicroelectronics STM32,按Enter键回车Loading... -
进入菜单
Processor model,选择STM32H723,按Enter键回车Loading... -
选择
Bootloader offset,选择:128KiB bootloaderLoading... -
选择
Clock Reference (8 MHz crystal),选择:25 MHz crystalLoading... -
选择
Communication interface,选择:USB to CAN bus bridge (USB on PA11/PA12)Loading...
- 按
Q键,出现 Save configuration,这时再按Y键Loading... - 现在应该保存了配置并且退出到了命令行界面
- 输入下方指令开始编译,时间有点长
make -j4
- 最后输出下面的内容则编译成功
- 因Klipper版本问题只需要出现
out/klipper.bin则代表成功Linking out/klipper.elf
Creating bin file out/klipper.bin
进入烧录模式
- 使用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按钮
- 重新进入烧录模式