蓝牙无线自制串口模块连接穿越机配置工具

2023-05-16

蓝牙无线自制串口模块连接穿越机配置工具

  • 1. 目的
  • 2. 验证环境
  • 3. BLE SPP验证
  • 4. BT SPP验证
  • 5. 参考资料
  • 6. 补充资料-windows10配置全过程截图
    • 6.1 【添加设备】搜索蓝牙串口设备
    • 6.2 【连接】选中SnapAirUnit设备
    • 6.3 【更多蓝牙选项】确认COM端口
    • 6.4 【传出COM口】iNav地面站配置
    • 6.5 【Connect】连接iNav飞控
  • 7. SnapAirUnit V1.0 for Test

穿越机配置工具

  • 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

参考视频:

ESP32 BLE SPP server 範例,並連接到手機上,傳送訊息。

存在问题:

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

搜索资料

两个TI方面的资料表明BLE SPP是自定义的,并非标准接口。

  • 【1】Serial Port Profile is Bluetooth Classic/EDR profile
    在这里插入图片描述

  • 【2】CC2541: firmware for Bluetooth SPP connection and AT commands

在这里插入图片描述
逻辑分析

换句话说,自定义协议必须C/S端同时完成,就像编解码一样,需要成对完成。

方式一:自定义协议在BLE SPP Device里面嵌入

手机APP或PC应用 – UART – BLE SPP Device (Client) – BLE wireless – BLE SPP Device(Server, UART port)

方式二: 自定义下一在BLE SPP Device和手机APP或PC应用上嵌入

手机APP或PC应用 – BLE wireless – BLE SPP Device(Server, UART port)

4. BT SPP验证

软件:BetaFlight v10.8.0
固件:BtSppUart
参考视频:

實現 ESP32 Bluetooth SPP -Serial Port Profile- 的連線

实测结果

非常成功!!!关键是BT SPP串口的Windows配置方法。

验证步骤:

  • Step1: Windows系统–>蓝牙和其他设备,选择【添加蓝牙和其他设备】
    添加蓝牙和其他设备
    已配对

  • Step2:Windows系统设置–>设备,选择【更多蓝牙选项】
    更多蓝牙选项

  • Step3:点击【添加】,增加一个蓝牙串口
    添加蓝牙串口

  • Step4:将我们自主模块上电,在添加对话框找到BtSppUart设备
    注:这里可能名字有点差异,主要是代码和截图使用不一致导致,请根据实际情况判断。整体过程是正确的。
    找到BtSppUart设备

  • Step5:点击确定,添加蓝牙虚拟串口(请留意串口端口号)
    添加蓝牙虚拟串口

  • Step6:在计算机管理工具里面,确认蓝牙虚拟串口设备添加情况(一次添加过以后,第二次无需添加会自动连接。)
    在这里插入图片描述

  • Step7: 在BetaFlight Configurator里面选择蓝牙虚拟串口
    BF选择蓝牙串口

  • Step8:效果如下,如果感觉速度慢,可以将打印去掉

在这里插入图片描述

5. 参考资料

【1】BetaFlight模块设计之三十二:MSP协议模块分析
【2】iNavFlight之MSP DJI协议分析
【3】iNavFlight之MSP DJI协议天空端请求报文
【4】iNavFlight之MSP DJI协议飞控端请求应答
【5】實現 ESP32 Bluetooth SPP -Serial Port Profile- 的連線
【6】ESP32 BLE SPP server 範例,並連接到手機上,傳送訊息

6. 补充资料-windows10配置全过程截图

有不少朋友咨询怎么配置,感觉windows上很困难,我将整个过程的图都截取出来,供大家参考。

固件版本:SnapAirUnit_Factory_v0.1.ce83307-clean

6.1 【添加设备】搜索蓝牙串口设备

搜索蓝牙串口设备

6.2 【连接】选中SnapAirUnit设备

选中设备

6.3 【更多蓝牙选项】确认COM端口

在这里插入图片描述

6.4 【传出COM口】iNav地面站配置

在这里插入图片描述

6.5 【Connect】连接iNav飞控

在这里插入图片描述

7. SnapAirUnit V1.0 for Test

SnapAirUnit Hardware V1.0 (experimental)

Github: SnapAirUnit, 更多功能增加中,如需要相关测试硬件可以联系我!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝牙无线自制串口模块连接穿越机配置工具 的相关文章

