Katapult 是一种为 ARMCortex-M mcu 设计的引导加载程序。这个引导加载程序最初是为CAN节点设计的,以便与Klipper 一起使用。引导加载程序本身利用了Klipper的硬件抽象层,将内存占用最小化。除了CAN,katapult现在还支持USB和UART接口。目前支持lpc176x、stm32和rp2040三种mcu。CAN支持目前仅限于stm32f系列和rp2040设备。
Klipper 已支持 katapult,通过 CANBUS 直接烧录固件。使用katapult后为主板和Can通讯设备更新klipper固件就无需再连接USB线,保持现有的CAN连接的情况下可直接烧录固件,能够更便捷、高效的更新CAN工具板的固件
刷机流程
刷主板katapult,利用katapult刷主板klipper固件
刷can板katapult,利用katapult刷can板klipper固件
主板固件烧录
1、编译主板katapult 固件即原CanBoot固件
拉取 / 更新 Katapult 源码
首次安装:
cd ~/ && git clone https://github.com/Arksine/katapult国内仓库:
cd ~/ && git clone https://gitee.com/dimite/katapult.git已安装则更新:
cd ~/katapult && git pull进入katapult 目录:
cd katapult配置主板的katapult固件:
make menuconfig
按主板参数配置芯片架构、通信接口等,配置
按 Q 键,出现 Save configuration,这时再按 Y 键,然后输入make 编译固件,等待固件编译完成。

make
2、编译主板的klipper固件
cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
按 Q 键,出现 Save configuration,这时再按 Y 键,然后输入make 编译固件,等待固件编译完成。

make
3、烧录主板的katapult和klipper固件
lsusb
烧录固件使用下方代码,请确保已经编译好固件,请将<你的主板ID>替换为上一步查询到的ID
sudo dfu-util -a 0 -D ~/katapult/out/katapult.bin --dfuse-address 0x08000000:force:mass-erase -d 0483:df11刷入成功后,退出dfu并按一下主板上的RESET按键重启主板
输入ls/dev/serial/by-id/即可查询到主板的 UUID,如下图所示:
ls /dev/serial/by-id/
USB/UART设备,请确保上位机安装了pyserial 。此步骤只需要执行一次:
pip3 install pyserial进入katapult的scripts 目录:
cd ~/katapult/scripts输入下面命令用katapult来刷入klipper固件,替换成查询到的uuid
python3 flashtool.py -d /dev/serial/by-id/<替换成查询到的uuid> -b 1000000
固件刷写完成后,需进一步配置上位机 Can0 通道
输入命令 sudo nano /etc/network/interfaces.d/can0 打开配置文件
sudo nano /etc/network/interfaces.d/can0复制并粘贴以下四行命令,务必修改比特率,确保与固件设置保持一致
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
确认无误后,Ctrl+X,按Y,然后回车储存离开此页面
如出现 does not exist,我们手动完成目录创建
sudo mkdir /etc/network/interfaces.d
重启上位机:
sudo reboot4、查询主板的UUID
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0can固件烧录
1、编译can板katapult 固件即原CanBoot固件
进入katapult目录:
cd katapult配置can板的katapult固件:
makemenuconfig
按 Q 键,出现 Save configuration,这时再按 Y 键,然后输入make 编译固件,等待固件编译完成。

2、编译can板klipper 固件
cd ~/klippermakemenuconfig
按 Q 键,出现 Save configuration,这时再按 Y 键,然后输入make 编译固件,等待固件编译完成。

连接CAN板和主板上的CAN通讯接口,确保供电正常,将CAN板和主板的120欧姆的跳线帽均插上。
3、烧录can板的katapult固件
Type-C线将CAN板与上位机连接,进入DFU各个can进入不太一样,eztb按住两个先松开RESET,过1-2秒后松开BOOT0
lsusb
sudo dfu-util -a 0 -d 2e3c:df11 -s 0x08000000:mass-erase:force -D ~/katapult/out/katapult.bin刷完按RESET重启can板
4、烧录can板的klipper固件
接好24v和can连接线,并通电
进入Katapult 目录:
cd~/katapult/scripts查询 Can0 通道下设备的 UUID 用于烧录:
python3 flash_can.py -i can0 -q
烧录 Klipper 固件:替换<你的UUID>
python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u 9fa13b428e5b等待烧录完成后,执行查询命令验证固件状态:
python3 flash_can.py -i can0 -q
配置主板canbus_uuid和can板canbus_uuid



附件在哪里?