Jetson orin nano dev kit and RPI hq camera IMX477R are compatible?

I’m trying to use this camera, but have only troubles - Jetson orin nano dev kit don’t want to see it at all. Checked forums and found that to use this camera, I need to remove resistor r8. And after I did it - still orin cannot see this camera. sudo /opt/nvidia/jetson-io/jetson-io.py changed CSI - no luck here either. I can’t use j20(as suggested in some articles). There is a lot ifo about jatson nano, but just a few about jetson Orin nano. So tell me, please, is it possible to use this camera with my board, or should I give up and find another camera module?

Suppose Orin devkit default support IMX477 by jetson-io.
Did you verify on which BSP?
Did you check the kernel message? sudo dmesg | grep -i imx477

Thank you for fast reply.
sudo dmesg | grep -i imx477
[ 12.343623] imx477 9-001a: tegracam sensor driver:imx477_v2.0.6
[ 12.644695] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx477 9-001a bound
[ 12.647194] imx477 10-001a: tegracam sensor driver:imx477_v2.0.6
[ 12.948530] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx477 10-001a bound
I flashed with sdk manager and did it by following step by step getting started guide.

If I do:
cheese
** Message: 13:53:01.006: cheese-application.vala:214: Error during camera setup: No device found

Right now I have two rpi hq cameras, in cam0 - module with removed r8, cam1 with r8 - no difference.

v4l2-ctl --list-devices
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca):
/dev/media0

vi-output, imx477 9-001a (platform:tegra-capture-vi:1):
/dev/video0

vi-output, imx477 10-001a (platform:tegra-capture-vi:2):
/dev/video1

I have this warn when I run simple opencv stream python script:
global …/modules/videoio/src/cap_gstreamer.cpp (1758) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error.
but after this article and correcting script i got this
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected…
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 3840 x 2160 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 1920 x 1080 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 1
Output Stream W = 1920 H = 1080
seconds to Run = 0
Frame Rate = 59.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
[ WARN:0] global …/modules/videoio/src/cap_gstreamer.cpp (935) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
GST_ARGUS: Cleaning up
CONSUMER: Done Success
GST_ARGUS: Done Success

Please confirm below command able get data from the sensor.

nvidia@nvidia-desktop:~$ v4l2-ctl --set-fmt-video=width=3840,height=2160,pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 29.88 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 29.88 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 29.88 fps

~$ v4l2-ctl --set-fmt-video=width=3840,height=2160,pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
and it’s going and going same

Interesting that if I run in terminal:
gst-launch-1.0 nvarguscamerasrc ! ‘video/x-raw(memory:NVMM),width=1280, height=720, framerate=21/1, format=NV12’ ! nvvidconv flip-method=0 ! ‘video/x-raw,width=960, height=616’ ! nvvidconv ! nvegltransform ! nveglglessink -e
cam0 start streaming video as should, but not cheese, neither opencv can’t make camera’s work as suppose.
For example here is output for opencv script:

import cv2 as cv

def testDevice(source):
cap = cv.VideoCapture(source)
if cap is None or not cap.isOpened():
print('Warning: unable to open video source: ', source)

testDevice(0) # no printout
testDevice(1) # prints message
output:
[ WARN:0@0.047] global cap_gstreamer.cpp:2784 handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error.
[ WARN:0@0.047] global cap_gstreamer.cpp:1679 open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0@0.047] global cap_gstreamer.cpp:1164 isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ WARN:0@0.070] global cap_gstreamer.cpp:2784 handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src1 reported: Internal data stream error.
[ WARN:0@0.070] global cap_gstreamer.cpp:1679 open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0@0.070] global cap_gstreamer.cpp:1164 isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ WARN:0@0.070] global cap_v4l.cpp:982 open VIDEOIO(V4L2:/dev/video1): can’t open camera by index
[ WARN:0@0.080] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=3, req=-2140645888
[ WARN:0@0.080] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 25
[ WARN:0@0.080] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=3, req=-2140645888
[ WARN:0@0.080] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 25
[ WARN:0@0.080] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=3, req=-2140645888
[ WARN:0@0.080] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 25
[ WARN:0@0.080] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=3, req=-2140645888
[ WARN:0@0.080] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 25
[ERROR:0@0.081] global obsensor_uvc_stream_channel.cpp:156 getStreamChannelGroup Camera index out of range
Warning: unable to open video source: 1

if to try the same script but without “testDevice(1) # prints message”:
[ WARN:0@0.047] global cap_gstreamer.cpp:2784 handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error.
[ WARN:0@0.047] global cap_gstreamer.cpp:1679 open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0@0.047] global cap_gstreamer.cpp:1164 isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created

So what should I do if camera is working threw gst-launch-1.0 nvarguscamerasrc, but threw opencv and “cheese” - no?

I don’t think cheese can work for Bayer sensor. Also if OpenCv use v4l2src that wouldn’t work for Bayer sensor too. You may check the OpenCv by using nvarguscamerasrc as cv.VideoCapture.

Thanks

@4study2006
Did the camera (RPi HQ) get detected for you in the first run on the Jetson Orin nano? when i run v4l2-ctl --list-devices, I get this response “Cannot open device /dev/video0, exiting”.

At the beginning I also had this issue, but somewhere on forums I found solution for this. Unfortunately I don’t remember now how exactly I fixed it. But after all both my cameras are working now, even without removing resistor r8. Just instead of using:
cap = cv.VideoCapture(0)
cap1 = cv.VideoCapture(1)
use
cap = cv.VideoCapture(“nvarguscamerasrc sensor-id=0 ! video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1 ! nvvidconv flip-method=2 ! video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! appsink drop=1”)
cap1 = cv.VideoCapture(“nvarguscamerasrc sensor-id=1 ! video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1 ! nvvidconv flip-method=2 ! video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! appsink drop=1”)

1 Like

Oh, upd. Remembered!
sudo /opt/nvidia/jetson-io/jetson-io.py
and configure jetson CSI Connector

Just to mention it here, did you use jetson-io.py to install any drivers? as mentioned here
Unfortunately i cannot find the jetson-io module in my OS. I dont know how to proceed

Just run in terminal:
sudo /opt/nvidia/jetson-io/jetson-io.py
and if you will see any mistakes - google them:)
If not follow- this this steps, and you should receive relief.
I’m not sure that this configuration is installing drivers, but it worked for me.