Betaflight BN880 GPS 简单测试

article/2025/10/6 19:11:27

Betaflight BN880 GPS 简单测试

  • 1. 源由
  • 2. 窗台对比测试
  • 3. 开阔区域测试
    • 3.1 GPS安装位置
      • 3.1.1 BN880 GPS 机尾打印支架 安装位置
      • 3.1.2 BN880 GPS 机头固定 安装位置
      • 3.1.3 M8N GPS 机尾打印支架 安装位置
    • 3.2 M8N模块历史记录
    • 3.3 BN880模块第一次(机尾安装)
      • 3.3.1 第一电
      • 3.3.2 第二电
      • 3.3.3 第三电
      • 3.3.4 第四电
    • 3.4 BN880模块第二次(机尾安装)
      • 3.4.1 第一电
      • 3.4.2 第二电
    • 3.5 BN880模块第三次(机头固定)
      • 3.5.1 第一电
      • 3.5.2 第二电
      • 3.5.3 第三电
      • 3.5.4 第四电
    • 3.6 M8N模块(机尾安装)
      • 3.6.1 第一电
      • 3.6.2 第二电
  • 4. 分析
    • 4.1 第一次
    • 4.2 第二次
    • 4.3 第三次
    • 4.4 第四次
    • 4.5 厂家技术支持测试
  • 5. 总结
  • 6. 参考资料
  • 7. 附录-技术沟通
  • 8. 附录-ublox射频抗干扰设计
  • 9. 附录-ublox模块优化
  • 10. 附录-串口板供电
  • 11. 附录-备注

1. 源由

在ArduPilot飞控之DIY-F450计划下,原地arm/disarm验证发现GPS搜星,锁定位置速度超级慢(>45分钟,甚至无法锁定)。

2. 窗台对比测试

在这里插入图片描述

  1. 同一时刻
  2. 同一位置
  3. 30分钟测试
  • M8N 6分钟,锁定5颗星(BF OSD显示),持续锁定;
  • BN880 8分钟3D锁定,但是9分钟又掉了定位,后续一直没有定位(u-center显示);

3. 开阔区域测试

3.1 GPS安装位置

3.1.1 BN880 GPS 机尾打印支架 安装位置

在这里插入图片描述

3.1.2 BN880 GPS 机头固定 安装位置

在这里插入图片描述

3.1.3 M8N GPS 机尾打印支架 安装位置

在这里插入图片描述

3.2 M8N模块历史记录

通常情况下,第一电(冷启动),大约2~3分钟就能锁定。天气不好的时候6 - 7颗星,天气好的时候8 ~ 9 颗以上。

注:M8N之前一直是机头固定方式

BetaFlight Mark4 + 城北公园230228

3.3 BN880模块第一次(机尾安装)

3.3.1 第一电

  • 飞完(历时10分钟),无法锁定位置,Betaflight显示0卫星锁定。

Betaflight BN880 GPS 机尾打印支架 第一电(冷启动)

3.3.2 第二电

  • 飞行2分钟,搜星4颗可用,尚无法用于Betaflight GPS位置。
  • 4分45秒,搜星6颗,可用于定位(从冷启动开始算,总耗时15分钟)。

Betaflight BN880 GPS 机尾打印支架 第二电

3.3.3 第三电

  • 全程14分钟飞完,6颗星,无任何变化。

Betaflight BN880 GPS 机尾打印支架 第三电

3.3.4 第四电

  • 最多的时候8颗星,树林稍有遮挡掉到7颗或者6颗左右。

Betaflight BN880 GPS 机尾打印支架 第四电

3.4 BN880模块第二次(机尾安装)

3.4.1 第一电

  • 飞完(历时13分钟),无法锁定位置,Betaflight显示0卫星锁定。

Betaflight BN880 GPS 机尾打印支架 第二次 第一电

3.4.2 第二电

  • 飞行3分36秒,搜星4颗可用,尚无法用于Betaflight GPS位置。
  • 10分20秒,搜星5颗,尚无法用于Betaflight GPS位置。

Betaflight BN880 GPS 机尾打印支架 第二次 第二电

3.5 BN880模块第三次(机头固定)

