
开源低成本高清数字图传:[wiki]https://github.com/OpenIPC/wiki/blob/master/en/fpv.md
本文使用硬件:
地面解码:用闲鱼20元的HI3536DV100主控NVR网络录像机主板,原来8M flash自己换了 16MB 。
摄像头:63元的gk7205v200+imx307配2.1mm镜头滤光镜头座、网络电源尾线 (https://item.taobao.com/item.htm?spm=a21n57.1.0.0.5def523c7nkcFp&id=740036564213&ns=1&abbucket=11#detail)
网卡:6元的电视机网卡rtl8812au 两张 ,近距离亮机用用
其它如带HDMI显示器、USB-TTL串口工具、12v电源
天空端的摄像头 参考[官方wiki安装指引] https://github.com/OpenIPC/sandbox-fpv/blob/master/notes_start_ivg-g2s.md
配合官方刷写[指南] https://openipc.org/cameras/vendors/goke/socs/gk7205v200?mac=&cip=192.168.0.10&sip=192.168.0.40&net=both&rom=nor16m&var=venc&sd=sd
地面的nvr 参考[mariofpv视频] https://www.bilibili.com/video/BV1kz4y13742/ ,和官方指南https://github.com/OpenIPC/wiki/blob/master/en/fpv-nvr.md
先检查板子上的flash,一般为25q128xxxx,如果是25q64xxx,需要自行更换为16M的W25Q128JVSIQ。
刷入uboot
找到nvr的tx rx gnd引脚,接好usb-ttl到电脑
下载视频中的 openipc.7z压缩包,openipc-fpv(904031209)群中的backup-hi3536dv-xxxx.bin、uboot-hi3536dv100-xxxx.img
打开hitool,刷新选择com串口,浏览载入uboot.img,点击烧写后给nvr通电即开始到刷完
2.刷入系统镜像
打开opentftp将backup-hi3536-xxx.bin或其它完整镜像fullimage放到tftp根目录。
检查opentftpserverMT.ini文件的[LISTEN-ON]监听IP端口192.168.0.40:69前面无分号' ,检查[HOME]下#deposited like:-的下一行是否为tftp根路径且前面无#
刷入镜像,使用hitool、putty、mobaxter、xshell等工具连接usbttl工具的串口,nvr一上电有输出马上按ctrl+c打断启动,进入uboot界面
3.输入setenv ipaddr 192.168.0.10; setenv serverip 192.168.0.40; mw.b 0x82000000 0xff 0x1000000; tftp 0x82000000 backup-hi3536dv100v3.bin
最后的.bin文件名字根据实际更改
sf probe 0; sf lock 0; sf erase 0x0 0x1000000; sf write 0x82000000 0x0 0x1000000
如果提示sf lock命令失败,忽略即可
reset 重启
uboot下用tftp上传文件烧录总会遇到些问题,最近了解到可以用U盘升级,文件放在fat32格式的U盘根目录,然后执行的命令中用'fatload usb 0'代替'tftp'字符。
PS:我用这款20元nvr用的1GB内存(wiki上是基于2GB的nvr)需要改uboot设置:
setenv bootargs 'mem=60M console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=hi_sfc:256k(boot),64k(env),2048k(kernel),8192k(rootfs),-(rootfs_data)'
setenv osmem '60M'
setenv totalmem '128M'
saveenv
摄像头和nvr更新,到[最新固件]https://github.com/OpenIPC/firmware/releases/tag/latest 下载对应文件升级固件,nvr用-fpv.tgz 摄像头用-venc.tgz。
网线连接摄像头用sftp下载/etc/gs.key到nvr同目录覆盖
检查修改两端的/etc/wfb.cfg中channel= 数值一样比如161
修改摄像头/etc/init.d/S98venc 中-f 60 -r 6000和-v 200_imx307B ,在该行末尾加上 --low-delay &
改完示例:venc -p 5600 -f 60 -r 6000 -n 1400 -c 264cbr -d frame -v 200_imx307B -s 720p --low-delay &
第四点是关键,始终不出图最终排查到的原因,其实原本配置-f 30 -v 200_imx307f 应该没问题应该能出图的。莫名原因
更新最新固件3种方法: 到 [firmware] https://github.com/OpenIPC/firmware/releases/tag/latest 下载 .tgz文件解压得到4个文件。
a. 网线sftp方法上传rootfs.xxx uImage.xxxx到/tmp/目录下,
摄像头输入 sysupgrade --kernel=/tmp/uImage.gk7205v200 --rootfs=/tmp/rootfs.squashfs.gk7205v200 -z -n
nvr输入 sysupgrade --kernel=/tmp/uImage.hi3536dv100 --rootfs=/tmp/rootfs.squashfs.hi3536dv100 -z -n
b. uboot下tftp更新
rootfs.xxx uImage.xxxx放到本地电脑tftp软件目录下
uboot打断 命令行输入run uk ,run ur .报错uk没有,换成run uknor16m,run urnor16m来更新。
c. 在线更新
- 网络好的 :sysupgrade -k -r -n --force_ver
- 网络不能畅游海外的:sysupgrade -k -r -n --force_ver --url=https://ghproxy.com/github.com/firmware/xxxxxx 来指定网址,便于使用ghproxy.com等网络加速方案。
飞苹果大咖测试过的venc vdec参数,GK7205+307。
用法:【临时】ps |grep venc或者vdnc查看在运行的进程id,然后kill id号,再运行下列代码
【永久】摄像头修改 /etc/init.d/S98venc ,地面端如nvr 改/etc/vdec
使用H.264解码:
摄像头 venc -p 5600 -f 60 -r 4096 -n 1400 -c 264cbr -d frame -v 200_imx307B -s 720p --low-delay
NVR地面端 vdec -p 5600 -d frame -c h264 -m 720p60 --bg-r 30 --bg-g 0 --bg-b 30 --mavlink-port 14750 --osd
2. 使用H.265解码:
摄像头 venc -p 5600 -f 60 -r 5000 -n 1400 -c 265cbr -d frame -v 200_imx307B -s 720p --low-delay
NVR地面端 vdec -p 5600 -d frame -c h265 -m 720p60 --bg-r 30 --bg-g 0 --bg-b 30 --mavlink-port 14750 --osd
不想跟别人使用同一个.bin固件后串频、干扰,那就换密钥
输入cd /etc/、wfb_keygen,得到gs.key、drone.key。
把在地面端生成的drone.key用winscp或sftp传到摄像头/etc/目录,或者把在摄像头生成的gs.key上传到地面端的/etc/都行。
检查比对两边的密钥是否同步一致,cat /etc/gs.key、cat、 /etc/drone.key
xi0n9FPV 2023.11.5
11.18 更新前文部分信息:
1.、11.12后nvr官方制作了最新刷写指南:https://github.com/OpenIPC/wiki/blob/master/en/fpv-nvr.md ,且要求用之前固件的nvr都要更新uboot (在github.com/openipc/firmware/releases)
2、摄像头的FPV固件(majestic)、VENC固件,现在都可以与nvr的FPV固件(vdec)直通出图像。 只需要常规地2步操作:同步.key、同步信道频率。










