VC imx296 mipi camera on Verdin IMX8MP

Hello,

i am trying to use a Vision Components imx296 camera with an imx8mp (on a toradex verdin module). The i2c driver was written for the imx8qp modules, but seems to work on the imx8mp. But streaming frames i get somehow an incomplete buffer, where a part somehow is repeated. The Picture in Y10 -format should be 1440x1080 pixel. The attached file shows the image i get and the changes to the devicetree.
I am using a Verdin IMX8MP Q 4GB on the verdin development board. The Image is based on the 5.7.1 distro version.
Thanks in advance.
img00000.pgm (1.5 MB)
devicetree.txt (691 Bytes)

Hi @lutz.we ,

Thank you for reaching out to Toradex and welcome to our community, feel free to browse around.

Great to hear that you’re using the Verdin module.

Are you using Torizon or did you build your Image with Yocto?

Would it be possible that you share a link to the i2c driver you’re using to drive the camera?
Furthermore, are you using Gstreamer to stream from the camera? If so, could you share the Gstreamer pipeline you’re using?

Best Regards
Kevin

Hello Kevin,

i build my Image with Yocto. It is based on reference multimedia image.

The i2c driver can be found here:

For streaming i am using the vcmipidemo:

Hi @lutz.we ,

Thanks for sending the links.

I looked at the repository. As I conclude from all that I read from your post as well as the repository I don’t see any specific relation to the actual target. It is mostly “generic” stuff that is changed (patches) while including the driver for the Vision Components camera.

One thing catched my eye though.

+	}, {
+		.name		= "Y10-RAW",
+		.fourcc		= V4L2_PIX_FMT_Y10,
 		.depth		= { 16 },
-		.color		= MXC_ISI_OUT_FMT_YUV422_1P8P,
+		.color		= MXC_ISI_OUT_FMT_RAW16,
+		.memplanes	= 1,
+		.colplanes	= 1,
+		.mbus_code	= MEDIA_BUS_FMT_Y10_1X10,
+	}, {

I am not sure if that change would have some influence on how this is being handled. Maybe this is something defined more specifically for the Apalis iMX8QM.
Does the camera you’re using support other formats like Y12 or Y14? If so, can you see the same behavior on these formats as well?

+	}, {
+		.name		= "Y12-RAW",
+		.fourcc		= V4L2_PIX_FMT_Y12,
+		.depth		= { 16 },
+		.color		= MXC_ISI_OUT_FMT_RAW16,
+		.memplanes	= 1,
+		.colplanes	= 1,
+		.mbus_code	= MEDIA_BUS_FMT_Y12_1X12,
+	}, {

These seem not to have these kinds of changes and simply add a new format.

If we see the same behaviour here as well, we have to dig a bit deeper.

Best Regards
Kevin

Hello Kevin,

thank you for the reply.

“I am not sure if that change would have some influence on how this is being handled. Maybe this is something defined more specifically for the Apalis iMX8QM.”
I changed the color to MXC_ISI_OUT_FMT_YUV422_1P8P. The behavior remains.

“Does the camera you’re using support other formats like Y12 or Y14? If so, can you see the same behavior on these formats as well?”
According to the repository Y10, Y12, Y14, RG10, RG12, GB10, GB12 are supported. (I am using the VC 296C). The behavior is still there for every format.

There is a driver for the verdin and the 296c: GitHub - pmliquify/vc_mipi_imx8mp: Vision Components MIPI CSI-2 driver for Toradex Verdin i.MX8M Plus
This works for Y10 and RG10. As I want to use a newer kernel version and also a vc392 camera i want to integrate the driver that was originally written for the apalis imx8.

Hi @lutz.we ,

Sorry for the delay, I was in vacation.

In the meantime I had some discussions about your issue.

As I learned it is worth trying the following driver for the camera. Its allegedly more stable and might fix some of the issue’s your facing at the moment.

Can you give this a try and let me know if it changed the behavior?

Best Regards
Kevin