Open FPV VTX开源之嵌入式OSD配置
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=2
wlan=wlan0
bandwidth=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=2
wlan=wlan0
bandwidth=20
- 或者采用图形化配置工具进行配置(配置2即可),详见: Open FPV VTX开源之图形化配置工具
步骤三:配置时区
$ 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协议配置,详见以下介绍:
5. 参考资料
【1】Open FPV VTX开源之硬件规格及组成
【2】Open FPV VTX开源之第一次出图
【3】Open FPV VTX开源之默认MAVLink设置
【4】Open FPV VTX开源之图像化配置工具