ExpressLRS开源之接收机固件编译烧录步骤

ExpressLRS开源之接收机固件编译烧录步骤

  • 1. 源由
  • 2. 编译步骤
    • 2.1 推荐源代码指定方案
    • 2.2 方法一:ELRS Configurator
      • 步骤一:下载ELRS Configurator工具
      • 步骤二:安装ELRS Configurator工具
      • 步骤三:使用ELRS Configurator工具进行配置
      • 步骤四:设置ELRS接收机为烧录模式
      • 步骤五:点击"Flash"烧录固件
    • 2.3 方法二:VSCode IDE
      • 步骤一:安装vscode
      • 步骤二:安装PlatformIO插件
      • 步骤三:选择ELRS工程
      • 步骤四:修改工程配置
      • 步骤五:选择编译目标
      • 步骤六:编译&烧录固件
  • 3. ELRS基本调试验证
    • 3.1 ID,Antenna,RSSI,LQ,SNR,PWR,FHSS,TimingOffset
    • 3.2 IRQ_CNT,RSSI_AVE,SNR_AVE,SNV_MAX,TELEM_CNT,FAIL_CNT
    • 3.3 RX Scoreboard
    • 3.4 ELRS Configurator配置界面
    • 3.5 VSCode配置界面
  • 4. 固件烧录
    • 4.1 命令行
    • 4.2 GUI工具
  • 5. 参考资料

1. 源由

ExpressLRS是航模上目前比较流行的开源发射机和接收机开源代码之一。

其目的旨在提供最好的完全开放、高刷新率的无线电控制链路,同时以低延迟保持该速率下的最大可实现范围,在900MHz和2.4GHz频率下对硬件提供大量支持。

这个也是笔者一直使用的RC控制链路。从无人机的控制电传,图传以外,RC链路控制是非常重要的链路。

不过这里有一个非常痛苦的事情,就是编译。为什么???? 耗时

因此,本文主要的出发点是确保操作步骤的正确性,并针对常见问题进行必要且快速的解决方法。

注:如果想要更加方便且快速的编译,就需要了解更多关于VSCode&ELRS Configurator背后整合的工具面命令,将一键操作进行分解。如果有时间,后续我们会进一步的分解,以便这个耗时的编译烧录能最简化,也许1~2分钟就可以解决问题。

2. 编译步骤

在所有编译之前,首先进行源代码下载:

A) Git拉取Github开源代码

$ git clone git@github.com:ExpressLRS/ExpressLRS.git
$ git checkout 3.x.x-maintenance //根据需要进行分支切换

B) 稳定发布版本获取压缩包

$ wget https://github.com/ExpressLRS/ExpressLRS/archive/refs/tags/3.3.0.zip
$ unzip ExpressLRS-3.3.0.zip //根据需要下载对应的版本,并进行解压

C) 通过ELRS Configurator下载

注:该方式并不推荐,但这确实是一个OneButton的解决方案。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.1 推荐源代码指定方案

因为国内网络的不稳定性,采用本地代码进行编译是一个比较好的选择,且大多数开发人员也经常使用的是本地代码进行开发,开发完成后提交相应修改。

因此,我们推荐采用"LOCAL"的方式进行源代码选择,而非上面C)选项中的方式。

在这里插入图片描述

2.2 方法一:ELRS Configurator

步骤一:下载ELRS Configurator工具

通过ELRS Configurator配置工具发布页面寻找合适软件版本,进行下载。

目前,最新的版本号是1.6.0。

步骤二:安装ELRS Configurator工具

ELRS Configurator工具支持较多系统(比如:MacOS/Linux/Windows),且如果Github上无二进制,用户可以根据需求直接源代码进行交叉编译(不再讨论范围之内)。

具体安装方式与常规软件类似,Windows版本请根据安装提示完成安装。
在这里插入图片描述

