Open FPV VTX开源之嵌入式OSD配置
Open FPV VTX开源之嵌入式OSD配置
- 1. 源由
- 2. 安装
- 3. 配置
- 步骤一:备份`/etc/telemetry.conf`
- 步骤二:修改`/etc/telemetry.conf`
- 步骤三:配置时区
- 步骤四:重启摄像头
- 4. 实测
- 5. 参考资料
1. 源由
穿越机模拟图传延迟通常在10ms左右。
最近为什么OpenIPC这么热,主要原因就是该项目性能已经提高到35ms左右。
当然,要达到这个要求,并非简单的一个摄像头,还需要地面端(解码)、高刷率屏幕的支持。
打个比方:
- 如果屏幕刷新率只有30FPS,1000ms/30FPS = 33.33ms/frame
- 即使编码、解码、传输都完成了,时间上错过刷新周期,那么就是妥妥要额外在延迟33.33ms了
嵌入式OSD是飞控MCU通过SPI控制MAX7456芯片在图像上直接绘制,大致流程如下:
Analog Camera ----> MAX 7456 chip ----> Analog VTX ----> Antenna(Wireless) ----> RF Receiver(RX5808) ----> Goggles(Fat Shark)^| SPI|Flight Controller
当前Open FPV VTX并不是嵌入式OSD配置交付。因此产品到手后需要做一个简单配置。
IMX335/415 Camera -- MIPI --> SSC30kq/SSC338q chip -- USB --> 8812AU/EU Tx ----> Antenna(Wireless) ----> 8812AU/EU Rx -- USB --> Ground Startion^| UART|Flight Controller
2. 安装
通常情况下,嵌入式OSD软件msposd已经安装,因此无需手动安装。
注:如果您的固件没有上述软件,请更新到最新的固件,参考:《OpenIPC开源FPV之固件sysupgrade升级》
- 安装目录结构:
/├──> /usr/bin/│ ├──> msposd│ └──> safeboot.sh├──> /etc/vtxmenu.ini└──> /usr/share/fonts/├──> font_ardu.png├──> font_ardu_hd.png├──> font_btfl.png├──> font_btfl_hd.png├──> font_inav.png├──> font_inav_hd.png└──> truetype/UbuntuMono-Regular.ttf
msposd帮助信息:
# msposd --help
Ver: 861a97c Compiled at: 20241130_234711
Usage: msposd [OPTIONS]
Where:-m --master Serial port to receive MSP (/dev/ttyAMA0 by default)-b --baudrate Serial port baudrate (115200 by default)-o --output UDP endpoint to forward aggregated MSP messages ()-c --channels RC Channel to listen for commands (0 by default) and exec channels.sh. This command can be repeated. Channel values are 1-based.-w --wait Delay after each command received(2000ms default)-r --fps Max MSP Display refresh rate(5..50)-p --persist How long a channel value must persist to generate a command - for multiposition switches (0ms default)-t --temp Read SoC temperature-d --wfb Monitors wfb.log file and reports errors via HUD messages-s --osd Parse MSP and draw OSD over the video-a --ahi Draw graphic AHI, mode [0-No, 2-Simple 1-Ladder, 3-LadderEx]-x --matrix OSD matrix (0 - 53:20 , 1- 50:18 chars)--mspvtx Enable mspvtx support-v --verbose Show debug infot--help Display this help
3. 配置
先把配置的改动放在这里,以diff方式给出:仅修改了router=0
# diff -Nr telemetry.conf.bak /etc/telemetry.conf
--- telemetry.conf.bak
+++ /etc/telemetry.conf
@@ -5,7 +5,7 @@baud=115200### router: use simple mavfwd (0), classic mavlink-routerd (1) or msposd instead of mavfwd (2)
-router=0
+router=2wlan=wlan0bandwidth=20
首先,通过ssh方式登录系统。
步骤一:备份/etc/telemetry.conf
$ cp /etc/telemetry.conf /root/telemetry.conf.bak
步骤二:修改/etc/telemetry.conf
$ vi /etc/telemetry.conf
$ diff -uN /root/telemetry.conf.bak /etc/telemetry.conf
--- /root/telemetry.conf.bak
+++ /etc/telemetry.conf
@@ -5,7 +5,7 @@baud=115200### router: use simple mavfwd (0), classic mavlink-routerd (1) or msposd instead of mavfwd (2)
-router=0
+router=2wlan=wlan0bandwidth=20
- 或者采用图形化配置工具进行配置(配置2即可),详见: Open FPV VTX开源之图形化配置工具