随机推荐

  • BetaFlight深入传感设计之四:GPS传感模块

    BetaFlight深入传感设计之四 xff1a GPS传感模块 1 HwPreInit HwInit阶段1 1 业务HwPreInit gpsInit1 2 业务HwInit gpsInitHardware 2 HwIo阶段3 HwDat
  • Royal TS 一款非常好用的SSH客户端,XShell的完美代替品

    Royal TS 一款非常好用的SSH客户端 XShell的完美代替品 使用界面 SSH客户端 RDP客户端 FTP客户端 Windows下载地址 xff1a https www royalapps com ts win download
  • BetaFlight深入传感设计之六:四元数计算方法

    BetaFlight深入传感设计之六 xff1a 四元数计算方法 1 四元数理论1 1 定义1 2 基本运算1 2 1 矢量加减1 2 2 标量乘法 1 3 矢量点叉乘1 3 1 矢量点乘1 3 2 矢量叉乘 1 4 除法求逆 2 程序四元
  • 【杭州】户外航模试飞地踩点

    杭州 户外航模试飞地踩点 1 拱墅区 飞地踩点1 1 城北公园1 2 善贤地铁站口 东侧 1 3 善贤地铁站口 东侧 43 城北公园 2 西湖区 飞地踩点2 1 梅林南路 隧道出口 2 2 十里琅珰2 3 双峰2 4 梅坞春早 3 钱塘区
  • BetaFlight深入传感设计之七:GPS&Baro高度数据融合

    BetaFlight深入传感设计之七 xff1a GPS amp Baro高度数据融合 1 现象2 分析2 1 程序逻辑2 2 GPS精度2 3 数值分析 3 总结 传感器数据融合最主要的目的是为了数据的精准 同时也可以通过多个传感数据源来
  • BetaFlight深入传感设计之八:坐标系

    BetaFlight深入传感设计之八 xff1a 坐标系 1 坐标系统应用1 1 Geographic Coordinate System LLH Longitude Latitude Height1 2 Navigation Coordi
  • 树莓派(Raspberry Pi)FTP服务搭建

    64 TOC 树莓派 Raspberry Pi FTP服务搭建 由于家里使用下载电影 迅雷 xff0c 存储电影 树莓派 43 移动硬盘 xff0c 简易NAS xff1b PC下载的电影可以通过家里的有线主干网络100MB带宽通过samb
  • 四轴飞控DIY Mark4 - 整理&参数优化

    四轴飞控DIY Mark4 整理 amp 参数优化 1 历程2 参数优化2 1 固件BF4 3 12 2 动态怠速值2 3 滤波参数2 4 电调PWM频率2 5 GPS高度配置2 6 返航速度和高度2 7 线性推力修正2 8 图传频道调整
  • BetaFlight深入传感设计之九:传感坐标系/机体坐标系/导航坐标系/经纬度坐标系

    BetaFlight深入传感设计之九 xff1a 传感坐标系 机体坐标系 导航坐标系 经纬度坐标系 1 问题症结2 入手分析2 1 传感坐标系2 2 机体坐标系2 3 导航坐标系2 4 经纬坐标系 3 CF BF iNav代码3 1 机体坐
  • BetaFlight深入传感设计之十:传感器物理特性方向对齐

    BetaFlight深入传感设计之十 xff1a 传感器物理特性方向对齐 1 对齐定义2 常见对齐方式3 自定义对齐方式4 总结5 参考资料6 补充 xff1a gyro 43 mag对齐方式 AHRS Attitude and Headi
  • ArduPilot飞控AOCODARC-H7DUAL固件编译

    ArduPilot飞控AOCODARC H743DUAL固件编译 1 编译目标 xff08 AOCODARC H743DUAL xff09 2 硬件支持包 xff08 APM AOCODARC H743DUAL xff09 3 编译步骤3
  • 四轴FPV手动训练进阶步骤

    四轴FPV手动训练进阶步骤 1 目的2 训练2 1 基本操作训练2 1 1 滞空训练2 1 2 基本动作2 1 3 位置保持 2 2 基本控制训练2 2 1 转弯 Turn 2 2 2 翻滚 Roll 2 2 3 翻转 Flips 2 3
  • 数据库binlog(二进制日志binary log)

    二进制日志中存储的内容称之为事件 xff0c 每一个数据库更新操作 Insert Update Delete xff0c 不包括Select 等都对应一个事件 mysql binlog基本原理 简书 jianshu com https ww
  • 四轴异常炸机分析讨论集锦

    四轴异常炸机分析讨论集锦 0 异常 amp 炸机 汇总目的1 AT9SPro 43 R12DSM 300米信号丢失炸机2 PID参数异常 起飞 Takeoff Runaway 炸机3 接收机信号干扰 炸机4 GPS救援 RC控制信号丢失炸机
  • Github工程中的Markdown语言应用

    Github工程中的Markdown语言应用 1 介绍2 工具2 1 下载链接2 2 编辑界面2 3 插件安装 3 基本操作3 1 标题编写3 2 正文编写3 3 代码块编写3 4 加粗倾斜3 5 有序列表3 6 无序列表3 7 行内代码编
  • iNavFlight之MSP DJI协议分析

    iNavFlight之MSP DJI协议分析 1 iNav串行口通信1 1 iNav 串口任务1 2 调用逻辑 2 iNav串行抽象2 1 框架代码2 2 MSP DJI 协议处理 3 DJI协议相关实现3 1 DJI串口初始化3 2 DJ
  • iNavFlight之MSP DJI协议天空端请求报文

    iNavFlight之MSP DJI协议天空端请求报文 1 报文格式 请求 2 报文标志 flag 3 报文命令 cmd 4 参考资料 MSP DJI协议是用于DJI天空端与飞控端之间的通信协议 xff0c 其工作模式符合C S经典设计 这
  • iNavFlight之MSP DJI协议飞控端请求应答

    iNavFlight之MSP DJI协议飞控端请求应答 1 报文格式2 报文标志 flag 3 报文命令 cmd 4 请求应答 amp 反馈报文4 1 DJI MSP API VERSION4 2 DJI MSP FC VARIANT4 3
  • 大疆Tello UDP控制协议接口

    大疆Tello UDP控制协议接口 1 设计架构2 UDP报文格式2 1 控制报文2 2 查询报文2 3 状态报文 3 命令集3 1 控制报文 控制命令3 2 控制报文 设置命令3 3 查询报文 读取命令 4 状态报文 这里介绍了大疆Tel
  • 蓝牙无线自制串口模块连接穿越机配置工具

    蓝牙无线自制串口模块连接穿越机配置工具 1 目的2 验证环境3 BLE SPP验证4 BT SPP验证5 参考资料6 补充资料 windows10配置全过程截图6 1 添加设备 搜索蓝牙串口设备6 2 连接 选中SnapAirUnit设备6