USB 固件编译
- USB加速度计出厂预刷USB连接的Katapult固件
- 如果发现没有烧录可自行烧录
- Katapult固件烧录
开始编译
- 需要使用安装好
klipper
服务的上位机 通过网络连接SSH - 并且将设备与上位机连接好
- 注意:请使用普通的上位机,比如树莓派 FLY派等,如果是魔改上位机因为问题太多这边无法提供太多帮助
- 请不要使用
ROOT
用户
- 请确保上位机可以正常联网
- 固件编译前需要使用SSH通过网络登录上位机
- 请不要使用串口工具登录上位机
Klipper固件编译配置页面操作说明
请确保键盘输入法为半角模式,即英文模式
- 键盘上键
↑
,下键↓
,用于上下移动光标来选中菜单项 - 确认键
Enter
或 空格键Space
,用于勾选菜单或进入子菜单 - 退出键
ESC
,用于返回上一级菜单 Q
键,用于退出Klipper固件配置页面Y
键,在退出Klipper固件配置页面时,如果有提示,则点击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然后选择Raspberry Pi RP2040回车
-
选择Bootloader offset,选择:16KiB bootloader
-
Communication interface,选择:USBSERIAL
- 选择GPIO pins to set at micro-controller startup,输入:gpio24
- 按
Q
键,出现 Save configuration,这时再按Y
键
- 现在应该保存了配置并且退出到了命令行界面
- 输入
make -j4
开始编译,时间有点长
-
最后输出下面的内容则编译成功
Linking out/klipper.elf
Creating hex file out/klipper.bin
搜索设备
- 请确保上位机可以正常联网
- 请确保下位机连接上位机的数据线具有数据传输功能
- SSH连接连接到上位机后输入
lsusb
并且回车,将可能出现下面三种情况- 显示已经识别到的USB设备
- 提示没有
ls
指令,可以执行此命令安装sudo apt-get install usbutils
- 没有报错,没有其他信息(系统问题需要更换系统)
- 输入
lsusb
后什么反应都没有,这是系统问题这边无能为力,你需要更换确定正常的系统 - 如果出现下方图片中圈起来的信息,就可以进行下一步
1d50:6177
属于本次你要用到的设备。后面的提示你不需要管,因为系统问题可能会导致他显示不全或者干脆不显示- 如果没有,请自行检查数据线是否接好或者主板是否处于Katapult模式下(原名CANBOOT)
- 如果已经使用Katapult烧录了klipper固件,可以查看下方更新固件方法
有1d50:6177
时候才进行下一步
烧录固件
使用Katapult固件可以方便以后直接通过SSH更新固件,无需在进入DFU烧录固件
安装烧录插件
请注意安装烧录插件需要上位机能联网 如果已经安装过则无需再次安装
-
安装
pip install pyserial
pip install pyserial
-
如果提示
-bash: pip: command not found
需要执行sudo apt-get install pip
-
如果提示出现下方报错需要执行
pip install pyserial --break-system-packages
开始烧录固件
-
使用下方指令搜索你的设备串口地址
ls /dev/serial/by-id/*
-
下方是参考
-
烧录固件使用下方代码,请确保已经编译好固件,请注意
=
后面没有空格 -
请注意你需要在klipper目录下才能烧录固件
make flash FLASH_DEVICE=
-
下方是参考
-
烧录完成参考
更新固件方法
-
更新USB固件需要在编译好最新固件后输入下方命令更新,请注意
=
后面没有空格make flash FLASH_DEVICE=
-
更新USB桥接CAN固件需要在编译好最新固件后输入下方命令重置进去Katapult
-
请注意只能给USB桥接CAN的klipper固件执行,其他固件执行会报错
~/klippy-env/bin/python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <MCU ID>
-
重置进去Katapult后在执行下方执行更新固件
make flash FLASH_DEVICE=<你的设备串口地址>
刷错固件解决方法
- 主板断电,重新上电后快速点击两次主板重置即可
- 或者使用WINDOWS清理固件后重新刷BL