一篇如何用两个 pro micro 当作 ISP(In-System Programmer) 互相给对方刷上 DFU bootloader.
众所周知,一般 pro micro 自带的 bootloader 是 caterina,有一个比较烦人的缺点就是一次 reset 之后只有 8 秒的时间在 dfu 模式里。而 dfu bootloader 就不会有这个问题。
免责声明
本人并不是学电子专业的,只是以一个客制化键盘爱好者的角度写的此教程,如有不慎或意外可能会导致 pro micro 变砖。纯小白请谨慎考虑。本文如有错误欢迎指正。
工具
软件
硬件
两个 pro micro,6 根导线
步骤
给两个 pro micro 刷 bootloader 的步骤稍有不同
给第一个 pro micro 刷
- 打开 Arduino IDE, Tools -> Arduino Leonardo, Tools -> Port 并记住端口号,File -> Examples -> ArduinoISP -> ArduinoISP 然后点 upload,这样一个 pro micro 就变成了 ISP。
- 接线:
每行左右两侧脚位相连:
ISP | 目标 |
---|---|
VCC | VCC |
GND | GND |
SCLK | SCLK |
MISO | MISO |
MOSI | MOSI |
10 | RST |
- 刷入
Win+R 然后输入 cmd 打开命令行,然后进到 QMK Toolbox 的目录,用到的程序在这个目录里。下面的0.x.x
要换成你 QMK Toolbox 的版本号 (写这个教程时最新的版本为 0.1.1),所以不要直接复制粘贴。
然后运行刷入的命令,其中<PORT>
换成第一步中的端口号,<PATH>
换成 bootloader 文件的地址
如果运行成功的话你就成功将 dfu bootloader 刷到 pro micro 上了。
给另一个 pro micro 刷
由于 arduino 不支持 dfu,所以我们需要用另一个程序dfu-programmer
(也在 QMK Toolbox 的目录下)来将刷入 dfu 的那个 pro micro 再变成 ISP。首先要找到 ArduinoISP 编译后的 hex 文件:AppData\Local\Temp\arduino_build_xxxxxx\ArduinoISP.ino.hex
(xxxxxx 是一串数字,每个人的不一样)。接下来就准备刷入了,还是在 QMK Toolbox 的目录下,执行下面 3 条命令:(其中<PATH>
换成刚才提到的 ArduinoISP.ino.hex 的路径)
最后再重复上一个部分的 2、3 步即可。
参考资料
https://www.reddit.com/r/olkb/comments/9ctx37/qmk_burn_dfu_bootloader_into_keyboard_with/ https://www.reddit.com/r/olkb/comments/8sxgzb/replace_pro_micro_bootloader_with_qmk_dfu/