
分类
技术干货
STM32小蓝板刷Klipper教程
简介
BootLoader + DFU方式进行烧录
简介:BootLoader + DFU方式进行烧录事前准备
硬件
- 小蓝板一块(STM32F103C8T6或兼容芯片)
- USB转TTL模块一个
- 4pin杜邦线一条
- 装好Klipper的上位机
- 用来连接上位机和小蓝板的USB线一条
- Windows电脑一台(刷BootLoader用,这里以Win10做为演示环境,其它操作系统也可以)
软件以及固件
- stm32flash(刷BootLoader用)
- generic_boot20_pc13.bin(小蓝板用到的BootLoader,其他板请根据实际情况选择)
- MobaXterm(连接上位机用,其它SSH工具也可以,直接在上位机操作也可以)
原理讲解
小蓝板使用的是STM32F103C8T6,默认是不支持USB烧录的,我们需要先使用串口将BootLoader烧录进去
这里选用的是stm32duino-bootloader,大小为8K,这个BootLoader烧录后可以使用USB进行后续固件的烧录
实际上这里你直接用串口烧录Klipper的固件也可以(需要自行配置编译选项),但是考虑到后续的升级维护,还是先刷入BootLoader更方便
刷机步骤
刷入BootLoader
1、修改跳线帽配置小蓝板启动模式 如下图所示
> boot0 = 1
> boot1 = 0
> 
2、按以下接线方式连接好TTL模块和小蓝板
| TTL模块 | 3.3v | GND | RX | TX |
|---|---|---|---|---|
| 小蓝板 | 3.3v | GND | PA9(TX) | PA10(RX) |
3、解压stm32flash-0.7-binaries,并将generic_boot20_pc13.bin文件放到解压后的文件夹下
> 操作完成后目录结构如下
> 
4、TTL模块连接电脑,在设备管理器找到串口号,这里是COM17

5、打开CMD,进入解压出来的文件夹,输入以下命令,然后回车(端口号请换成上面找到的)
.\stm32flash.exe -w generic_boot20_pc13.bin -v -g 0 COM17

6、刷入完成后,拔掉TTL与电脑连接的线,恢复小蓝板启动模式
> boot0 = 0
> boot1 = 0
> 
7、再插上TTL与电脑连接的线,这个时候小蓝板上的PC13灯闪烁表示刷入BootLoader成功
> 这个时候如果使用USB线连接电脑和小蓝板,能看到电脑识别到新设备
8、拔掉TTL与电脑连接的线,拔掉TTL与小蓝板连接的线,准备开始下一步
编译固件
1、打开Klipper上位机,并获取其IP
2、打开MobaXterm,点击Session,再点击SSH,输入在Remote host输入IP,若端口不是22,请修改Port,点击OK,然后输入你Klipper上位机的用户名回车,再输入密码回车,即可登录到上位机
> 请注意输入密码时界面没有提示

3、登录后执行分别以下命令
进入Klipper目录下
cd ~/klipper/
配置固件
make menuconfig
> 执行make menuconfig后,请按下图进行配置(键盘上下移动,回车进行操作,Q保存退出)
> 这里配置的是使用USB连接上位机的固件,有其它需求或其它芯片请自行进行配置
> 新手退出后,建议再次执行make menuconfig确认配置是否保存成功
> 
编译固件
make
> 需要执行一段时间,请耐心等待
> 看到 Creating hex file out/klipper.bin 即表示编译成功
> 
刷入Klipper固件
1、将小蓝板通过准备好的USB线连接到Klipper上位机,并执行以下命令使用DFU工具刷入Klipper固件
sudo dfu-util -d 1eaf:0003 -a 2 -R -D ~/klipper/out/klipper.bin
> 设备ID是固定的,这个时候请最好拔掉其它下位机
> 会让你再次输入密码,请输入并再次回车
2、等待一会后,出现status(0) = No error condition is present表示刷入成功,同时PC13灯不再闪烁

3、输入以下指令获取小蓝板下位机ID
ls /dev/serial/by-id/*

4、将小蓝板下位机ID配置到Klipper网页,上位机正常链接,本教程结束
> 还可以直接使用小蓝板作为2ndMCU,连接加速度计或者拓展IO






评论