Luckfox Pico Pi RV1106学习<3>:支持IMX415摄像头

RV1106开发环境搭建(windows) 去年使用了瑞芯微的RV1126的模组做了一个ai小相机(视频地址在这里),当时感觉性能还可以,就是开发环境太过一言难尽了。最近又发现有厂家使用另外一个新型号RV1106推出了开发板,价格十分喜人。关键是现在的开发生态比我当时友善太多了,资料更规范了,github上也有配套的各种开源仓库。一番体验下来,感觉还是不错的。现在的rknn开发环境相对以前我接触时简便和优雅了许多。在这个基础上,加上你自己的业务逻辑和自己训练转换的rknn模型后,就能做具体的东西了。 阅读详情

0. 项目代码

可以从下面获取到项目中的代码。
https://github.com/cdsmakc/h264_codec_base_rpi4b_rpi5_rv1106_visual_studio.git

1. 背景

Luckfox Pico Pi开发板默认支持 sc3336 和 mis5001 两款摄像头这两个摄像头都支持30fps帧率输出。我想DIY一个采集->编码->UDP发送的应用,类似于图传。为了降低延时,需要用一个更高帧率的摄像头。市面上第三方的RK开发板,最常见的是使用 IMX415 摄像头,因此考虑将该摄像头在RV1106上予以支持。

2. 硬件

我从Luckfox店铺购买了 IMX415 摄像头,该摄像头是用于匹配Luckfox的 Omni3576 开发板的。
左边是mis5001,右边是IMX415
上图中,左边是 Mis5001 的摄像头,右边是 IMX415 的摄像头。
开发板使用20P的CSI接口,2-Lane;IMX415 是4-Lane的,用22P的CSI接口。因此,需要做一个小转接板。下面是转接板的PCB外观和原理图。原理图中的电阻是为调试准备的,实际上端接电阻2个焊盘即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 修改SDK

主要修改两点,一是设备树文件,一个是kernel的编译配置。

3.1 修改设备树文件

首先到 project/cfg/BoardConfig_IPC 路径下,找到对应编译的mk文件。对于我的硬件和编译选项,我的mk文件是:
在这里插入图片描述
查询该mk文件,显示指定的设备树文件。

#!/bin/bash

#################################################
# 	Board Config
#################################################
export LF_ORIGIN_BOARD_CONFIG=BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Pi_W-IPC.mk
# Target CHIP
export RK_CHIP=rv1106

# app config
export RK_APP_TYPE=RKIPC_RV1106

# Config CMA size in environment
export RK_BOOTARGS_CMA_SIZE="66M"

# Kernel dts
export RK_KERNEL_DTS=rv1106g-luckfox-pico-pi-w.dts

#################################################
#	BOOT_MEDIUM
#################################################

# Target boot medium
export RK_BOOT_MEDIUM=emmc

可以看到,设备树文件是 rv1106g-luckfox-pico-pi-w.dts。在我的SDK版本中,文件位于

./sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pi-w.dts

再找到这个文件并显示内容:

njl@njl-VMware-Virtual-Platform:~/rv1106_sdk/luckfox-pico$ cat ./sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pi-w.dts
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
 */

/dts-v1/;
#include "rv1106.dtsi"
#include "rv1106-luckfox-pico-pi-ipc.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/display/media-bus-format.h>

可以看到,该设备树文件包含了文件 rv1106-luckfox-pico-pi-ipc.dtsi。需要修改这个文件。该文件位于:

./sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-pi-ipc.dtsi

修改该文件。其中Luckfox已经增加了 SC3336和mis5001 的节点,照着再增加一个就好了。主要修改如下两个地方:

&csi2_dphy0 {
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;

			csi_dphy_input0: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&sc3336_out>;
				data-lanes = <1 2>;
			};

			csi_dphy_input1: endpoint@1 {
				reg = <1>;
				remote-endpoint = <&mis5001_out>;
				data-lanes = <1 2>;
			};
			# 增加如下部分
			csi_dphy_input2: endpoint@2 {
				reg = <2>;
				remote-endpoint = <&imx415_out>;
				data-lanes = <1 2>;
			};
		};
