IMX219 CSI Camera not working on Jetson Orin Nano Super Kit

I’m aware that there are several post already on this topic.
However, after a deep dive on those posts I’m convinced that none of them is matching my case.

Briefly: I’m on Jetpack 6.2.1 with L4T 36.4.4.
I’ve connected a IMX219 (a Raspberry Pi V2) CSI camera on my Jetson Orin Nano.

The device seems to be detected. For example, if I check:

$ ls /dev/video\*

yields

/dev/video0

shows that the camera is exist on video0.

  • However, when I launch $ nvgstcapture-1.0 it yields a black screen and an output log that contains Argus errors messages, namely:
(Argus) Error FileOperationFailed: Connecting to nvargus-daemon failed: No such file or directory (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 205)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 107)
bitrate = 4000
  • I start inspecting the issue using v4l tools. I installed:
sudo apt-get install v4l-utils
  • With it, I inspected the input device as:
$ v4l2-ctl --list-dev
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca):
	/dev/media0

vi-output, imx219 9-0010 (platform:tegra-capture-vi:2):
	/dev/video0
  • … and further checked
$ v4l2-ctl --stream-mmap -c bypass_mode=0
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
...
  • At this point, I suspect that device is there but perhaps wrongly initialized.
    I proceed to check the dmesg as
$ sudo dmesg | grep imx
[sudo] password for wme7: 
[   10.710867] imx219 9-0010: tegracam sensor driver:imx219_v2.0.6
[   10.728300] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx219 9-0010 bound
[   10.752034] imx219 10-0010: tegracam sensor driver:imx219_v2.0.6
[   10.762630] imx219 10-0010: imx219_board_setup: error during i2c read probe (-121)
[   10.767728] imx219 10-0010: board setup failed
[   10.767784] imx219: probe of 10-0010 failed with error -121
  • I’m suspecting a miss-configuration the Jetson-io. So, I execute:
$ cd /opt/nvidia/jetson-io/
$ sudo python jetson-io.py

and configure [24pin CSI] → [Camera IMX219 Dual] → [Save and reboot].

However, I’m still getting the same dmesg-log as before.
Any ideas to resolve this issue would be warmly appreciated !

– wme7

Hi @wme7 ,

I hope you are doing well.

A quick question first: are you using one IMX219 camera or two?

From your dmesg logs:

[   10.710867] imx219 9-0010: tegracam sensor driver:imx219_v2.0.6
[   10.728300] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx219 9-0010 bound

This shows that the IMX219 on I²C bus 9, address 0x10 is successfully detected and bound as /dev/video0. If you have only one camera connected, then the following error for the second sensor is expected:

[   10.752034] imx219 10-0010: tegracam sensor driver:imx219_v2.0.6
[   10.762630] imx219 10-0010: imx219_board_setup: error during i2c read probe (-121)
[   10.767728] imx219 10-0010: board setup failed

To confirm that the camera on bus 9 is correctly detected and claimed by the kernel, please run:

sudo i2cdetect -y -r 9

You should see UU at address 0x10 on bus 9, which indicates the kernel driver is bound to that device.

Additionally, please test the Argus camera stack directly using this minimal pipeline:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! fakesink

This will help determine whether the issue is with the camera driver or with the Argus stack.

Best regards,
Nico
Embedded Software Engineer at ProventusNova

Hi Nico,

I’m doing good, thank you a lot!
I hope you are good too : )

  • Are you using one IMX219 camera or two? → yes, is only one camera.

  • Please run sudo i2cdetect -y -r 9 → [right away!]

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

Indeed, I see UU at address 0x10 on bus 9 as you expected.

  • Test Argus camera stack directly using gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! fakesink → [right away!]
$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! fakesink
(Argus) Error FileOperationFailed: Connecting to nvargus-daemon failed: No such file or directory (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 205)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 107)
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:789 Failed to create CameraProvider
Redistribute latency...
Got EOS from element "pipeline0".
Execution ended after 0:00:00.016510372
Setting pipeline to NULL ...
Freeing pipeline ...

In order words: I have an issue with the Argus stack.

Then the question now is: how can I fix this?

Success !!

A little digging on Argus service led me to the this post.

It seems like the nvargus-daemon is not working well after a system restart, therefore we can restart this service by calling:

sudo systemctl restart nvargus-daemon.service

Then running:

nvgstcapture-1.0

I got:

1 Like

Hi @wme7,

Glad to hear you were able to capture with your IMX219!

Feel free to reach out for further support.

Best regards,
Nico
Embedded Software Engineer at ProventusNova

1 Like

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