1. 项目概述
作为一名3D打印爱好者,最近我在组装Voron 2.4打印机时遇到了主板固件烧录的问题。Voron 2.4是一款开源自组装的3D打印机,以其出色的打印质量和稳定性受到广泛欢迎。在完成树莓派3B+的Mainsail系统安装后,下一步就是为蜘蛛3.0主板烧录Klipper固件。
这个过程看似简单,但实际操作中会遇到各种意想不到的问题。比如我第一次尝试时,就因为跳线设置错误导致主板无法进入DFU模式;还有一次因为TF卡格式问题,卡刷固件失败。经过多次尝试和排查,我总结出了一套可靠的烧录方法,希望能帮助其他爱好者少走弯路。
2. 准备工作
2.1 硬件准备
在开始烧录前,需要确保以下硬件准备就绪:
- 已安装Mainsail系统的树莓派3B+(建议使用官方Raspberry Pi OS Lite系统)
- 蜘蛛3.0主板(确认版本号,不同版本跳线位置可能不同)
- 16GB或更小的MicroSD卡(用于卡刷方式)
- USB数据线(用于DFU模式烧录)
- 跳线帽若干(用于主板模式切换)
提示:建议准备一个USB转TTL模块作为备用,当主板无法通过USB识别时,可以通过串口方式进行烧录。
2.2 软件工具
需要提前安装以下软件工具:
- Xshell或Putty:用于SSH连接树莓派
- WinSCP:用于文件传输
- SD Card Formatter:用于格式化TF卡(建议使用官方工具而非Windows自带格式化)
这些工具都可以在官网免费下载,安装过程比较简单,这里就不赘述了。
3. 连接设置
3.1 SSH连接树莓派
首先需要通过SSH连接到树莓派:
- 打开Xshell,点击"文件"→"新建"
- 协议选择SSH,主机输入树莓派的IP地址(可通过路由器查看)
- 端口保持默认22,名称可自定义为"Voron Pi"
- 点击"确定"后连接,输入用户名(pi)和密码(默认raspberry)
连接成功后,你会看到命令行提示符,表示已经可以远程控制树莓派了。
3.2 确认Klipper环境
在烧录主板固件前,需要确认Klipper环境已经正确安装:
bash复制cd ~/klipper
ls
应该能看到klipper的源代码目录。如果没有,需要先按照官方文档安装Klipper。
4. 固件配置与编译
4.1 配置编译选项
进入Klipper目录并启动配置菜单:
bash复制cd ~/klipper
make menuconfig
对于蜘蛛3.0主板,需要做如下配置:
- 启用"Enable extra low-level configuration options"
- 微控制器架构选择"STMicroelectronics STM32"
- 处理器型号选择"STM32F446"
- 时钟参考选择"12 MHz crystal"
- 通信接口选择"USB (on PA11/PA12)"
配置完成后按Q退出,然后按Y保存配置。
4.2 编译固件
执行编译命令:
bash复制make
编译过程可能需要几分钟时间,取决于树莓派的性能。编译完成后,固件文件会生成在~/klipper/out/目录下,名为klipper.bin。
5. 固件烧录方法
5.1 卡刷方式(推荐)
卡刷是最简单可靠的方式,步骤如下:
- 使用WinSCP将klipper.bin从树莓派复制到本地电脑
- 将文件重命名为firmware.bin
- 使用SD Card Formatter工具将TF卡格式化为FAT32格式
- 将firmware.bin复制到TF卡根目录
- 断开主板电源,插入TF卡
- 重新上电,等待约30秒
- 断电取出TF卡,检查文件是否已自动改名为firmware.cur
注意:TF卡容量不能超过16GB,且必须格式化为FAT32。如果使用exFAT或NTFS格式,主板将无法识别固件。
5.2 USB DFU模式烧录
当卡刷不成功时,可以尝试DFU模式:
- 断开主板电源
- 设置跳线:
- 连接BT0和3.3V(进入DFU模式)
- 将U5V跳线改为DC5V(供电选择)
- 用USB线连接主板和树莓派
- 为主板供电
- 在树莓派上执行lsusb命令,应该能看到"STMicroelectronics STM32 DFU"设备
- 执行烧录命令:
bash复制
make flash FLASH_DEVICE=0483:df11 - 输入树莓派密码后开始烧录
- 完成后断开BT0跳线,重启主板
6. 验证与测试
烧录完成后,需要进行验证:
- 执行ls /dev/serial/by-id/命令,应该能看到主板的串口设备
- 在Mainsail界面检查是否能连接到主板
- 发送M115命令查看固件版本信息
如果一切正常,恭喜你完成了主板固件的烧录!接下来就可以开始配置打印机的运动系统和热端了。
7. 常见问题与解决方案
在实际操作中,可能会遇到以下问题:
-
主板无法进入DFU模式
- 检查BT0跳线是否正确连接
- 确认供电正常(测量3.3V电压)
- 尝试按下复位按钮
-
卡刷后固件不更新
- 确认TF卡格式为FAT32
- 检查文件名是否为firmware.bin(区分大小写)
- 尝试使用另一张TF卡
-
USB设备无法识别
- 检查USB线是否支持数据传输(有些线只能充电)
- 尝试更换USB端口
- 在树莓派上执行dmesg命令查看内核日志
-
编译错误
- 确保安装了所有依赖:
bash复制sudo apt-get install gcc-arm-none-eabi - 清理后重新编译:
bash复制
make clean make
- 确保安装了所有依赖:
8. 个人经验分享
经过多次烧录实践,我总结出以下几点经验:
-
卡刷方式最稳定,建议优先尝试。但要注意TF卡的质量,劣质卡可能导致烧录失败。
-
在DFU模式下,有时需要多次插拔USB线才能被识别。耐心是关键。
-
建议在烧录前备份原有固件,特别是厂商提供的原始固件。
-
如果遇到奇怪的问题,可以尝试完全断电(包括断开所有USB设备)后再试。
-
保持工作环境整洁,避免静电损坏主板。使用防静电手环是个好习惯。
最后提醒一点:不同版本的蜘蛛主板可能有不同的跳线设置,一定要查阅对应版本的说明书。我在第一次尝试时就因为参考了错误版本的文档而浪费了不少时间。
