蓝牙无线自制串口模块连接穿越机配置工具
- 1. 目的
- 2. 验证环境
- 3. BLE SPP验证
- 4. BT SPP验证
- 5. 参考资料
穿越机配置工具
- SpeedyBee
- BetaFlightConfigurator
目前,市面上连接BetaFlight给飞控固件调参比较顺手的工具大体上是官网的BetaFlight Configurator(国内都叫BF地面站,其实个人感觉不应该叫地面站,配置工具更好。因为地面站更多具有导航,航线规划和控制功能)。
除此之外,比较能够让大家耳目一新的大概是手机端的SpeedyBee这应用软件,非常适合场外进行参数调整。
所以开源的东西就是香,大体的意思就是免费,还专业。
1. 目的
本文的主要目的是期望在开源项目基础上,尤其通过其协议接口进行配置工具对接,摆脱有线连接的困扰。为后续MSP协议的相关控制奠定基础。
2. 验证环境
本次验证主要基于蓝牙,通过BLE SPP 或者BT SPP 对飞控串口RxTx进行无线扩展连接。
- 硬件开发环境:采用时下比较实惠成熟的乐鑫ESP32物联网方案,该方案可以扩展到ESP-S3等更新MCU,以应对后续扩展应用。
- 软件开发环境:采用ESP-IDF,具有健壮SDK和示例代码。
3. BLE SPP验证
软件:SpeedyBee APP v1.8.0
固件:BleSppUart
存在问题:
a) BLE 默认MTU大小23字节。当报文超过该长度(含报文头,占4字节),将会采取分包。
b) BLE分包格式:分包头 + payload鉴于Windows/手机上没有BLE SPP标准虚拟串口驱动模型,因此在实现组包和分包头解析可能存在应用上的设计差异。
实测结果
a) SpeedyBee认识短包(无需分包+组包过程)
b) SpeedyBee无法识别长包(需要分包组包过程)SpeedyBee无法通过BleSppUart连接BF飞控。所以App上所说的Bluetooth-UART Adapter(通用的模块是硬件,固件必须使用SpeedyBee厂家,有报文解析方面自定义内容)。
注:若有同学知道这个协议格式,或者哪里可以搜到,也请告知!我没有找到,也许是他们闭源的原因。
日志分析
前面三个命令UUI, API version and FC version成功,整体没有超过23字节(MTU),获取BUILD_INFO指令反馈32字节,需要两个20字节分组报文。App似乎一直没有拿到这些数据,所以尝试了7次以后就主动断掉BLE SPP。
99: I (35523) BleSppUart: BLE read 6 Bytes //UUID
124: I (37553) BleSppUart: BLE read 6 Bytes //UUID
141: I (37703) BleSppUart: BLE read 6 Bytes //API version
157: I (37793) BleSppUart: BLE read 6 Bytes // FC_VERSION
173: I (37943) BleSppUart: BLE read 6 Bytes // BUILD_INFO
202: I (39943) BleSppUart: BLE read 6 Bytes // BUILD_INFO
231: I (42043) BleSppUart: BLE read 6 Bytes // BUILD_INFO
260: I (44083) BleSppUart: BLE read 6 Bytes // BUILD_INFO
289: I (46133) BleSppUart: BLE read 6 Bytes // BUILD_INFO
318: I (48083) BleSppUart: BLE read 6 Bytes // BUILD_INFO
347: I (50133) BleSppUart: BLE read 6 Bytes // BUILD_INFO
4. BT SPP验证
软件:BetaFlight v10.8.0
固件:BtSppUart
实测结果
非常成功!!!关键是BT SPP串口的Windows配置方法。
验证步骤:
-
Step1:Windows系统设置–>设备,选择【更多蓝牙选项】
-
Step2:点击【添加】,增加一个蓝牙串口
-
Step3:将我们自主模块上电,在添加对话框找到BtSppUart设备
-
Step4:点击确定,添加蓝牙虚拟串口(请留意串口端口号)
-
Step5:在计算机管理工具里面,确认蓝牙虚拟串口设备添加情况(一次添加过以后,第二次无需添加会自动连接。)
-
Step6: 在BetaFlight Configurator里面选择蓝牙虚拟串口
-
Step7:效果如下,如果感觉速度慢,可以将打印去掉
5. 参考资料
【1】BetaFlight模块设计之三十二:MSP协议模块分析
【2】iNavFlight之MSP DJI协议分析
【3】iNavFlight之MSP DJI协议天空端请求报文
【4】iNavFlight之MSP DJI协议飞控端请求应答