步骤三:使用ELRS Configurator工具进行配置

  1. 设备配置:目前采用了一块类似BETAFPV 900的接收机硬件(硬件管脚定义)

在这里插入图片描述
2. 烧录方式:采用串口直接烧录

在这里插入图片描述
3. 设备选项:通常使用"Standard mode" + “FCC_915”

在这里插入图片描述4. 固件烧录方式

在这里插入图片描述

步骤四:设置ELRS接收机为烧录模式

  1. 首先,将ELRS接收机的Rx/Tx/GND/VCC与USB串口板连接

ELRS-Rx <–> USB-SerialAdapter-Tx
ELRS-Tx <–> USB-SerialAdapter-Rx
ELRS-VCC <–> USB-SerialAdapter-5V
ELRS-GND <–> USB-SerialAdapter-GND

  1. 然后,按住"Firmware Upgrade Button"按键
  2. 最后,同时将USB插入电脑,上电时接收机将会自动进入烧录模式

在这里插入图片描述

步骤五:点击"Flash"烧录固件

这里的“Flash”是一键式编译+烧录,从设计的角度来说是非常方便的,但是从实际情况来看会出现大量的网络问题导致编译失败。

注:如果出现编译失败,请删除"src/.pio"目录,重新步骤五。

2.3 方法二:VSCode IDE

步骤一:安装vscode

在VisualStudioCode上下载最新版本,安装vscode IDE开发环境。

注:Windows安装软件比较简单和直观,next by next就好了。

步骤二:安装PlatformIO插件

在vscode IDE环境中点击"extension",搜索platformio,安装"PlatformIO IDE"插件,最后将会在左侧ICON上显示PlatformIO的图标,表示安装成功。

注:因为ExpressLRS是使用Arduino框架用C++编写的。

在这里插入图片描述

步骤三:选择ELRS工程

在使用Visual Studio Code时,在选项卡中看到PlatformIO主页。单击“打开项目”按钮。导航到ExpressLRS repo目录。导航到src文件夹(即./ExpressLRS/src/)。最后,按下“打开”按钮。

在这里插入图片描述

步骤四:修改工程配置

编辑文件/src/user_defines.txt来定义用户特定的变量。
在这里插入图片描述

步骤五:选择编译目标

在左侧工具栏中,单击PlatformIO图标,该图标将显示任务列表。选择“编译目标”

在这里插入图片描述

步骤六:编译&烧录固件

常用的几个选项是:Build/Upload/Clean/Full Clean

注:如果上述方法无法解决编译时出现的错误,很有可能还是网络问题导致组件下载出现异常,请删除"src/.pio"目录,重新步骤六。

在这里插入图片描述

3. ELRS基本调试验证

ELRS基本调试验证,主要侧重硬件方面的信号数据指标。通过固件配置参数的调整获取相关硬件性能的参数。

基础参数如下:

-DMY_BINDING_PHRASE=“”
-DAUTO_WIFI_ON_INTERVAL=“60”
-DLOCK_ON_FIRST_CONNECTION
-DRegulatory_Domain_FCC_915 //请根据国家地区,以及设备进行选择合适的规则

3.1 ID,Antenna,RSSI,LQ,SNR,PWR,FHSS,TimingOffset

在基础参数前提下,增加以下配置参数:

-DDEBUG_LOG
-DDEBUG_CRSF_NO_OUTPUT
-DDEBUG_RCVR_LINKSTATS

通过串口可得到如下类似串口打印调试信息:
在这里插入图片描述

3.2 IRQ_CNT,RSSI_AVE,SNR_AVE,SNV_MAX,TELEM_CNT,FAIL_CNT

在基础参数前提下,增加以下配置参数:

-DDEBUG_LOG
-DDEBUG_CRSF_NO_OUTPUT
-DDEBUG_RCVR_SIGNAL_STATS

通过串口可得到如下类似串口打印调试信息:
在这里插入图片描述

3.3 RX Scoreboard

