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.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.