一、编译源码
1.1、下载源码及参考
参考:
STM32F103C8T6 编译Klipper下位机固件参数设置 --
编译配置选项参考《MKS SKIPR V1.0安装Klipper(ALLCCT200 3D打印机升Klipper固件全过程) - 哔哩哔哩》文章
下载
git clone https://github.com/Klipper3d/klipper
1.2、编译
在linux系统下编译,debian ubuntu的iso,下面是常用的包,不全根据提示补全。
sudo apt-get install python3 python3-pip python3-virtualenv gcc-arm-none-eabi git
cd klipper
1.2.1、配置 Klipper 固件
1)进入配置菜单
在 Klipper 源代码的根目录下运行 make menuconfig 以进入配置菜单:
make menuconfig
2)设置参数
在配置界面中,你需要设置以下参数来编译适用于 STM32F103C8T6 的固件:
Microcontroller Architecture: STM32
Processor model: STM32F103
Bootloader offset: 8KiB bootloader
Clock Reference: 8 MHz crystal
Communication interface: USB (on PA11/PA12) 或者 USART1,具体根据你的硬件连接选择
具体操作步骤如下:
Microcontroller Architecture 选择 STM32.
Processor model 选择 STM32F103.
Bootloader offset 选择 8KiB bootloader.
Clock Reference 选择 8 MHz crystal.
Communication interface,你可以选择 USB (on PA11/PA12) 如果你打算通过 USB 与主机通信,或者选择 USART1 如果你的硬件设置使用了串行通信。
保存并退出
完成设置后,选择 Save,然后退出配置菜单。
1.3、编译
1.3.1、编译
在配置完成后,运行 make 命令以编译 Klipper 固件:
(sudo)make
生成的固件
编译完成后,会生成一个 klipper.bin 文件,通常路径在 out/klipper.bin
自己编译的klipper.bin文件 25k左右,官网下载225k左右。
二、bin文件下载
方式一(通过 USB 升级)
如果使用 USB 并且是新的微控制器,你需要使用像 DFU 或者 st-flash 工具部署固件:
- 使用 dfu-util(USB)的例子:
dfu-util -a 0 -s 0x08000000:leave -D out/klipper.bin
方式二(通过串口升级)
如果选择使用串口,可以使用串口工具,如:
使用 stm32flash:
stm32flash -w out/klipper.bin -v -g 0x08000000 /dev/ttyUSB0
方式三(通过 BOOT0 引脚)
连接 BOOT0 引脚和 VCC,然后重启设备。
使用 USB 或串口工具从上面的方法中刷写固件。
重刷写完成后移除 BOOT0 和 VCC 连接,然后再次重启设备
方式四(TF卡下载,我用的方式,测试正常)
步骤1:拷贝klipper.bin文件,更名,拷贝到tf卡中。
sudo mount /dev/sdax /media/
mv klipper.bin mks_skipr.bin
cp xxx xxx
sudo umont /media/
备注:
TF卡,最好是fat32格式,ntfs好像读不了。
步骤2(下载):
1)MCU 默认无 Klipper 固件
断电,插入 MCU-TF 插槽后按 RESET 进行更新,更新成功则后,tf卡中文件名由mks_skipr.bin变为mks_skipr.CUR,大概需要1分多。
默认还是使用 MJPG-Streamer,有条件升级为 crowsnest
一点建议:
1、自己编译的klipper.bin文件 25k左右,官网下载225k左右。
2、开发板自带的程序,已经可以满足需要,如果没有特殊需求,不建议更改。