-DPRINT_RX_SCOREBOARD

在这里插入图片描述
在这里插入图片描述

3.4 ELRS Configurator配置界面

在这里插入图片描述
在这里插入图片描述

3.5 VSCode配置界面

在这里插入图片描述

4. 固件烧录

ELRS采用了乐鑫的芯片,因此还可以命令行输入,详见:ExpressLRS_Manufacturer_Design_Guidelines_v1.7.pdf

4.1 命令行

在这里插入图片描述
在这里插入图片描述

4.2 GUI工具

在这里插入图片描述在这里插入图片描述

5. 参考资料

【1】Advanced Toolchain Setup for ELRS
【2】ExpressLRS-Configurator

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拒绝摆烂!C语言练习打卡第七天

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;每日一练 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、选择题 &#x1f4dd;1.第一题 &#x1f4dd;2.第二题 &#x1f4d…

性能瓶颈分析及调优

分析流程&#xff1a; 很多情况下压测流量并没有完全进入到后端&#xff08;服务端&#xff09;&#xff0c;在网络接入层&#xff08;云化的架构比如&#xff1a;SLB/WAF/高防IP&#xff0c;甚至是CDN/全站加速等&#xff09;可能就会出现由于各种规格&#xff08;带宽、最大…

LLaMA中ROPE位置编码实现源码解析

1、Attention中q&#xff0c;经下式&#xff0c;生成新的q。m为句长length&#xff0c;d为embedding_dim/head θ i 1 1000 0 2 i d \theta_i\frac{1}{10000^\frac{2i}{d}} θi​10000d2i​1​ 2、LLaMA中RoPE源码 import torchdef precompute_freqs_cis(dim: int, end: i…

[maven]关于pom文件中的<relativePath>标签

关于pom文件中的<relativePath>标签 为什么子工程要使用relativePath准确的找到父工程pom.xml.因为本质继承就是pom的继承。父工程pom文件被子工程复用了标签。&#xff08;可以说只要我在父工程定义了标签&#xff0c;子工程就可以没有&#xff0c;因为他继承过来了&…

前端三剑客中简单的两个:HTMLCSS

HTML&CSS 1&#xff0c;HTML1.1 介绍1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签 1.4 图片、音频、视频标签1.5 超链接标签1.6 列表标签1.7 表格标签1.8 布局标签1.9 表单标签1.9.1 表单标签概述1.9.2 form标签属性1.9.3 代码演示 1.10 表单项标签 …

持续性能优化:确保应用保持高性能

在当今数字化时代&#xff0c;应用程序的性能已经成为用户体验和业务成功的关键因素之一。无论是Web应用、移动应用还是企业级软件&#xff0c;用户对于速度和响应性的要求越来越高。因此&#xff0c;持续性能优化已经成为保证应用在竞争激烈的市场中脱颖而出的重要策略。 什么…

基于Android的旅游管理系统 微信小程序

随着网络科技的发展&#xff0c;移动智能终端逐渐走进人们的视线&#xff0c;相关应用越来越广泛&#xff0c;并在人们的日常生活中扮演着越来越重要的角色。因此&#xff0c;关键应用程序的开发成为影响移动智能终端普及的重要因素&#xff0c;设计并开发实用、方便的应用程序…

R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p33514 综合社会调查&#xff08;GSS&#xff09;是由国家舆论研究中心开展的一项观察性研究。自 1972 年以来&#xff0c;GSS 一直通过收集当代社会的数据来监测社会学和态度趋势。其目的是解释态度、行为和属性的趋势和常量。从 197…

【安装GPU版本pytorch,torch.cuda.is_available()仍然返回False问题】

TOC 第一步 检查cuda是否安装&#xff0c;CUDA环境变量是否正确设置&#xff0c;比如linux需要设置在PATH&#xff0c;window下环境变量编辑看看&#xff0c;是否有CUDA 第二步&#xff0c;核查python中torch版本 首先查看你环境里的pytorch是否是cuda版本&#xff0c;我这…

