Add new sensor driver with Orin NX (t234)

Thanks for the help @JerryChang .
Now I have vi errors when using the v4l2-ctl to stream the /dev/video0. For example:

(NULL device *): vi_capture_control_message: NULL VI channel received

I saw you answered this issue before in another thread for the AGX Orin.
I didn’t understand both the cause and solution for this error. Does it related to some mismatch config data between the sensor and the vi? (different resolution for example)

Thanks

hello BSP_User,

please refer to developer guide, To verify the port binding result and Debugging Tips for troubleshooting.
you may also gather the complete logs for reference.

Hi @JerryChang ,
I followed this chapters and noticed that the compliance test fails in 2 out of 45 tests.
Following is the log of executing the test and executing the v4l2 stream that fails.
log.log (14.6 KB)

From the error messages I see there is something NULL. Is it related to a missing function or something else?

Thanks

Hi @JerryChang ,
I played a little with the settings on both driver and device tree.
I still fail in 2 tests out of 45 from the previous log I sent, but now I’m able to record the frames using the v4l2-ctl command without getting the “VI NULL errors.”

Now I wish to verify the recorded frames (the source is de-serializer pattern generator)
I can’t use gstreamer. I read here:

  1. I have the same AB24 format. What can I do in order to be able to display the video on GUI?
  2. What I need to do in order to pass the 2 tests out of 45.
    Thanks

hello BSP_User,

it might be an issue with v4l2 utility, since you’re able to fetch sensor via v4l2, you may ignore the failures of v4l2-compliance at the moment.

please revise the VI-5 to extend the pixel formats to support AB24 in your use-case.

Hi @JerryChang ,
Can you please instruct me how to do that?

I found the file:
$public_sources/kernel_src/kernel/nvidia/drivers/media/platform/tegra/camera/vi/vi5_formats.h

But I didn’t understand what I need to do in order to support the format and play it with gstreamer.

Thanks a lot.

hello BSP_User,

could you please try below…
$ gst-launch-1.0 nvv4l2camerasrc device=/dev/video0 num-buffers=300 ! 'video/x-raw(memory:NVMM),format=(string)BGRA, width=(int)1280, height=(int)1024,framerate=(fraction)60/1' ! videoconvert ! fpsdisplaysink video-sink=fakesink text-overlay=false sync=false -v

Hi @JerryChang ,
this is the output:

WARNING: erroneous pipeline: could not link nvv4l2camerasrc0 to videoconvert0, nvv4l2camerasrc0 can’t handle caps video/x-raw(memory:NVMM), format=(string)BGRA, width=(int)640, height=(int)480, framerate=(fraction)60/1

Hi @JerryChang ,
I wish to thank you for your help and patience. I’ve learned a lot.
I saw that on JP5.1.3 the v4l2 plugin doesn’t support RGB888 and it requires a patch.

We decided to go with YUV for now and it works.
I’ll close this thread and thank you again.