USB桥接CAN固件烧录
连接上位机
Fly-D8主板只能通过Type-C USB接口与上位机进行Klipper通信。

固件编译注意事项与操作指南
注意事项
- 网络连接:确保上位机(树莓派等)已连接网络
- 访问方式:必须使用SSH通过网络登录上位机,禁止使用串口工具
- 用户权限:根据上位机系统类型,使用正确的用户账户操作
- 输入法:确保键盘输入法为半角模式(英文模式)
SSH登录与用户切换
SSH登录上位机
使用SSH工具(如MobaXterm、PuTTY等)通过网络登录上位机: 查看SSH连接详细教程
根据系统类型切换用户
- 普通上位机(Armbian)
- FAST系统(FlyOS-FAST)
适用系统:
- 树莓派官方系统
- FLY派Armbian系统
- 其他安装好Klipper的系统
用户权限要求:
- 禁止使用
root用户进行任何操作 - 必须切换到普通用户进行操作
切换命令:
-
其他系统(替换
<username>为您的用户名)su <username>
普通用户通常具有必要的编译权限,使用root用户可能导致权限问题
适用系统:
- FlyOS-FAST系统
登录信息:
- 用户名:
root - 密码:
mellow
FAST系统只有root用户
固件编译说明
1. 键盘操作指南
- 在Klipper固件配置页面中,只能使用以下快捷键操作:
- 无法使用鼠标直接操作!
| 按键 | 功能说明 |
|---|---|
| ↑ ↓ 方向键 | 上下移动光标选择菜单项 |
| Enter 或 Space | 确认选择/勾选菜单项 或 进入子菜单 |
| ESC | 返回上一级菜单 |
| Q | 退出Klipper固件配置页面 |
| Y | 退出时如有提示,按Y键保存配置 |
显示隐藏选项
如果配置页面选项较少,请先勾选:
[ ] Enable extra low-level configuration options
此选项用于显示部分隐藏的配置选项。
开始固件编译
下面介绍如何编译固件:
-
连接到SSH后输入下面的命令并回车:
cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig -
其中
rm -rf ~/klipper/.config && rm -rf ~/klipper/out是删除之前编译数据与固件 -
make menuconfig是编译固件,执行后应该出现下方界面
-
选择Enable extra low-level configuration options并且回车

-
进入菜单Micro-controller Architecture然后选择STMicroelectronics STM32回车

-
进入菜单Processor model,选择STM32F407回车

-
选择Bootloader offset,选择:32KiB bootloader

-
选择Communication interface,选择:USB to CAN bus bridge (USB on PA11/PA12)

- 按
Q键,出现 Save configuration,这时再按Y键 - 现在应该保存了配置并且退出到了命令行界面
- 输入下方指令开始编译,时间有点长
make -j4

- 最后输出下面的内容则编译成功
- 因Klipper版本问题只需要出现
out/klipper.bin则代表成功Linking out/klipper.elf
Creating bin file out/klipper.bin
进入烧录模式
- 使用Type-C数据线将主板连接至上位机后,双击RST按钮,此时主板上会有LED灯闪烁。
- 如果没有LED灯闪烁,请重新烧录katapult固件:烧录katapult固件
- 如果没有LED灯闪烁,请在烧录完katapult固件后,再执行下一步

- 请确保上位机可以正常联网,并确保下位机连接上位机的数据线具有数据传输功能。
- SSH连接连接到上位机后输入
lsusb并且回车,如果出现下方图片中圈起来的信息,就可以进行下一步。- 如果没有任何信息反馈,这是上位机的系统问题,这边无能为力,你需要更换确定正常的系统或者更换上位机。
- 提示没有
lsusb指令,可以执行此命令安装sudo apt-get install usbutils
1d50:6177属于本次你要用到的设备。- 部分上位机可能因为系统问题,显示不全或者不显示。
- 如果输入
lsusb指令能够显示设备,但是没有1d50:6177,请尝试更换数据线,尝试将主板连接到上位机的其他USB口。
- 如果您的之前执行过上述步骤,并且成功烧录Klipper固件,主板运行正常,只是更新Klipper固件,请直接查看本页面右侧菜单栏中的
固件更新章节。
必须在查询到1d50:6177设备之后,才能进行下一步
烧录固件
开始烧录
- 安装烧录插件时需要联网,请确保您的上位机已连接互联网
- 如果已安装过烧录插件,则无需重复安装
安装烧录依赖
如果您使用的是非Fly官方上位机,请务必执行以下命令安装固件烧录依赖包!
- GitHub仓库
- 国内镜像
cd && git clone https://github.com/Arksine/katapult.git
cd && git clone https://gitee.com/MrCakeFuck/katapult.git

获取主板ID
执行以下命令搜索设备ID,正常情况应显示类似下图的ID(注意:每张主板的ID都不同):
ls /dev/serial/by-id/*

烧录固件
- 请确保已编译好固件文件
- 将下方命令中的
<你的主板ID>替换为上一步查询到的实际ID
- Fly-Armbian/普通上位机
- Fly-FAST系统
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d /dev/serial/by-id/<你的主板ID>
python ~/katapult/scripts/flashtool.py -d /dev/serial/by-id/<你的主板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
- Fly-Armbian/普通上位机
- Fly-FAST系统
~/klippy-env/bin/python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <你的主板ID>
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按钮
- 重新进入烧录模式