最近在自制蓝牙机械键盘,需要一个蓝牙模块,常用的模块是rn42或esp32。还有一种方法是购买廉价的hc-06或hc-05,刷rn42固件支持蓝牙hid。
![a3fa3db395f71d69db841e0b51c643bb.png](https://img-blog.csdnimg.cn/img_convert/a3fa3db395f71d69db841e0b51c643bb.png)
HC-05和HC-06的硬件相同,都采用CSR公司的BC417143芯片,只是固件一样不同。两款蓝牙模块是CSR公司推出的主从机一体蓝牙模块板,非常多人会搭配Arduino进行一些简单的开发。
外观展示
某宝购买的蓝牙hc-06模块,应该是寨品而不是原装货,一些元件和网络上的不一样。
![8c415e2a637c24f417c95d4a15460d35.png](https://img-blog.csdnimg.cn/img_convert/8c415e2a637c24f417c95d4a15460d35.png)
网络上的教程刷固件使用到的是ft232RL编程器,接线示意如图所示。
![5109d5a7b97d7fc6b74a0b930d8e4d7f.png](https://img-blog.csdnimg.cn/img_convert/5109d5a7b97d7fc6b74a0b930d8e4d7f.png)
由于没有FT232RL编程器,我选用了Ch341a土豪金编程器作为替代。
![85e1f36ea0be4f87fee0814ac1c85b01.png](https://img-blog.csdnimg.cn/img_convert/85e1f36ea0be4f87fee0814ac1c85b01.png)
先焊接上clk,miso,mosi,csb四条线。
![d2e5aa19025b5cddc02245db5f562c44.png](https://img-blog.csdnimg.cn/img_convert/d2e5aa19025b5cddc02245db5f562c44.png)
在线的尾端接上220欧姆的电阻。
![4a38176c457a9460bcae76193b9eda50.png](https://img-blog.csdnimg.cn/img_convert/4a38176c457a9460bcae76193b9eda50.png)
使用面包板固定。
![886bb8c7b3b867a7c8662f8d31636f00.png](https://img-blog.csdnimg.cn/img_convert/886bb8c7b3b867a7c8662f8d31636f00.png)
接好线材后就能进行软件的安装。
![5b8176a0afd2c7f1eeee5f18455552d2.png](https://img-blog.csdnimg.cn/img_convert/5b8176a0afd2c7f1eeee5f18455552d2.png)
github上有使用ch341a刷csr模块固件的方法。
![83bb87449479005acf152d0975556db6.png](https://img-blog.csdnimg.cn/img_convert/83bb87449479005acf152d0975556db6.png)
最新版本是0.52,已经两年多没有更新过。
![d041c930aaf4bba8bcbee92b18199146.png](https://img-blog.csdnimg.cn/img_convert/d041c930aaf4bba8bcbee92b18199146.png)
安装csr官方的开放套件BlueSuite。
![527131d3070f9cceb62c15034e44a47c.png](https://img-blog.csdnimg.cn/img_convert/527131d3070f9cceb62c15034e44a47c.png)
将github下载的源码,编译出dll文件。将修改过的usbspi.dll文件复制到BlueSuite文件夹中,替换原版dll文件。
![e0efba58fdf12f9ba34617cc65bfa6e3.png](https://img-blog.csdnimg.cn/img_convert/e0efba58fdf12f9ba34617cc65bfa6e3.png)
使用Zadig替换spi的驱动程序。
![29ba941b575c1dff48a442ce073e67fd.png](https://img-blog.csdnimg.cn/img_convert/29ba941b575c1dff48a442ce073e67fd.png)
将ch341a的驱动程序替换成libusbK。
![1d1960a53f7b10ddb43406fedab7e787.png](https://img-blog.csdnimg.cn/img_convert/1d1960a53f7b10ddb43406fedab7e787.png)
将ch341a的跳线帽设定到刷机模式。
![d6bc7a0b4643b5cf1b35d7665be0a71c.png](https://img-blog.csdnimg.cn/img_convert/d6bc7a0b4643b5cf1b35d7665be0a71c.png)
运行BlueFlash,进行固件更新。
![08816f2f8f0ae7c48c523eb23f00060f.png](https://img-blog.csdnimg.cn/img_convert/08816f2f8f0ae7c48c523eb23f00060f.png)
无语是怎么都无法识别到ch341a,失败了。
![89f007a5db6c4cc3b9b6fdb2a9780853.png](https://img-blog.csdnimg.cn/img_convert/89f007a5db6c4cc3b9b6fdb2a9780853.png)
只能购买FT232RL编程器进行固件更新了。
![d40952e41b2e6c27bdebd9d40235c94b.png](https://img-blog.csdnimg.cn/img_convert/d40952e41b2e6c27bdebd9d40235c94b.png)
再次到github下载修改的驱动程序。
![9ba18882d8ffecd0a2840995b7905b5a.png](https://img-blog.csdnimg.cn/img_convert/9ba18882d8ffecd0a2840995b7905b5a.png)
重复之前步骤替换掉驱动,将驱动从原来的FTDBUS替换成libusbK。
![7b03c78397844cc89af140c5d3c2c7b2.png](https://img-blog.csdnimg.cn/img_convert/7b03c78397844cc89af140c5d3c2c7b2.png)
使用FT232RL后,BlueFlash能正确识别出编程器了。由于是山寨的编程器,序列号是000000。
![9f2e4c772edd1a5f6cb025bf0cc0b37f.png](https://img-blog.csdnimg.cn/img_convert/9f2e4c772edd1a5f6cb025bf0cc0b37f.png)
点击停止驱动程序,进行固件更新模式。先保存原版的固件,免得出问题后无法补救。
![926a3f24d7fb5428eaae3b30115464cc.png](https://img-blog.csdnimg.cn/img_convert/926a3f24d7fb5428eaae3b30115464cc.png)
再运行套件中的PStool进行调试。
![88df197f9279ad82f19bc0b0bb565f15.png](https://img-blog.csdnimg.cn/img_convert/88df197f9279ad82f19bc0b0bb565f15.png)
编程模式依旧是spi,编程器是FT232RL。
![adb86af3f6b9d8cc72b7cb87d0219c8b.png](https://img-blog.csdnimg.cn/img_convert/adb86af3f6b9d8cc72b7cb87d0219c8b.png)
连接上hc-06,能看到固件的相关参数设定。将相关的参数保存,格式是psr。
![42152f113a14530908a4faca41932b33.png](https://img-blog.csdnimg.cn/img_convert/42152f113a14530908a4faca41932b33.png)
mega下载rn-42的固件,进入BlueFlash,选中rn42的固件进行更新。
![d68f782365d4ff030624ce1368fe61a2.png](https://img-blog.csdnimg.cn/img_convert/d68f782365d4ff030624ce1368fe61a2.png)
固件更新后还要对设置参数进行修改,因为HC-06的阵脚定义是有差别的。
![270ab7f194072dbe83d024a15da54262.png](https://img-blog.csdnimg.cn/img_convert/270ab7f194072dbe83d024a15da54262.png)
至此HC-06就变成了HID固件,可以搭配有线机械键盘,改造成蓝牙机械键盘了。
总结
HC-06蓝牙模块板子廉价,刷rn42固件后能实现蓝牙HID功能,性价比高。不过hc-06模块采用的是蓝牙2.0协议,作为机械键盘的主控较为耗电,抗干扰和兼容性低,不是很实用。就图个玩,毕竟一个蓝牙3.0的bcm20730模块或hc-08模块价格都在20元以上,博通的驱动还不好获得。