IMX477 12 MP arducam freezing and not recording

v42l-ctl.txt (3.6 KB)
dmesg.txt (70.1 KB)
Untitled document.pdf (135.4 KB)

Hello,

I am a Newbie, currently trying to set up a IMX 477 Arducam with a Jetson ORIN DK. There seem to be some issues when it comes to recording videos. When a line of code is ran, it completely freezes and reboots.

The screen reads:

"Setting Pipeline to PAUSED … "

I have followed the instructions from ArduCam to the teeth. (Toubleshoot - Arducam Wiki) I believe I am heading into a rabbit hole.

Following the Arducams website and its troubleshoot section that this seems to be a connectivity issue. I have changed the AWM cord (22 pin) few times to cross that out of the list, I have also changed the camera to a different camera (same model) , I have reinstalled the OS on the Orin( 32 and 35 L4T). This camera was previously working on a Jetson nano without any issues.

Do you have any suggestions and/or ideas what this might be? I have included some information to whats connected and tested connectivity.

V4l2-ctl-all

orin1@orin1-desktop:~$ v4l2-ctl --all
Driver Info:
Driver name : tegra-video
Card type : vi-output, imx477 9-001a
Bus info : platform:tegra-capture-vi:1
Driver version : 5.10.192
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : tegra-camrtc-ca
Model : NVIDIA Tegra Video Input Device
Serial :
Bus info :
Media version : 5.10.192
Hardware revision: 0x00000003 (3)
Driver version : 5.10.192
Interface Info:
ID : 0x0300000b
Type : V4L Video
Entity Info:
ID : 0x00000009 (9)
Name : vi-output, imx477 9-001a
Function : V4L2 I/O
Pad 0x0100000a : 0: Sink
Link 0x0200000f: from remote pad 0x1000003 of entity ‘13e40000.host1x:nvcsi@15a00000-’: Data, Enabled
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
Width/Height : 4032/3040
Pixel Format : ‘RG10’ (10-bit Bayer RGRG/GBGB)
Field : None
Bytes per Line : 8064
Size Image : 24514560
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :

Camera Controls

             	group_hold 0x009a2003 (bool)   : default=0 value=0 flags=execute-on-write
            	sensor_mode 0x009a2008 (int64)  : min=0 max=3 step=1 default=0 value=0 flags=slider
                   	gain 0x009a2009 (int64)  : min=16 max=357 step=1 default=16 value=16 flags=slider
               	exposure 0x009a200a (int64)  : min=13 max=683710 step=1 default=2495 value=13 flags=slider
             	frame_rate 0x009a200b (int64)  : min=2000000 max=21000000 step=1 default=21000000 value=2000000 flags=slider
   	sensor_configuration 0x009a2032 (u32)	: min=0 max=4294967295 step=1 default=0 [22] flags=read-only, volatile, has-payload
 	sensor_mode_i2c_packet 0x009a2033 (u32)	: min=0 max=4294967295 step=1 default=0 [1026] flags=read-only, volatile, has-payload
sensor_control_i2c_packet 0x009a2034 (u32)	: min=0 max=4294967295 step=1 default=0 [1026] flags=read-only, volatile, has-payload
            	bypass_mode 0x009a2064 (intmenu): min=0 max=1 default=0 value=0
		 0: 0 (0x0)
		 1: 1 (0x1)
        	override_enable 0x009a2065 (intmenu): min=0 max=1 default=0 value=0
		 0: 0 (0x0)
		 1: 1 (0x1)
           	height_align 0x009a2066 (int)	: min=1 max=16 step=1 default=1 value=1
             	size_align 0x009a2067 (intmenu): min=0 max=2 default=0 value=0
		 0: 1 (0x1)
		 1: 65536 (0x10000)
		 2: 131072 (0x20000)
       	write_isp_format 0x009a2068 (int)	: min=1 max=1 step=1 default=1 value=1
sensor_signal_properties 0x009a2069 (u32)	: min=0 max=4294967295 step=1 default=0 [30][18] flags=read-only, has-payload
	sensor_image_properties 0x009a206a (u32)	: min=0 max=4294967295 step=1 default=0 [30][16] flags=read-only, has-payload