腾讯云服务器镜像TencentOS Server操作系统详细介绍

腾讯云TencentOS Server镜像是腾讯云推出的Linux操作系统&#xff0c;完全兼容CentOS生态和操作方式&#xff0c;TencentOS Server操作系统为云上运行的应用程序提供稳定、安全和高性能的执行环境&#xff0c;TencentOS可以运行在腾讯云CVM全规格实例上&#xff0c;包括黑石物理…

openCV实战-系列教程7:轮廓检测2与模板匹配(轮廓检测/轮廓特征/轮廓近似/轮廓边界矩阵/轮廓边界圆/模版匹配)、原理解析、源码解读

&#x1f9e1;&#x1f49b;&#x1f49a;&#x1f499;&#x1f49c;OpenCV实战系列总目录 打印一个图片可以做出一个函数&#xff1a; def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows() 1、轮廓特征与近似 1.1 轮廓特征 前面我们计算了…

docker部署前端项目保姆级教程

本地启动docker&#xff08;有不会启动的吗&#xff1f;下载docker&#xff08;小海豚&#xff09;双击起来就行&#xff09; 准备阿里云账号&#xff08;免费&#xff09; 没有就去注册一个&#xff0c;记住密码后面要用到 官网地址&#xff1a;阿里云登录 - 欢迎登录阿里云…

对比Flink、Storm、Spark Streaming 的反压机制

分析&回答 Flink 反压机制 Flink 如何处理反压? Storm 反压机制 Storm反压机制 Storm 在每一个 Bolt 都会有一个监测反压的线程&#xff08;Backpressure Thread&#xff09;&#xff0c;这个线程一但检测到 Bolt 里的接收队列&#xff08;recv queue&#xff09;出现了…

SVN 集中式版本管理平台

1. SVN 命令行工具下载地址 https://www.visualsvn.com/downloads/ 2. 下载SVN 命令行工具后&#xff0c;解压后就可以了&#xff0c;不需要安装的 3. 将bin 文件添加到系统环境变量中&#xff0c;不知道怎么打开系统环境变量的自己问度娘 4. 添加到系统环境变量中&#xff0c;…

【Java架构-版本控制】-Git进阶

本文摘要 Git作为版本控制工具&#xff0c;使用非常广泛&#xff0c;在此咱们由浅入深&#xff0c;分三篇文章&#xff08;Git基础、Git进阶、Gitlab搭那家&#xff09;来深入学习Git 文章目录 本文摘要1. Git分支管理2. Git分支本质2.1 分支流转流程(只新增文件)2.2 分支流转流…

INDEMIND:“大+小”多机协同,实现机器人商用场景全覆盖

随着商用清洁机器人进入越来越多的场景中&#xff0c;单一的中型机器人并不能有效覆盖所有区域&#xff0c;更加细分化的产品组合正在成为新的趋势。 产品形态的“新趋势” 在商用场景中&#xff0c;目前的商用清洁机器人几乎均是中大型的产品形态&#xff0c;较大的体型意味…

JavaScript原型链污染

前言 在浏览某个论坛的时候&#xff0c;第一次看到了JavaScript原型链污染漏洞。当时非常的好奇&#xff0c;当时我一直以为js作为一种前端语言&#xff0c;就算存在漏洞也是针对前端&#xff0c;不会危害到后端&#xff0c;因此我以为这种漏洞危害应该不大。可当我看到他的漏…

【数学建模】-- 模糊综合评价

模糊综合评价&#xff08;Fuzzy Comprehensive Evaluation&#xff09;是一种用于处理不确定性和模糊性信息的决策分析方法。它通常用于解决复杂的多指标决策问题&#xff0c;其中各指标之间可能存在交叉影响和模糊性的情况。模糊综合评价通过将不确定性和模糊性量化&#xff0…