ExpressLRS开源之RC链路性能测试
ExpressLRS开源之RC链路性能测试
- 1. 源由
- 2. 分析
- 3. 测试方案
- 4. 测试设计
- 4.1 校准测试
- 4.2 实验室测试
- 4.3 拉距测试
- 4.4 遮挡测试
- 5. 总结
- 6. 参考资料
1. 源由
基于ExpressLRS开源基本调试验证方法,对RC链路性能进行简单的性能测试。
修改设计总能够满足合理的需求,往往我们需要再不变更设计的基础上,进行相关验证。此时也是考研设计鲁棒性的一个维度。
开源代码有的时候往往比所谓专业的企业团队给出更好的设计就在于此。这里将借助开源代码的基本调试验证方法进行简单的性能测试。
注:当然更为专业的测试可能就需要涉及到代码的改动。不过作为开源代码,已经非常不错,值得国内企业的研发团队学习。
2. 分析
鉴于期望对RC链路性能测试,首先需要明确一些基础的概念和定义。
透过ExpressLRS开源之接收机固件编译烧录步骤中的基本调试验证方法
ID,Antenna,RSSI,LQ,SNR,PWR,FHSS,TimingOffset
IRQ_CNT,RSSI_AVE,SNR_AVE,SNV_MAX,TELEM_CNT,FAIL_CNT
可以获取以上一手测试数据。通过数据,我们对于RC链路性能做出如下简单解释:
- 固定发射功率前提下
- 接收信号功率的大小作为RC链路性能表征
- 接收型号信噪比作为RC链路性能表征
- 接收LQ指标作为RC链路性能表征
- 接收FAIL_CNT作为RC链路性能表征
为此,后续对上述表征量进行测量,以便验证RC链路性能。
3. 测试方案
基于测试分析,不难得出如下关系数据进行相关性能解释:
- 发射功率是否恒定
PWR v.s. dBm [RF module]
- 接收信号强度校准
RSSI/RSSI_AVE v.s. dBm [test fixture]
- 初步RF性能指标分析
LQ v.s. dBm [RF module]
SNR v.s. dBm [RF module]
- 高阶稳定性指标分析
SNR_AVE/SNR_MAX v.s. dBm [RF module]
FAIL_CNT v.s. dBm [RF module]
4. 测试设计
为了得到上述方案的数据图表,以及实际使用环境对性能优劣的对比,需要考虑以下几个场景。
测试设备如下:
- 飞控
- 眼镜/图传
- RC遥控器
- Tx发射机
- 动态信号衰减器(常规90dBm衰减器)
- 固定信号衰减器
- 频谱仪(信号功率计)
- USB串口板
- 测试电脑
- 配套线缆(飞控USB线/信号转接线等)
- ELRS接收机发射功率最小值为50mW,相当于10xlg(50mW/1mW) = 17dBm。
- SX1280接收灵敏度-132dBm;SX1276接收灵敏度-148dBm。
- 假设:一个接口3dB损耗,IPX1到PA电路算3dB损耗。
发射到接收信号范围:17dBm - (- 148dBm) = 165dBm
衰减器可配置范围:(90dB + 3dB) + (30dB + 3dB) x 2 + 10dB + 3dB + 3dB = 175dB
注:以上是大概的估算,实际根据实验测试情况,动态调整衰减线路上的衰减器配置。
4.1 校准测试
目的:
- 接收信号强度校准
RSSI/RSSI_AVE v.s. dBm [test fixture]
- 发射功率是否恒定
PWR v.s. dBm [RF module]
注意:
- 上述数据图表需要通过终端分别接信号功率计和Rx接收机来测试获取数据。
- 为保证数据可比性,请务必测试时,馈线,接头等信号链路上的测试设备顺序一致。
- 记录并标记本次测试信号链路信号衰减器,馈线,接头的顺序,以便后续对比测试。
4.2 实验室测试
目的:
- 初步RF性能指标分析
LQ v.s. dBm [RF module]
SNR v.s. dBm [RF module]
- 高阶稳定性指标分析
SNR_AVE/SNR_MAX v.s. dBm [RF module]
FAIL_CNT v.s. dBm [RF module]
注意:保持与校准时一致的信号衰减链路顺序,以及链路上的硬件编号。
4.3 拉距测试
鉴于上述测试是在链路无干扰,隔离情况下进行的测试,理论上应该性能会更好。而实际情况往往比较复杂,受到发射/接收天线性能,各种外界电磁波干扰,大功率设备启动,大面积遮挡屏蔽,WiFi信号,ISM设备的影响等等。
可以根据实际情况进行可视拉距测试(常用标准T型天线):
- 使用一个多旋翼(具备稳定的PosHold模式) + ELRS接收机 + 串口日志记录器
- 进行50mW/17dBm拉距测试
- 在其他所有条件不变的前提下,更高的发射功率肯定是越远。鉴于实验条件,不一定能做此类长距离测试。
目的:
- 拉距性能指标分析
dBm v.s. meters
LQ v.s. meters
SNR v.s. meters
SNR_AVE/SNR_MAX v.s. meters
FAIL_CNT v.s. meters
- 初步RF性能指标分析
LQ v.s. dBm [RF module]
SNR v.s. dBm [RF module]
- 高阶稳定性指标分析
SNR_AVE/SNR_MAX v.s. dBm [RF module]
FAIL_CNT v.s. dBm [RF module]
注:理论Estimating Wireless Range估算,LoRaWAN-Range-calculator。
4.4 遮挡测试
实际穿越机经常在障碍物之间穿行,而遮挡对于高频信号的衰减是非常显著的。因此,可以采用类似拉距测试的方法进行测试。
目的:
- 拉距性能指标分析
dBm v.s. meters(postion)
LQ v.s. meters(postion)
SNR v.s. meters(postion)
SNR_AVE/SNR_MAX v.s. meters(postion)
FAIL_CNT v.s. meters(postion)
- 初步RF性能指标分析
LQ v.s. dBm [RF module]
SNR v.s. dBm [RF module]
- 高阶稳定性指标分析
SNR_AVE/SNR_MAX v.s. dBm [RF module]
FAIL_CNT v.s. dBm [RF module]
注意:该测试需要保留飞行轨迹,以便进行距离的位置标记。
5. 总结
基于上述测试场景,日志将会提供大量的RC链路相关的RF性能数据。
当上述数据进行横向对比时,可以分析出硬件模块设计方面的优劣:
比如:
- RF性能
- 抗干扰性能
- 天线性能
- 天线部署位置合理性
- 等等
通常来说:
- 天线增益提高6dBi,距离将增加一倍
- 发射功率增加4倍,距离也将增加一倍
注:目前是一个初步的测试计划或者方案,后续如果能够拿到更多的数据,我们将结合数据给大家展示下相关内容,以便更加直观的了解。
6. 参考资料
【1】ExpressLRS开源之接收机固件编译烧录步骤
【2】Estimating Wireless Range
【3】LoRaWAN-Range-calculator
相关文章:

