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)《提升数据质量:质量评估与改进策略》入门必看 高赞实用
提升数据质量:质量评估与改进策略 引言:数据质量的概念 在大数据时代,数据的质量直接影响到数据分析的准确性和可靠性。数据质量是指数据在多大程度上能够满足其预定用途,确保数据的准确性、完整性、一致性和及时性是数据质量的…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