sensor_control_properties 0x009a206b (u32)	: min=0 max=4294967295 step=1 default=0 [30][36] flags=read-only, has-payload
      	sensor_dv_timings 0x009a206c (u32)	: min=0 max=4294967295 step=1 default=0 [30][16] flags=read-only, has-payload
       	low_latency_mode 0x009a206d (bool)   : default=0 value=0
       	preferred_stride 0x009a206e (int)	: min=0 max=65535 step=1 default=0 value=0
           	sensor_modes 0x009a2082 (int)	: min=0 max=30 step=1 default=30 value=3 flags=read-only

Stats from sudo i2cdetectr -l

i2c-3 i2c 3190000.i2c I2C adapter
i2c-10 i2c i2c-2-mux (chan_id 1) I2C adapter
i2c-1 i2c c240000.i2c I2C adapter
i2c-8 i2c 31e0000.i2c I2C adapter
i2c-6 i2c 31c0000.i2c I2C adapter
i2c-4 i2c Tegra BPMP I2C adapter I2C adapter
i2c-11 i2c NVIDIA SOC i2c adapter 0 I2C adapter
i2c-2 i2c 3180000.i2c I2C adapter
i2c-0 i2c 3160000.i2c I2C adapter
i2c-9 i2c i2c-2-mux (chan_id 0) I2C adapter
i2c-7 i2c c250000.i2c I2C adapter
i2c-5 i2c 31b0000.i2c I2C adapter


orin1@orin1-desktop:~$ sudo i2cdetect -y 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – UU – – –
40: – – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – – – – – – –
70: – – – – – – – –


[sudo] password for orin1:
[ 0.002446] DTS File Name: /home/jenkins/agent/workspace/n_nano_kernel_l4t-35.5.0-arducam/kernel/kernel-5.10/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t23x/p3768/kernel-dts/tegra234-p3767-0003-p3768-0000-a0.dts
[ 16.310396] nv_imx477: no symbol version for module_layout
[ 16.317450] imx477 9-001a: tegracam sensor driver:imx477_v2.0.6
[ 16.619250] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx477 9-001a bound
[ 16.621863] imx477 10-001a: tegracam sensor driver:imx477_v2.0.6
[ 16.922653] imx477 10-001a: imx477_board_setup: error during i2c read probe (-121)
[ 16.930548] imx477 10-001a: board setup failed
[ 16.935272] imx477: probe of 10-001a failed with error -121

hello heizalo,

according to below, you should have at least one camera node (i.e. /dev/video0) register to linux system, right?

is the attach logs file, dmesg.txt (70.1 KB) with complete messages?
I don’t see any related failures reported.

Yes, the camera is connected to 0, only one camera connected.

is the attach logs file, dmesg.txt (70.1 KB) with complete messages?

This was generated right after boot-up. I want to say that, yes that’s correct.
After troubleshooting few times, I am able to get live stream and it seems that there are few issues with perhaps the driver? Which I am not sure at 100%. The more I try the more I believe this is in relation to the encoding part of things.

simple code such as:

" gst-launch-1.0 nvarguscamerasrc ! “video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, framerate=(fraction)60/1” ! nvvidconv ! “video/x-raw, format=(string)I420” ! nveglglessink"

seem to work to show live imaging, but once you start adding the encoders thats when it starts crashing. Here are few encoders that I have tried so far:

nvv4l2h264enc and h264parse
qtmux
omxh264enc

I though this was an issue of flow of data between different elements so I tried “queue” just in case to see if this might help. But this still seems to be the same outcome.

Perhaps, I should be heading into a different way to handle things around. I have been reading perhaps that compilation might be the best way to go around this? If so what might be the best way to start getting into this?

hello heizalo,

let’s narrow down this by checking with sensor basic functionality and also stability.
you may disable preview and shows frame-rate only for confirmation.
for instance,
$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvvidconv ! fpsdisplaysink text-overlay=0 name=sink_0 video-sink=fakesink sync=0 -v

test-nopreview.txt (8.6 KB)
Here is the file after it was ran

hello heizalo,

let’s give it another try with following.
it’ll enable preview stream and also perform video recording.
for instance,
$ gst-launch-1.0 nvarguscamerasrc num-buffers=300 ! 'video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)NV12, framerate=(fraction)30/1' ! tee name=streams streams. ! queue ! nvv4l2h265enc bitrate=8000000 ! h265parse ! qtmux ! filesink location=h265.mp4 streams. ! queue ! nvvidconv ! xvimagesink -e