3.5.1 第一电

  • 冷启动
  • 37秒左右,5颗星;
  • 1分28秒,7颗星;
  • 1分48秒,9颗星;
  • 2分钟;10颗星;
  • 2分48秒,11颗星;
  • 2分56秒,12颗星;
  • 3分,13颗星;
  • 3分19秒,14颗星;
  • 6分33秒,15颗星;

Betaflight BN880 GPS 机头扎带固定 第一次 第一电

3.5.2 第二电

  • 热启动,上电9颗星;
  • 10秒,12颗星;
  • 43秒,13颗星;
  • 47秒,15颗星;
  • 1分,16颗星;
  • 1分29秒,最多达到19颗星;

Betaflight BN880 GPS 机头扎带固定 第一次 第二电

3.5.3 第三电

  • 热启动,上电9颗星;
  • 10秒,10颗星;
  • 20秒,12颗星;
  • 25秒,14颗星;
  • 30秒,16颗星;
  • 最多17颗星,树林穿越减到13颗左右;

Betaflight BN880 GPS 机头扎带固定 第一次 第三电

3.5.4 第四电

  • 热启动,上电没看到星;
  • arm后,发现没有卫星(rescure off)
  • arm后22秒,12颗星
  • arm后30秒,稳定在13~15颗星
  • 开阔空中,17颗星稳定,一度达到18颗

Betaflight BN880 GPS 机头扎带固定 第一次 第四电

3.6 M8N模块(机尾安装)

3.6.1 第一电

  • 始终无法定位

Betaflight M8N GPS 机尾打印支架 第一电(冷启动)

3.6.2 第二电

  • 始终无法定位

Betaflight M8N GPS 机尾打印支架 第二电

4. 分析

4.1 第一次

基于3.2/3.3/3.4测试结果,以及常规配套GPS安装打印件(一般总是合理的安装方式),认为:

  1. BN880模块冷启动到定位耗时长;
  2. 总可用星数量不理想,常规模块通常在12~18颗左右);
  3. 测试的BN880不如M8N的定位能力强;

注1:上述BN880配置,已经厂家技术支持确认过配置参数。
注2:上述情况将反馈厂家技术支持,会再次确认是否质量问题。

4.2 第二次

基于第三次技术沟通,结合笔者Mark4飞机的整体安装方式:FC + ESC飞塔 + 图传(熊猫VT5804ML1)的方式,怀疑图传可能对GPS造成一定的影响。

因此,继续3.5/3.6章节实验,进一步验证怀疑。最终测试结果表明该图传对机尾GPS安装影响显著。
在这里插入图片描述

4.3 第三次

卫星系统频点分步情况

在这里插入图片描述
目前比较先进的M9/M10 ublox GPS方案设计

在这里插入图片描述
鉴于手头图传,飞控等可用于测试的板子也没有,这里就不在进一步展开跟踪测试。但是从GPS设计的角度看,放在当前这架四轴后端,受到较大的干扰,但是在机头缺没有这个干扰。

因此,主要判断并非来自公共地耦合过来的信号,更为可能得是通过天线耦合进来,也许使用目前抗干扰能力更前的芯片设计能够解决问题。

注:如果后续有条件,可以采用网络分析仪进行进一步的测试,了解实际GNSS天线端的频谱情况。

4.4 第四次

持续分析中:除当前信号强度稍差一些;5Hz波特率建议采用115200bps。

  • BN880 信号强度
    在这里插入图片描述
  • 对比参考

在这里插入图片描述

4.5 厂家技术支持测试

CP2102串口板测试BN880
在这里插入图片描述
PL2303串口板测试BN880
在这里插入图片描述
PL2303串口板测试M8N

在这里插入图片描述

5. 总结

整个验证过程经历了前前后后一周多时间。最终来看,BN880(模块序列号:2022111407589)没有任何问题。

主要问题如下:

  1. 串口板问题(具体原因不详:厂家使用PL2303)
  2. 机头、机尾干扰(机尾干扰比机头严重)

如需更加了解GPS模块性能,可能后续可以跟进以下实验:

  1. 更换其他串口板,验证串口板问题
  2. 测试不同位置电磁干扰对GPS模块信号影响
  3. 基于【9. 附录-ublox模块优化】进行参数调优

后续优化测试,详见:四轴飞控DIY Mark4 - 优化后续二。

6. 参考资料

【1】ArduPilot飞控之DIY-F450计划
【2】BN880 GPS u-center_v22.07工具配置方法

