ExpressLRS开源代码之功能性能测试

ExpressLRS开源代码之功能&性能测试

  • 1. 源由
  • 2. 规格
    • 2.1 功能
    • 2.2 性能
  • 3. 概念
    • 3.1 产品组成
    • 3.2 性能分解
    • 3.3 专业归口
  • 4. 测试
    • 4.1 实验室测试
    • 4.2 简易实验方法
    • 4.3 外场测试
    • 4.4 终极验证
  • 5. 调优
    • 5.1 RF调优
    • 5.2 模块调优
    • 5.3 产品调优
  • 6. 总结

1. 源由

最近,在ELRS接收机上面发现较多实操层面的问题,总结整理下,以备不时之需。

源头在于:怎么样才能判断ELRS接收机是合格产品或者说性能是正常的?

2. 规格

通常ELRS接收机模块会有类似以下的描述:

  • Frequency: 915MHz
  • Chip: SX1276 + ESP8285
  • Power: 100mW
  • Input Voltage: 3.6 ~ 5.5V
  • Antenna Connector: IPEX1
  • Antenna: T type
  • Weight: 0.4 g
  • Size: 11 x 18 mm

2.1 功能

  1. 3.6 ~ 5.5V输入,立即慢闪(500ms慢闪,等待发射机连接),正常启动
  2. 连续三次开关接收机,立即双闪(双闪+停顿)
  3. 绑定后,立即常亮
  4. 遥控器与飞控之间正常通道操作(Pitch/Roll/Yaw/Throttle/Arm/disArm)

2.2 性能

遥控距离

  • 理论上,50mW遥控距离36km,参考:ExpressLRS开源之RC链路性能测试
  • 实际上,受到干扰影响,距离会大打折扣。因此,从设计角度要考虑哪些是可以优化的。

3. 概念

对于功能的理解非常简单易懂,但是对于性能来说,涉及知识面广度,需要有一些基本的概念。

本人也不是RF专业出身的,虽然有过不少机会接触这些RF系统,但毕竟不专业,多亏有大学的基础教育,好歹也有些概念。

话说干咱们这行的人,不管什么东西,不怕做不到,就怕想不到。当然这个不是大跃进的年代,我们还是非常务实的。

3.1 产品组成

ELRS接收机主要组成:

  1. 电源部分 //硬件
  2. 射频部分 //硬件
  3. MCU固件 //软件
    – 链路协议
    – 链路控制

3.2 性能分解

ELRS接收机性能可以分为:

  1. 射频模块RF性能 //RF(原厂)芯片及其匹配电路
  2. ELRS工作频点性能 //实际ELRS各个工作频点性能
  3. 产品电路带来的底噪 //接收机电子线路内部或受到外部干扰所带来的噪声
  4. 天线带来的底噪 //天线耦合进来的外部干扰信号
  5. ISM工作频段环境信号干扰 //与工作频段冲突的信号

3.3 专业归口

  1. 射频模块 – 硬件
  2. ELRS工作频点 – 软件
  3. 产品电路 – 硬件
  4. 天线 – 硬件
  5. 环境信号 – 客户(使用场景)

4. 测试

最终的测试一定是在客户场景中使用,但是当出现问题或者性能不如预期的时候,接下来就是一个高度分散的怀疑:

  1. 测试场景存在干扰ISM工作频段信号干扰?
  2. 天线是否匹配?
  3. 产品自身是否没有进行屏蔽优化?
  4. ELRS软件是否要升级到特殊版本?
  5. 硬件RF匹配是否合理?

所以,在实际不理想的情况下,最终问题还是要一步一步的分析得出1-4各个点位是否存在问题。

4.1 实验室测试

标准发射源 + 模拟外部干扰源 + 模拟信号干扰源 + 衰减器 + 分析软件,在熟知应用场景的情况下,能够解决80%的问题。

事实情况是,很多公司也许压根没有这样的实验室环境。现实就是如此残酷,但是还是需要解决问题。

4.2 简易实验方法

标准发射源 + 衰减器 + 分析软件,分析出“ELRS工作频点 达标 满足芯片规格”,判定以下问题:

  1. 射频模块RF性能 //RF(原厂)芯片及其匹配电路
  2. ELRS工作频点性能 //实际ELRS各个工作频点性能

10mW发射功率,140db衰减后的ELRS性能
在这里插入图片描述

4.3 外场测试

