openIPC-初次成功出图记录
Xi0N9
编辑于 2023年11月18日 13:11

openipc FPV

开源低成本高清数字图传:[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。

  1. 刷入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


开始:出图关键操作

  1. 摄像头和nvr更新,到[最新固件]https://github.com/OpenIPC/firmware/releases/tag/latest 下载对应文件升级固件,nvr用-fpv.tgz 摄像头用-venc.tgz。

  2. 网线连接摄像头用sftp下载/etc/gs.key到nvr同目录覆盖

  3. 检查修改两端的/etc/wfb.cfg中channel= 数值一样比如161

  4. 修改摄像头/etc/init.d/S98venc 中-f 60 -r 6000和-v 200_imx307B ,在该行末尾加上 --low-delay &

  5. 改完示例: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 应该没问题应该能出图的。莫名原因


附录1 固件更新方法

更新最新固件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等网络加速方案。

附录2 2套编码解码参数

飞苹果大咖测试过的venc vdec参数,GK7205+307。

用法:【临时】ps |grep venc或者vdnc查看在运行的进程id,然后kill id号,再运行下列代码

【永久】摄像头修改 /etc/init.d/S98venc ,地面端如nvr 改/etc/vdec

  1. 使用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

附录3 重新生成密钥:

不想跟别人使用同一个.bin固件后串频、干扰,那就换密钥

  1. 输入cd /etc/、wfb_keygen,得到gs.key、drone.key。

  2. 把在地面端生成的drone.key用winscp或sftp传到摄像头/etc/目录,或者把在摄像头生成的gs.key上传到地面端的/etc/都行。

  3. 检查比对两边的密钥是否同步一致,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、同步信道频率。