步骤三:配置时区
- change localtime instead of gmtime on OSD display #39
$ sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注1:不同时区的朋友,请根据自己所在时区进行设置。
注2:时区的目的是为了自定义OSD输出,详见:libcamera_mon 开源代码之树莓派3B+ Bookworm部署
步骤四:重启摄像头
$ reboot
此时,mavfwd 将不会启动,取代它的是msposd进程,该进程就是嵌入式OSD软件。
4. 实测
当飞控串口没有配置OSD协议的时候(或者默认MAVLink时),将会显示"Identifying Flight Controller …"

接下去将在各种飞控地面站上进行嵌入式OSD协议配置,详见以下介绍:
- 【1】Open FPV VTX开源之ardupilot配置
- 【2】Open FPV VTX开源之betaflight配置
- 【3】Open FPV VTX开源之inav配置
5. 参考资料
【1】Open FPV VTX开源之硬件规格及组成
【2】Open FPV VTX开源之第一次出图
【3】Open FPV VTX开源之默认MAVLink设置
【4】Open FPV VTX开源之图像化配置工具
相关文章:
Open FPV VTX开源之嵌入式OSD配置
Open FPV VTX开源之嵌入式OSD配置 1. 源由2. 安装3. 配置步骤一:备份/etc/telemetry.conf步骤二:修改/etc/telemetry.conf步骤三:配置时区步骤四:重启摄像头 4. 实测5. 参考资料 1. 源由 穿越机模拟图传延迟通常在10ms左右。 最…...
2Hive表类型
2Hive表类型 1 Hive 数据类型2 Hive 内部表3 Hive 外部表4 Hive 分区表5 Hive 分桶表6 Hive 视图 1 Hive 数据类型 Hive的基本数据类型有:TINYINT,SAMLLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE&a…...
计算机网络之---公钥基础设施(PKI)
公钥基础设施 公钥基础设施(PKI,Public Key Infrastructure) 是一种用于管理公钥加密的系统架构,它通过结合硬件、软件、策略和标准来确保数字通信的安全性。PKI 提供了必要的框架,用于管理密钥对(包括公钥…...
EF Core执行原生SQL语句
目录 EFCore执行非查询原生SQL语句 为什么要写原生SQL语句 执行非查询SQL语句 有SQL注入漏洞 ExecuteSqlInterpolatedAsync 其他方法 执行实体相关查询原生SQL语句 FromSqlInterpolated 局限性 执行任意原生SQL查询语句 什么时候用ADO.NET 执行任意SQL Dapper 总…...
GaussDB分布式数据倾斜处理
常规数据倾斜巡检 在库中表个数少于1W的场景,直接使用倾斜视图查询当前库内所有表的数据倾斜情况 SELECT * FROM pgxc_get_table_skewness ORDER BY totalsize DESC;在库中表个数非常多(至少大于1W)的场景,因PGXC_GET_TABLE_SKEWN…...
代码随想录Day34 | 62.不同路径,63.不同路径II,343.整数拆分,96.不同的二叉搜索树
代码随想录Day34 | 62.不同路径,63.不同路径II,343.整数拆分,96.不同的二叉搜索树 62.不同路径 动态规划第二集: 比较标准简单的一道动态规划,状态转移方程容易想到 难点在于空间复杂度的优化,详见代码 class Solution {public int uniq…...
vue.js辅助函数-mapMutations
在Vue.js中,使用辅助函数可以更方便地使用Vuex的mutation。而mapMutations就是Vuex提供的一个辅助函数,它可以将mutation映射到组件的methods中,使得我们可以在组件中直接调用mutation,而不需要手动进行commit。 mapMutations函数…...
Vue3组件设计模式:高可复用性组件开发实战
Vue3组件设计模式:高可复用性组件开发实战 一、前言 在Vue3中,组件设计和开发是非常重要的,它直接影响到应用的可维护性和可复用性。本文将介绍如何利用Vue3组件设计模式来开发高可复用性的组件,让你的组件更加灵活和易于维护。 二、单一职责…...
PHP 8.4 安装和升级指南
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
什么是 OpenResty
1、OpenResty简介 1.1 了解OpenResty OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 简单地说OpenRes…...
Windows图形界面(GUI)-QT-C/C++ - QT控件创建管理初始化
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 控件创建 包含对应控件类型头文件 实例化控件类对象 控件设置 设置父控件 设置窗口标题 设置控件大小 设置控件坐标 设置文本颜色和背景颜色 控件排版 垂直布局 QVBoxLayout …...
【计算机网络】lab8 DNS协议
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…...
了解linux中的“of_property_read_u32()”
of_property_read_u32(node, "post-pwm-on-delay-ms",&data->post_pwm_on_delay); /*根据"post-pwm-on-delay-ms",从属性中查找并读取一个32位整数*/ /*读到一个32位整数,保存到data->post_pwm_on_delay中*/ of_property_read_u32…...
iOS - Objective-C 底层中的内存屏障
1. 基本实现 // objc-os.h 中的内存屏障实现 #define OSMemoryBarrier() __sync_synchronize()// ARM 架构特殊处理 static ALWAYS_INLINE void OSMemoryBarrierBeforeUnlock() { #if defined(__arm__) || defined(__arm64__)OSMemoryBarrier(); #endif } 2. 解锁前的内存屏…...
阿里云服务器扩容系统盘后宝塔面板不显示扩容后的大小
解决方法步骤: 1. yum install cloud-utils-growpart xfsprogs -y 2.growpart /dev/vda 3 扩容系统盘的第3个分区 主要是这个命令1 3. fdisk -l 4. df -h 5. xfs_growfs /dev/vda3 主要是这个命令2 主要使用 df -Th 这个命令查看对应的文件系统类型 (1)、ext…...
c语言——【linux】多进程编程 【进程的创建,相关shell指令,进程状态切换,回收资源,守护进程等】
1.思维导图 2.进程的创建 函数原型:pid_t fork(void); 功能描述:以当前进程为父进程,创建一个子进程 进程链和进程扇的创建 3.多进程具体使用 3.1进程替换 exec 函数一族 int execl(const char *path, const char *arg, ... /* (char *) N…...
macos 搭建 ragflow 开发环境
ragflow 是一个很方便的本地 RAG 库。本文主要记录一下在本机的部署过程 1、总体架构说明 开发环境:macbook pro(m1),16G内存 512G固态 因本机的内存和硬盘比较可怜,所以在服务器上部署基础 docker 包,…...
信创改造-龙蜥操作系统搭载MySql、Tomcat等服务
龙蜥操作系统 Anolis OS 8 是 OpenAnolis 社区推出的完全开源、中立、开放的发行版,它支持多计算架构,也面向云端场景优化,兼容 CentOS 软件生态。Anolis OS 8 旨在为广大开发者和运维人员提供稳定、高性能、安全、可靠、开源的操作系统服务。…...
Java 数据结构 队列之双端队列 常用方法 示例代码 及其实现
目录 常用方法 示例代码 常见实现 Java中的双端队列(Deque,Double Ended Queue)是一种队列,它允许在队列的两端插入和删除元素。与普通队列(FIFO)不同,双端队列的元素可以从队列的两端进行添…...
【原创】大数据治理入门(2)《提升数据质量:质量评估与改进策略》入门必看 高赞实用
提升数据质量:质量评估与改进策略 引言:数据质量的概念 在大数据时代,数据的质量直接影响到数据分析的准确性和可靠性。数据质量是指数据在多大程度上能够满足其预定用途,确保数据的准确性、完整性、一致性和及时性是数据质量的…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