通过外场环境的选择,来分析、实验、定位问题,优化以下问题:

  1. 产品电路带来的底噪 //接收机电子线路内部或受到外部干扰所带来的噪声
  2. 天线带来的底噪 //天线耦合进来的外部干扰信号

10mW, 800米,最佳T型天线摆放,1.5米高度 ELRS性能

在这里插入图片描述

4.4 终极验证

在前面都判定正常的情况下,尝试不同环境信号对性能的影响,从而给出实际场景下的性能评估。

  1. 环境信号 – 客户(使用场景)

5. 调优

综合上面的分析,我们可以比较简单的进行如下理解:

5.1 RF调优

  1. 射频模块RF性能 //RF(原厂)芯片及其匹配电路

5.2 模块调优

  1. 射频模块RF性能 //RF(原厂)芯片及其匹配电路
  2. ELRS工作频点性能 //实际ELRS各个工作频点性能
  3. 产品电路带来的底噪 //接收机电子线路内部或受到外部干扰所带来的噪声

5.3 产品调优

注:通常此类接收机产品都是带着天线售卖。

  1. 射频模块RF性能 //RF(原厂)芯片及其匹配电路
  2. ELRS工作频点性能 //实际ELRS各个工作频点性能
  3. 产品电路带来的底噪 //接收机电子线路内部或受到外部干扰所带来的噪声
  4. 天线带来的底噪 //天线耦合进来的外部干扰信号

6. 总结

通过组成、专业、性能、测试、调优等方面的分解和阐述,希望能更加直观的理解物联网射频方面的一些性能问题和破解的步骤。

当然,本人也是就工作经验的整理,可能有不少错误之处,也请高人们能多多指点!谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/529095.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS 小技巧】隐藏tif影像的黑边或白边

tif影像是规划中常用的参考数据。 但是当我们把tif拖入到ArcGIS中查看时,经常会出现黑色或白色的多余区域遮挡显示。 下面介绍我碰到的两种情况及解决办法。 1、三波段tif 三波段指的是R、G、B三个波段,可在tif影像的属性中查看是否有RGB三波段。 这…

无忧网络验证系统 getInfo SQL注入漏洞复现

0x01 产品简介 无忧网络验证是一套安全稳定高效的网络验证系统,基于统一核心的通用互联网+信息化服务解决方案,是为软件作者设计的一套完整免费的网络验证体系。可以为开发的软件增加收费授权的功能,让作者开发的软件可以进行销售、充值、登陆等操作,并且提供防破解验证功能…

JS 轮播图点击左右切换

点击左右按钮实现轮播图切换图片 style: *{margin: 0;padding: 0;margin: auto;}#img1{width: 300px;height: 300px;position: relative;}#butto1{width: 50px;height: 100px;font-size: 50px;border: none;background-color: hsla(0, 0%, 0%, 0.2);position: abs…

Flyway 数据库版本管理

一、Flyway简介 Flyway是一款开源的数据库迁移工具,可以管理和版本化数据库架构。通过Flyway,可以跟踪数据库的变化,并将这些变化作为版本控制的一部分。Flyway支持SQL和NoSQL数据库,并且可以与现有的开发流程无缝集成&#xff0…

【C++】用红黑树封装map和set

我们之前学的map和set在stl源码中都是用红黑树封装实现的,当然,我们也可以模拟来实现一下。在实现之前,我们也可以看一下stl源码是如何实现的。我们上篇博客写的红黑树里面只是一个pair对象,这对于set来说显然是不合适的&#xff…

web——php反序列化,pop链构造

前置知识 序列化 会变成这样 序列化解释 反序列化 public,private,protetced 当它是private时 当他是protetcted 当我在类之后在创建一个类 反序列化只可以改变变量,然后不可以自己调用里面的函数,只可以用它给出的函数调用 安全问题 ——construct是…

Vue文档

Vue是什么?为什么要学习他 Vue是什么? Vue是前端优秀框架, 是一套用于构建用户界面的渐进式框架 为什么要学习Vue Vue是目前前端最火的框架之一Vue是目前企业技术栈中要求的知识点Vue可以提升开发体验Vue学习难度较低… Vue开发前的准备 安…

2024智能计算、大数据应用与信息科学国际会议(ICBDAIS2024)