ExpressLRS开源之RC链路性能测试
ExpressLRS开源之RC链路性能测试 1. 源由2. 分析3. 测试方案4. 测试设计4.1 校准测试4.2 实验室测试4.3 拉距测试4.4 遮挡测试 5. 总结6. 参考资料 1. 源由 基于ExpressLRS开源基本调试验证方法,对RC链路性能进行简单的性能测试。 修改设计总能够满足合理的需求&a…...
el-form表单el-form-item prop一次验证两个值
1.表单添加两个框,prop写上 <el-form :model"ruleForm" :rules"rules" ref"ruleForm" label-width"100px" > <el-form-item type"type" label"时间" prop"dateSectOne"><di…...
HTTP 代理原理及 Python 简单实现
HTTP 代理是一种网络代理服务器(Proxy Server),它能够作为客户端与 HTTP 服务器之间的中介,它的工作原理是: 当客户端向 HTTP 代理发送 HTTP 请求时,HTTP 代理会收到请求。 HTTP 代理会将请求转发给目标 HTTP 服务器。 目标 HTTP 服务器处理请求并生成响应。 HTTP 代理将…...

数据结构--队列与循环队列
队列 队列是什么,先联想一下队,排队先来的人排前面先出,后来的人排后面后出;队列的性质也一样,先进队列的数据先出,后进队列的后出;就像图一的样子: 图1 如图1,1号元素是…...

八路参考文献:[八一新书]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022.
八路参考文献:[八一新书]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022....

版本控制 Git工具的使用
版本控制的概念: 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发…...

GNS3 在 Linux 上的安装指南
文章目录 GNS3 在 Linux 上的安装指南1. 基于 Ubuntu 的发行版安装 GNS32. 基于 Debian 的安装3. 基于 ArchLinux 的安装4. 从 Pypi 安装 GNS35. 启动 GNS3 服务端GNS3 在 Linux 上的安装指南 大家好,今天我们来聊聊如何在 Linux 上安装 GNS3。GNS3 是一个非常受欢迎的网络模…...