7. 附录-技术沟通

  1. 第一次技术沟通:窗台虽然开阔,但GPS信号定位未必就一定理想,建议空旷区域测试。
  2. 第二次技术沟通:BN880不应该明显比M8N差,两者同属8代芯片,应该性能接近。
  3. 第三次技术沟通:可能存在干扰,建议单独GPS模块测试亦可以返厂检测。
  4. 第四次技术沟通:测试现象表明信号强度超过40的百分比并不太合理

8. 附录-ublox射频抗干扰设计

如何降低射频干扰对GNSS定位模块的影响(一)降低射频干扰对卫星定位接收机影响的策略

如何降低射频干扰对GNSS定位模块的影响(二)预防干扰与射频前端选择

如何降低射频干扰对GNSS定位模块的影响 (三)ublox产品应用实例

9. 附录-ublox模块优化

在这里插入图片描述

GPS Module Satellite Fix (FAST!)

10. 附录-串口板供电

之前测试比对下来:CP2102串口板感觉不如PL2303串口板容易定位

后仔细查看了CP2102串口板,发现用了3V3供电,经调整为5V供电,信号明显有好转现象。因此,怀疑供电不足(尤其是GPS模块在搜星过程,峰值功率变化还是很大的)。

注:经确认,PL2303串口板使用的是5V供电。

11. 附录-备注

关于bilibili上的测试视频,实际上一共有12个,上面贴的时候是一一对应,但是CSDN确认目前CSDN网页上播放的都是默认第一个。

经CSDN确认:这是一个BUG,已经排程,截止2023年4月21日沟通时,尚未解决。

因此,对于看视频的同学来说,可能会有些困扰。

请直接访问bilibili链接:https://www.bilibili.com/video/BV1ws4y1K7NV/ ,并根据视频标题进行检查,谢谢!

在这里插入图片描述


http://chatgpt.dhexx.cn/article/JJ1LByZ9.shtml

相关文章

BN(Batch Normalization):批量归一化

现在的神经网络通常都特别深,在输出层像输入层传播导数的过程中,梯度很容易被激活函数或是权重以指数级的规模缩小或放大,从而产生“梯度消失”或“梯度爆炸”的现象,造成训练速度下降和效果不理想。 随着训练的进行,…

通俗理解BN(Batch Normalization)