&i2c4 {
	status = "okay";
	clock-frequency = <400000>;
	pinctrl-names = "default";
	//pinctrl-0 = <&i2c4m2_xfer>;

	sc3336: sc3336@30 {
		compatible = "smartsens,sc3336";
		status = "okay";
		reg = <0x30>;
		clocks = <&cru MCLK_REF_MIPI0>;
		clock-names = "xvclk";
		reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&mipi_refclk_out0>;
		rockchip,camera-module-index = <0>;
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "CMK-OT2119-PC1";
		rockchip,camera-module-lens-name = "30IRC-F16";
		port {
			sc3336_out: endpoint {
				remote-endpoint = <&csi_dphy_input0>;
				data-lanes = <1 2>;
			};
		};
	};

	mis5001: mis5001@31 {
		compatible = "imagedesign,mis5001";
		status = "okay";
		reg = <0x31>;
		clocks = <&cru MCLK_REF_MIPI0>;
		clock-names = "xvclk";
		reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&mipi_refclk_out0>;
		rockchip,camera-module-index = <0>;
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "CMK-OT2115-PC1";
		rockchip,camera-module-lens-name = "30IRC-F16";
		port {
			mis5001_out: endpoint {
				remote-endpoint = <&csi_dphy_input1>;
				data-lanes = <1 2>;
			};
		};
	};
	# 增加以下部分
	imx415: imx415@37 {
		compatible = "sony,imx415";
		status = "okay";
		reg = <0x37>;
		clocks = <&cru MCLK_REF_MIPI0>;
		clock-names = "xvclk";
		reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&mipi_refclk_out0>;		
		rockchip,camera-module-index = <0>;
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "CMK-OT2022-PX1";
		rockchip,camera-module-lens-name = "IR0147-36IRC-8M-F20";
		port {
			imx415_out: endpoint {
				remote-endpoint = <&csi_dphy_input1>;
				data-lanes = <1 2>;
			};
		};
	};

3.2 增加内核编译支持

在SDK的根目录下,运行:

./build.sh kernelconfig

在这里插入图片描述

然后找到 IMX415 的相关编译选项,按 M 选中保存退出。然后运行 ./build.sh执行编译。

3.3 烧录与运行

编译完成后,镜像位于 ~/rv1106_sdk/luckfox-pico/output/image 路径下。按照系列文章的第一篇的内容,烧录镜像,然后运行。
观察串口打印的启动信息。

[    2.692018] imx415 4-0037: driver version: 00.01.08
[    2.692056] imx415 4-0037:  Get hdr mode failed! no hdr default
[    2.692084] imx415 4-0037: detect imx415 lane 2
Starting bluetoothd: OK
[    2.692170] imx415 4-0037: Failed to get power-gpios
[    2.692183] imx415 4-0037: could not get default pinstate
[    2.692191] imx415 4-0037: could not get sleep pinstate
[    2.692213] imx415 4-0037: supply dvdd not found, using dummy regulator
Starting network: [    2.692424] imx415 4-0037: supply dovdd not found, using dummy regulator
[    2.692502] imx415 4-0037: supply avdd not found, using dummy regulator
[    2.756926] imx415 4-0037: Detected imx415 id 0000e0
[root@luckfox root]# lsmod
Module                  Size  Used by    Tainted: G  
aic8800_btlpm           1719  0 
aic8800_fdrv          285463  0 
aic8800_bsp            53767  2 aic8800_btlpm,aic8800_fdrv
aes_generic            24532  0 
ccm                     6847  0 
ctr                     2606  0 
libarc4                  799  0 
cfg80211              168973  1 aic8800_fdrv
rve                    23436  0 
rockit                225880  0 
rknpu                  27019  0 
mpp_vcodec            414257  1 rockit
rga3                   90762  1 rockit
phy_rockchip_csi2_dphy     9338  0 
phy_rockchip_csi2_dphy_hw    10066  0 
video_rkisp           171838  1 rockit
video_rkcif           162117  1 rockit
imx415                 16360  1                 # ------>加载了IMX415的驱动
rk_dvbm                 5941  2 mpp_vcodec,video_rkisp

可以看到,已经检测到了 IMX415 。


RV1106点亮1.44寸SPI接口tftlcd 阅读详情

相关推荐

【无标题】

Rockchip RV1106/RV1103 EVB用户指南1.3 烧录说明1.3.1 USB/串口烧录该方法使用SDK提供的Windows,需要接入串口和USB,串口波特率115200(快启的固件串口波特率为1500000),输入reboot loader命令,进入maskrom模式。如果设备无法通过reboot loader命令进入maskrom模式,可以按住板子上的Update按键,然后上电或按RESET按键,进入maskrom模式。

xzjiang_365的博客 4561

Ubuntu18.04交叉编译QT+opencv4.2.0至rv1106开发板全过程及踩坑

在源码目录下,寻找路径/qtbase/mkspecs/linux-arm-gnueabi-g++,该目录最后一项需对照使用的交叉编译工具链选择,我使用的是gnueabi的工具链,所以选择该目录。下载开发板对应交叉编译工具链或自行下载,可参考第一步的文章,我使用的是rv1106自带交叉编译工具链,各位也可使用linaro公司的交叉编译工具链。修改完成后退回到qt源码的根目录下,创建一个可执行文件XXX.sh用于编译,该文件内容见下,若是开发板需要增加tsilb库,可查看参考网址。

Mei_Ying_的博客 5410

Luckfox Pico Pi RV1106实战:突破V4L2帧率限制的探索

本文记录了在Luckfox Pico Pi RV1106开发板上,针对V4L2接口帧率被限制在20-30FPS的深度探索过程。作者从应用层多线程优化入手,逐步深入到V4L2驱动、RK-MPI硬件管线及ISP配置,最终定位到VI通道的固件级帧率上限。文章分享了包括修改设备树、调整缓冲策略在内的多种实战调优方法,并提出了在现有限制下最大化利用硬件编码器性能的曲线救国策略。

weixin_29159441的博客 401

RV1106的使用总结

RV1106的学习总结

qq_30143193的博客 3479

Luckfox Pico RV1106帧率优化实战:突破V4L2与硬件编码器的30FPS瓶颈

本文详细介绍了Luckfox Pico RV1106开发板在720P分辨率下突破30FPS帧率限制的实战经验。通过分析V4L2驱动和硬件编码器(RK-MPI-VENC)的工作机制,提出了寄存器级调试与全链路优化方案,最终将帧率提升至45FPS。文章还分享了性能评估结果和实用建议,为嵌入式开发者提供了宝贵的参考。

weixin_29194693的博客 277

Luckfox Pico上IMX415帧率被锁30FPS?从V4L2到设备树彻底调通1080P60

在嵌入式视觉开发中,视频采集帧率往往受限于硬件链路配置,而非单纯的应用层参数。V4L2架构与sensor驱动共同决定了摄像头输出的实际能力。当IMX415在RV1106平台上出现帧率被锁定的问题时,根源常在于设备树时钟配置、sensor mode定义与MIPI时序参数不匹配。本文从V4L2原理入手,剖析RV1106视频链路中VPSS、ISP与编码器的协作机制,并给出通过调整sensor驱动中的vts/hts参数以及设备树link-frequencies实现1080P60帧率稳定输出的完整方案。该方法适用于高

weixin_32349093的博客 114

Luckfox Pico Pi RV1106学习<4>:RV1106的帧率问题

Luckfox Pico Pi RV1106学习<4>:RV1106的帧率问题

cdsmakc的博客 1196

【详解】RV1106移植opencv-mobile库

硬件:瑞芯微Rv1106【Luckfox Pro\Max Pico、网线一根、USB线、串口助手、摄像头软件:ubuntu 20.4opencv包:本文主要是使用nihui开发板使用镜像buildroot先完成opencv的移植,后续使用rknpu去实时推理摄像头图像。

weixin_44236302的博客 4127

RV1106 stb图像库、opencv、rga对比评测

rknn opencv rga

qq_32582681的博客 3913

基于RV1106的低压电力保护测控设备开发平台设计

低压(110kV - 10kV)电力保护测控设备主要用于监测和保护低压电力系统,确保其安全、稳定运行。近年来,随着电力系统的不断进步及智能化水平的显著提升,低压电力保护测控设备市场迎来了快速发展期。相较于高压电力设备,低压电力保护测控设备在技术门槛和市场准入方面相对较低,这吸引了越来越多的企业进入该领域,导致市场竞争日益激烈。在这种背景下,为了保持产品的竞争力,企业不仅需要高度重视产品质量,还要严格控制成本。

Ll_lM的博客 2340

RV1106 YOLOV5

最近研究瑞星微的rv1106的yolov5检测算法,但是官方给的例子真是让人欲哭无泪,首先读取时局用的是stb的图像库,前处理加上resize需要250ms,后处理只能输出nc1hwc2,里面的举证转换需要250ms,后续自己做了很多工作,发这个只是为了记录代码。 // Copyright (c) 2021 by Rockchip Electronics Co., Ltd. All Rights Reserved. // // Licensed under the Apache License, Versi

qq_32582681的博客 2736

【目录】RV1103/RV1106开发记录

【RV1103】Luckfox Pico RV1103 开发记录【RV1103】Luckfox Pico 构建系统分析【RV1103】RTL8723bs (SD卡形状模块)驱动开发【RV1103】SD卡和无线WiFi同时使用

似水流年 1万+

RV1106最新datasheet

RV1106最新datasheet

RV1106移植心得

lrwxrwxrwx 1 lxin lxin 93 1月 17 11:14 .BoardConfig.mk -> project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk。其实就是指定.BoardConfig.mk位置。.BoardConfig.mk是一个连接文件。在根目录有个readme_cn.txt文件,指导我们如何编译。可能是因为我们打包文件的img是链接文件导致的。

hxchuan000的专栏 5565

Win10右键新建菜单丢了记事本?别慌!5分钟教你用注册表找回来(附权限设置避坑指南)

本文详细指导如何通过注册表编辑器恢复Win10右键新建菜单中丢失的记事本选项,包括重建键值结构、配置ShellNew项及设置权限等关键步骤。特别提供权限避坑指南,确保修改持久有效,帮助用户快速解决这一常见但困扰的问题。

weixin_31714129的博客 834

Win11如何更改用户文件夹名(完整流程- 已验证可行)

把C盘所有文件备份,如果不想备份,则选择创建一个C盘的系统还原点(能在后续把C盘玩崩之后恢复原状)

Y_Aryan的博客 5万+

RV1106开发整个过程分享

本文主要对RV1106的SDK和开发过程进行讲述,以便新手接触和使用,内容较短,个人的经验而已,主要包括SDK目录,SDK使用,硬件和软件驱动适配。

LittleWhiteSand的博客 7372

pentaho-kettle依赖拉取失败?试试这个Maven仓库配置的终极解决方案

本文详细解析了Pentaho Kettle依赖拉取失败的常见原因,并提供了三种Maven仓库配置方案,包括基础pom.xml配置、全局settings.xml设置以及企业级私有镜像仓库搭建。通过实战验证的方法和常见问题排查指南,帮助开发者彻底解决pentaho-kettle依赖问题,提升项目构建效率。

weixin_30275415的博客 194

幸狐RV1106开发板烧录Ubuntu系统与配置SDK,RV1106 LuckFox Pico Max——最新的操作

以及SDK内的文档资料开发板型号:RV1106 LuckFox Pico Max烧录系统: Ubuntu虚拟机系统:Ubuntu 20.04&&Ubuntu22.04PC系统:win11占用空间:大概15G本文主要记录幸狐RV1106 LuckFox Pico Max开发板的配置过程,记录一些遇到的问题。PS:注意自己的剩余空间,我剩余空间未注意导致虚拟机寄了,所以换了22.04,就在我重装的这一天官方更新了。。。解决了一些bug比如ubuntu这个文件夹没有。

qq_62725929的博客 1万+

图像的低频,中频,高频信息含义?

看很多图像处理的博文,都会说图像的主要成分是低频信息,它形成了图像的基本灰度等级,对图像结构的决定作用较小;中频信息决定了图像的基本结构,形成了图像的主要边缘结构;高频信息形成了图像的边缘和细节,是在中频信息上对图像内容的进一步强化。我有点纳闷,图像不就是一堆像素点构成的三维矩阵吗?跟频率有啥关系! 针对这个问题,又查了不少网文,解释的也都各不相同。例如, “初学的时候,你可以把高中低这个度量和图像上相邻点的灰度差大小对等起来”。 “感性上来讲,图像越杂乱的部分,频率越高...

jinking01的专栏 3万+

深入解析反射式DLL注入:从原理到实战优化

本文深入解析反射式DLL注入技术,从原理到实战优化全面剖析。通过PE文件内存重构、反射加载器实现及免杀增强方案,展示如何绕过安全检测并提升性能。适用于红队行动、内网渗透等场景,是高级攻防对抗中的关键技术。

weixin_28339967的博客 398

【RV1106/RV1103】RV1103增加RTL8723BS

配对:pair MACaddress(刚刚查找的配对设备的mac地址) 这一步需要在手机确认。需要一个文件夹:rkwifibt-1.0.0 (我从RV1126的SDK里面找到的)直到这里,我才知道我其实用手机已经扫出了这个蓝牙!连接:connect MACaddress(刚刚查找的配对设备的mac地址)信任设备:trust MACaddress(刚刚查找的配对设备的mac地址), 且使用ko方式加载,所以使用Realtek时一定要把内核的。这样看起来,进入蓝牙命令交互之后,是不正常的。

似水流年 1万+

用 ABAP RAP + XCO 把 Excel 导入业务对象:从弹窗 Action 到 EML 落库与附件清理的完整实践

摘要:本文介绍了在SAP RAP框架下实现Excel批量导入功能的完整方案。通过XCO库的XLSX模块解析Excel文件,结合RAP的行为定义和Fiori Elements界面集成,构建了一个支持试运行、数据校验和自动合并的业务导入功能。方案采用RAP标准范式,包括Action参数设计、EML事务处理、附件管理以及异常消息反馈,实现了从文件上传到数据落库的端到端流程,既保证了系统稳定性,又提升了业务用户体验。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 252

【详解】RV1106使用RKMPI+Yolov5部署检测

记录使用RKMPI和Yolov5实现目标检测的demo。硬件需求:SC3336 摄像头网线一根、usb线、软件需求:buildroot 镜像(暂不支持 Ubuntu 系统)

weixin_44236302的博客 8591

【异常】OpenClaw 项目 `fetch failed` 报错问题排查与解决方案Response interrupted: TypeError: fetch failed

针对无超时控制、异常兜底缺失导致的请求中断,封装标准化的安全请求工具,一次性解决超时控制、异常捕获、日志埋点三大问题,全项目替换原生。:将项目运行的 Node.js 版本升级至 18.x 及以上 LTS 版本,使用 Node.js 内置的稳定版。实现的网络请求环节,包括但不限于:第三方开放接口调用、内部服务接口通信、跨域资源请求、外部配置拉取等场景。:针对无法升级 Node.js 版本的存量环境,通过社区稳定兼容包替换原生。类型异常,直接造成业务请求响应中断。第二步:业务代码改造,替换原生。

奶爸的编程之路,也就一周冷个三天 360

YOLOv11改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 759
上一篇: Luckfox Pico Pi RV1106学习<2>:配置网口静态IP、Samba实现文件共享
下一篇: Luckfox Pico Pi RV1106学习<4>:RV1106的帧率问题
宁建利
博客等级 码龄18年 136粉丝 31原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值