Arducam ToF B0410 I2C bus error on NVIDIA Jetson Orin Nano DevKit Jetpack 6.2

Hi everyone. I’m stuck trying to get an Arducam ToF camera (B0410) working on an NVIDIA Jetson Orin Nano DevKit. When I run the Python example like ./preview_depth.py, it fails with:

Error: I2C bus name doesn't match any bus present!
Failed to open camera. Error code: TOFErrorCode.ArducamSystemError

The exact same module works perfectly on a Raspberry Pi 4, so I don’t think it’s a hardware fault. Has anyone seen this on Jetson?

Can you share a bit more about the setup? Which Jetpack version are you on, which Arducam kernel package did you install, and what does /etc/nv_tegra_release show? Also, which CSI connector is the camera plugged into, and have you tried the other connector?

Sure. It’s Jetpack 6.2 on the Orin Nano DevKit, and I installed this kernel package:

arducam-nvidia-l4t-kernel-t234-nx-5.15.136-tegra-36.3.0-20240521161750_arm64.deb

following the guide at Getting started: Arducam ToF Camera for Jetson - Arducam Wiki

/etc/nv_tegra_release output:

# R36 (release), REVISION: 3.0, GCID: 36191598, BOARD: generic, EABI: aarch64, DATE: Mon May  6 17:34:21 UTC 2024
# KERNEL_VARIANT: oot

I already tried both cam1 and cam0 connectors (it’s currently on cam1), and I also ran jetson-io.py to configure the CSI connector as the Arducam guide says. Still getting the same error every time.

Thanks, that helps. The I2C bus name doesn't match any bus present! error means the app is looking for an I2C bus that isn’t there on the Jetson. Can you run dmesg | grep -i arducam and paste the output? I want to see whether the sensor is probing at all.

Here’s the dmesg output:

[   10.593912] arducam-csi2 9-000c: firmware version: 0x10002
[   10.594221] arducam-csi2 9-000c: Sensor ID: 0x2311
[   10.656426] tegra-camrtc-capture-vi tegra-capture-vi: subdev arducam-csi2 9-000c bound
[   10.656975] arducam-csi2 9-000c: sensor arducam-csi2 9-000c registered
[   10.681557] arducam-csi2: arducam_read: Reading register 0x103 failed
[   10.681569] arducam-csi2 10-000c: probe failed
[   10.681591] arducam-csi2 10-000c: Failed to setup board.

Interesting. The device at I2C address 9-000c actually binds and registers fine (Sensor ID: 0x2311), but then a read of register 0x103 fails, and a second device at 10-000c fails to probe (Failed to setup board). That second failure is likely why the app can’t find the I2C bus it wants.

Could you also run v4l2-ctl -D -d /dev/video0 and paste the result? That’ll show how the V4L2 node is being presented.

Here it is:

Driver Info:
	Driver name      : tegra-video
	Card type        : vi-output, arducam-csi2 9-000c
	Bus info         : platform:tegra-capture-vi:2
	Driver version   : 5.15.136
	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.15.136
	Hardware revision: 0x00000003 (3)
	Driver version   : 5.15.136
Interface Info:
	ID               : 0x0300000b
	Type             : V4L Video
Entity Info:
	ID               : 0x00000009 (9)
	Name             : vi-output, arducam-csi2 9-000c
	Function         : V4L2 I/O
	Pad 0x0100000a   : 0: Sink
	 Link 0x0200000f: from remote pad 0x1000006 of entity '13e00000.host1x:nvcsi@15a00000-' (Unknown sub-device (0002000a)): Data, Enabled
Video input : 0 (Camera 2: no power)
Format Video Capture:
	Width/Height      : 240/180
	Pixel Format      : 'Y12 ' (12-bit Greyscale)
	Field             : None
	Bytes per Line    : 480
	Size Image        : 86400
	Colorspace        : sRGB
	Transfer Function : Default (maps to sRGB)
	YCbCr/HSV Encoding: Default (maps to ITU-R 601)
	Quantization      : Default (maps to Full Range)
	Flags             :

Thanks. The V4L2 node exists and reports Card type: vi-output, arducam-csi2 9-000c, but the input line shows Camera 2: no power, which matches the probe failure from dmesg. So one device comes up and the other doesn’t, and the app’s I2C bus name doesn't match any bus present! error ties into that missing bus/address.

We haven’t pinned down the root cause yet. Since the same module works on the RPi4, the hardware is probably fine and this looks like an I2C bus/address or probe issue specific to the Jetson. To investigate further, I’ve sent you remote access details in a private message — please check your inbox and reply there with the requested info so we can set up a session.

Thanks, I got the private message. I’ll double-check the cam1 ribbon seating and the jetson-io.py configuration again in the meantime, and I’ll reply privately with the access details.

To summarize where we are: the sensor at 9-000c binds and registers correctly (Sensor ID: 0x2311), but a subsequent read of register 0x103 fails and the companion device at 10-000c fails to probe (Failed to setup board). The V4L2 node reports vi-output, arducam-csi2 9-000c with Video input 0 (Camera 2: no power). Combined with the app error I2C bus name doesn't match any bus present!, everything points to an I2C bus/address configuration or probe issue specific to the Jetson — the module itself works on a Raspberry Pi 4. We’re still investigating the exact root cause and will continue via the remote session I set up privately.