1. 深度学习流程简介 1)一次性设置(One time setup) - 激活函数(Activation functions) ​ - 数据预处理(Data Preprocessing) ​ - 权重初始化(Weight Initialization&#xff0…

为什么BN?batch normalization的原理及特点

1 什么是BN? 数据归一化方法,往往用在深度神经网络中激活层之前。其作用可以加快模型训练时的收敛速度,使得模型训练过程更加稳定,避免梯度爆炸或者梯度消失。并且起到一定的正则化作用,几乎代替了Dropout 2 原理 B…

【深度学习基础知识 - 07】BN的原理和作用

Batch Normalization也是深度学习中的一个高频词汇,这篇文章将会对其做一个简单介绍。 目录 1. BN的原理2. BN的作用3. BN层的可学习参数4. infer时BN的处理5. BN的具体计算步骤以及公式6. BN和L2参数权重正则化的区别 1. BN的原理 BN就是在激活函数接收输入之前对…

什么是BN(Batch Normalization)

什么是BN(Batch Normalization)? 在之前看的深度学习的期刊里,讲到了BN,故对BN做一个详细的了解。在网上查阅了许多资料,终于有一丝明白。 什么是BN? 2015年的论文《Batch Normalization: Accelerating Deep Networ…

深度学习—BN的理解(一)

0、问题 机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢?BatchNorm就是在深度神经…

Batch Normalization详解以及pytorch实验

Batch Normalization是google团队在2015年论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出的。通过该方法能够加速网络的收敛并提升准确率。在网上虽然已经有很多相关文章,但基本都是摆上论文中的公式泛…

Java参数校验validation和validator区别

Java参数校验validation和validator区别 1. 参数校验概述2. validation与validator区别3. validation注解说明4. validator注解说明5. 日期格式化说明6. 实现验证6.1 引入依赖6.2 代码实现6.3 实现验证 1. 参数校验概述 常见的业务开发中无可避免的会进行请求参数校验&#xf…

hibernate-validator

validator 简介各种注解好处 validator.validate方法业务逻辑代码中检查传入的参数时为传入的参数类型中各个属性添加注解NotNull、NotBlank、NotEmpty间的区别 简介 validator,翻译过来,就是“验证器”的意思。它是一种注解式参数校验,包名…

validator自定义校验注解及使用

validator自定义校验注解及使用 官方文档&#xff1a;https://docs.jboss.org/hibernate/validator/8.0/reference/en-US/html_single/#validator-customconstraints 用到依赖: <!--validator的依赖如果项目使用的springBoot的依赖可以不用再引入 hibernate-validator 因为…

spring之Validator

初步认识 spring数据验证核心类&#xff1a;①&#xff1a;Validator ②&#xff1a;Errors,两者之间的纽带是Validator中定义的validate方法。 public interface Validator {// 限定Validator的职责&#xff0c;不可能所有的校验全部交给一个Validator来做boolean supports(…

Hibernate-Validator的学习

Hibernate-Validator的学习 此教程基于黑马程序员Java品达通用权限项目&#xff0c;哔哩哔哩链接&#xff1a;https://www.bilibili.com/video/BV1tw411f79E?p49 1.hibernate-validator介绍 早期的网站&#xff0c;用户输入一个邮箱地址&#xff0c;需要将邮箱地址发送到服…

Hibernate Validator源码解析

一、引言 问题&#xff1a;在代码编写的过程中&#xff0c;数据值的校验在JavaEE三层架构&#xff08;展示层、业务层、数据访问层&#xff09;均有涉及&#xff0c;各层的校验需求又是不尽相同的&#xff0c;因此往往会伴随着代码冗余&#xff0c;重复的校验逻辑出现在三层代…

Hibernate Validator简介

亲爱的小伙伴们我来填坑啦&#xff0c;java中优雅的参数校验方法中的校验的实现原理。 1.前言 验证数据是发生在所有应用程序层&#xff08;从表示层到持久层&#xff09;的常见任务。通常在每一层中实现相同的验证逻辑&#xff0c;这既耗时又容易出错。为了避免重复这些验证&…

bootstrapValidator验证最大值最小值范围限制

录入该值的最大值与最小值 bootstrapValidator进行效验&#xff0c;使最小值不可大于最大值&#xff0c;最大值不可小于最小值 刚开始的验证还是没事的&#xff0c;符合正常的验证规则 再把不符合规则的最大值改变&#xff0c;现在最小值已经比最大值小了&#xff0c;但是最大…

class-validator中文教程

官方文档&#xff1a; https://www.npmjs.com/package/class-validator class-validator可以说是一个简化验证的依赖库 &#xff08;采用注释的方式进行校验&#xff09; 但是缺少中文文档和过程&#xff0c;以自己的理解和对官网文档的阅读进行整理输出。 它的好兄弟class-t…

Hibernate Validator 总结大全

背景 代码开发过程中&#xff0c;参数的有效性校验是一项很繁琐的工作&#xff0c; 如果参数简单&#xff0c;就那么几个参数&#xff0c;直接通过ifelse可以搞定&#xff0c;如果参数太多&#xff0c;比如一个大对象有100多个字段作为入参&#xff0c;你如何校验呢&#xff1…

java使用validator进行校验

不管是html页面表单提交的对象数据还是和第三方公司进行接口对接&#xff0c;都需要对接收到的数据进行校验&#xff08;非空、长度、格式等等&#xff09;。如果使用if一个个进行校验&#xff08;字段非常多&#xff09;&#xff0c;这是让人崩溃的过程。幸好jdk或hibernate都…

java validator_Spring中校验器(Validator)的深入讲解

前言 Spring框架的 validator 组件,是个辅助组件,在进行数据的完整性和有效性非常有用,通过定义一个某个验证器,即可在其它需要的地方,使用即可,非常通用。 应用在执行业务逻辑之前,必须通过校验保证接受到的输入数据是合法正确的,但很多时候同样的校验出现了多次,在不…

springboot使用hibernate validator校验

目录 一、参数校验二、hibernate validator校验demo三、hibernate的校验模式 1、普通模式&#xff08;默认是这个模式&#xff09;2、快速失败返回模式四、hibernate的两种校验 1、请求参数校验2、GET参数校验(RequestParam参数校验)3、model校验4、对象级联校验5、分组校验五…