2024智能计算、大数据应用与信息科学国际会议(ICBDAIS2024) 会议简介 智能计算、大数据应用与信息科学之间存在相互依存、相互促进的关系。智能计算和大数据应用的发展离不开信息科学的支持和推动,而信息科学的发展又需要智能计算和大数据应用的不断拓展和应用。智…

海山数据库(He3DB)技术干货:StarRocks Compaction机制解析及性能调优

以StarRocks 新发布的3.2.1版本为基准,剖析了Compaction任务管理器设计架构,分析了基于Size-Tiered挑选rowset进行Compaction的策略,介绍了Compaction的调度执行流程。最后,针对两种常见问题场景,给出Compaction性能调…

LeetCode-139. 单词拆分【字典树 记忆化搜索 数组 哈希表 字符串 动态规划】

LeetCode-139. 单词拆分【字典树 记忆化搜索 数组 哈希表 字符串 动态规划】 题目描述:解题思路一:Python动态规划五部曲:定推初遍举【先遍历背包 后遍历物品】必须是排列解题思路二:Python动态规划版本二解题思路三:回…

tensorflow.js 使用 opencv.js 将人脸特征点网格绘制与姿态估计线绘制结合起来,以获得更高的帧数

系列文章目录 如何在前端项目中使用opencv.js | opencv.js入门如何使用tensorflow.js实现面部特征点检测tensorflow.js 如何从 public 路径加载人脸特征点检测模型tensorflow.js 如何使用opencv.js通过面部特征点估算脸部姿态并绘制示意图 文章目录 系列文章目录前言一、实现步…

实验:基于Red Hat Enterprise Linux系统建立逻辑卷并进行划分

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 1. 为虚拟机添加三块大小为5GB的磁盘nvme0n2 nvme0n3 nvme0n4 2. 将三块硬盘转换为物理卷,并将nvme0n2 nvme0n3两pv建立成名为"自己名字_vg“的卷组,并将nvme0n4扩展进该卷组。 LVM管…

基于单片机四路继电器温湿度控制

**单片机设计介绍, 基于单片机四路继电器温湿度控制 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机四路继电器温湿度控制的设计是一种能够实现精确环境调控的智能化系统。它利用单片机作为核心控制器&…

渗透测试面试题汇总(全)

思路流程 信息收集漏洞挖掘漏洞利用&权限提升清除测试数据&输出报告复测 问题深信服一面:SQL注入防护为什么参数化查询可以防止sql注入SQL头注入点盲注是什么?怎么盲注?宽字节注入产生原理以及根本原因 产生原理在哪里编码根本原因解决办法sql里…

力扣刷题Days33-274. H 指数(js)

目录 1,题目 2,代码 2.1排序 2.2计数排序 3,学习与总结 3.1排序实现的学习总结 3.2计数排序的学习总结 1,题目 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返…

Java 线程池 参数

1、为什么要使用线程池 线程池能有效管控线程,统一分配任务,优化资源使用。 2、线程池的参数 创建线程池,在构造一个新的线程池时,必须满足下面的条件: corePoolSize(线程池基本大小)必须大于…

1.Spring的核心思想 —— IOC和DI

1. Spring是什么? 简单的说,Spring其实指的是Spring Framework(Spring框架),是一个开源框架。 如果要用一句话概括:它是包含众多工具方法的IOC(Inverse of Control控制反转)容器。…

【THM】Net Sec Challenge(网络安全挑战)-初级渗透测试

介绍 使用此挑战来测试您对网络安全模块中获得的技能的掌握程度。此挑战中的所有问题都可以仅使用nmap、telnet和来解决hydra。 挑战问题 您可以使用Nmap、 Telnet 和Hydra回答以下问题。 2.1小于10000的最大开放端口号是多少? 8080 nmap -p- -T4 10.10.234.218 2.2普通…

Java入门-java的方法

java方法 java的方法是用来完成某种功能的代码块。使用方法封装代码块,可以提高代码的可复用性,模块化,使用者无需知道代码的具体实现也能通过方法调用使用其提供的功能,简化了应用过程。 方法结构 一般一个方法的构成有如图几部…

【C++】vector问题解决(非法的间接寻址,迭代器失效 , memcpy拷贝问题)

送给大家一句话: 世界在旋转,我们跌跌撞撞前进,这就够了 —— 阿贝尔 加缪 vector问题解决 1 前言2 迭代器区间拷贝3 迭代器失效问题4 memcpy拷贝问题 1 前言 我们之前实现了手搓vector,但是当时依然有些问题没有解决&#xff…