Mybatis中 list.size() = 1 但显示 All elements are null
一、Bug展示 二、原因分析 2.1.情形一:Mybatis的XML中返回类型映射错误 <select id"selectByDesc" parameterType"com.task.bean.OrderInfo"resultType"com.task.bean.OrderInfo">select MER_ID,SETTLE_DATE,ICE_NAME,ORDER_S…...

Soul的社交元宇宙之路,还有多远?
在元宇宙概念爆火的当下,以互联网为依托的虚拟社交逐步为用户承载起其空缺的精神交流与寄托,而在这其中,以“跟随灵魂找到你”为Slogan,主打年轻人社交元宇宙平台的APP--Soul则在这条赛道上凭借着独特的风格,逐步突出重…...
如何解决Memcached缓存击穿和雪崩问题
原文 Memcached是一种快速、高性能的分布式内存对象缓存系统,广泛应用于Web应用的缓存中。然而,Memcached也存在一些常见的问题,如缓存击穿和缓存雪崩。本文将介绍什么是缓存击穿和缓存雪崩,并提供一些解决这些问题的方法&#x…...

uniapp 开发之仿抖音,上下滑动切换视频、点击小爱心效果
效果图: 功能描述: 上下滑动视频,双击暂停,然后第一个视频再往上滑显示”已经滑到顶了“ 开始代码: 首先视频接口使用的公开的视频测试接口 开放API-2.0 官网展示 Swagger UI 接口文档 一…...
【C++设计模式】依赖倒转原则
2023年8月30日,周三上午 目录 概述含义举个简单的例子传统做法使用依赖倒转原则代码说明再举一个具体的例子以生活为例 概述 依赖倒转原则(Dependency Inversion Principle,DIP)是面向对象设计中的一个基本原则。 含义 高层模块不应该依赖低层模块,两者都应该依…...

浙江首例!金华银行基于完全国产自研数据库构建新一代核心系统
6 月 12 日,金华银行举行“星辉工程”核心项目群上线发布会,新一代核心系统部署在国产分布式数据库 OceanBase 上,实现系统的高可用、高性能、国产升级。据悉,这是浙江省首例基于完全国产自研数据库落地的银行核心系统。 金华银行…...
ASP.NET Core 中的 静态文件
Static Files Static Files 包括 HTML,CSS,图片,JavaScript,以及其他静态资源文件。 即网站本身的内容。 Static Files 服务 Static Files 保存在项目的 Web Root 目录,即 wwwroot 文件夹中。 而wwwroot目录是Conte…...

2023年天府杯——C 题:码头停靠问题
问题背景: 某个港口有多个不同类型的码头,可以停靠不同种类的船只。每 艘船只需要一定的时间来完成装卸货物等任务,并且每个码头有容量 限制和停靠时间限制。港口需要在保证收益的情况下,尽可能地提高 运营效率和降低成本。同…...

集丰照明|汽车美容店设计,装修色彩灯光搭配方法
正确处理好店面的空间设计。 店铺各个功能区设计要合理,衔接合理,这样既能提高员工的工作效率也能提高顾客的满意度。合理安排店铺的空间分配, 要给顾客一种舒适度,既不能让顾客感觉到过于拥挤,又不能浪费店铺的有限空…...

性能提升3-4倍!贝壳基于Flink + OceanBase的实时维表服务
作者介绍:肖赞,贝壳找房(北京)科技有限公司 OLAP 平台负责人,基础研发线大数据平台部架构师。 贝壳找房是中国最大的居住服务平台。作为居住产业数字化服务平台,贝壳致力于推进居住服务的产业数字化、智能…...

取数组中每个元素的最高位
1 题目 /*程序将一维数组a中N个元素的最高位取出,保存在一维数组b的对应位置。 程序运行结果为: a:82 756 71629 5 2034 b: 8 7 7 5 2 */ 2 思考 简单来说就是取一个数据的最高位。 一开始的笨方法没有办法判断数据的长度,后来…...
Docker一键部署Nacos
官方参考文档: https://nacos.io/zh-cn/docs/quick-start-docker.html 本人实践 一、创建数据库&数据表 使用sql脚本创建:https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql 二、新建文件夹并赋权…...

【数学建模】-- 模糊综合评价
模糊综合评价(Fuzzy Comprehensive Evaluation)是一种用于处理不确定性和模糊性信息的决策分析方法。它通常用于解决复杂的多指标决策问题,其中各指标之间可能存在交叉影响和模糊性的情况。模糊综合评价通过将不确定性和模糊性量化࿰…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...