Dual Sony IMX219 i2c error during read probe (-121), Not showing in /dev/video0 & /dev/video1 for Jetson Nano B01

Hi I’m Aiden and I’m new to Jetson Nano development.

I’m trying to get two Sony IMX219 working with the Jetson Nano with these respectively 3449-0000-400 and 3448-0000-402.

uname -r yeilds:
$uname -r
4.9.201-tegra

sudo apt-cache show nvidia-jetpack yeilds:

Package: nvidia-jetpack
Version: 4.5.1-b17
Architecture: arm64
Maintainer: NVIDIA Corporation
Installed-Size: 194
Depends: nvidia-cuda (= 4.5.1-b17), nvidia-opencv (= 4.5.1-b17), nvidia-cudnn8 (= 4.5.1-b17), nvidia-tensorrt (= 4.5.1-b17), nvidia-visionworks (= 4.5.1-b17), nvidia-container (= 4.5.1-b17), nvidia-vpi (= 4.5.1-b17), nvidia-l4t-jetson-multimedia-api (>> 32.5-0), nvidia-l4t-jetson-multimedia-api (<< 32.6-0)
Homepage: Autonomous Machines | NVIDIA Developer
Priority: standard
Section: metapackages
Filename: pool/main/n/nvidia-jetpack/nvidia-jetpack_4.5.1-b17_arm64.deb
Size: 29390
SHA256: 13c10e9a53ec51c261ce188d626966dfca27f26b2ed94ba700147c1ba3e35399
SHA1: 81047a7779241bbf16763dbd1c4c12cf8c9d0496
MD5sum: 54916439514f39af5234b3a43e329910
Description: NVIDIA Jetpack Meta Package
Description-md5: ad1462289bdbc54909ae109d1d32c0a8

Package: nvidia-jetpack
Version: 4.5-b129
Architecture: arm64
Maintainer: NVIDIA Corporation
Installed-Size: 194
Depends: nvidia-cuda (= 4.5-b129), nvidia-opencv (= 4.5-b129), nvidia-cudnn8 (= 4.5-b129), nvidia-tensorrt (= 4.5-b129), nvidia-visionworks (= 4.5-b129), nvidia-container (= 4.5-b129), nvidia-vpi (= 4.5-b129), nvidia-l4t-jetson-multimedia-api (>> 32.5-0), nvidia-l4t-jetson-multimedia-api (<< 32.6-0)
Homepage: http://developer.nvidia.com/jetson
Priority: standard
Section: metapackages
Filename: pool/main/n/nvidia-jetpack/nvidia-jetpack_4.5-b129_arm64.deb
Size: 29358
SHA256: 9ee354a66d932a3fbb244c926f333143a845c627c6981d108e01df2958ac462c
SHA1: 0e07f27c6fb9e34a70c69ae1150d1e578e938089
MD5sum: a551bbc8ff653c8983ce1804082bbcab
Description: NVIDIA Jetpack Meta Package
Description-md5: ad1462289bdbc54909ae109d1d32c0a8

The cameras are connected via an Arducam hdmi-csi2 convertor module.

The cameras do not appear instantiate there respective /dev/video0 or /dev/video1

these are the following dmesg:

$dmesg |grep i2c
[ 0.463867] iommu: Adding device 546c0000.i2c to group 22
[ 0.465335] tegra-pmc 7000e400.pmc: i2c-thermtrip node not found, emergency thermal reset disabled.
[ 0.518368] iommu: Adding device 7000c000.i2c to group 25
[ 0.518620] iommu: Adding device 7000c400.i2c to group 26
[ 0.518876] iommu: Adding device 7000c500.i2c to group 27
[ 0.519131] iommu: Adding device 7000c700.i2c to group 28
[ 0.519408] iommu: Adding device 7000d000.i2c to group 29
[ 0.519666] iommu: Adding device 7000d100.i2c to group 30
[ 1.329899] i2c /dev entries driver
[ 1.331557] i2c i2c-6: Added multiplexed i2c bus 7
[ 1.331941] i2c i2c-6: Added multiplexed i2c bus 8
[ 1.331946] i2c-mux-gpio cam_i2cmux: 2 port mux on Tegra I2C adapter adapter
[ 1.355847] tegra-vii2c 546c0000.i2c: no acknowledge from address 0x10
[ 1.355926] imx219 7-0010: imx219_board_setup: error during i2c read probe (-121)
[ 1.379849] tegra-vii2c 546c0000.i2c: no acknowledge from address 0x10
[ 1.379942] imx219 8-0010: imx219_board_setup: error during i2c read probe (-121)

$dmesg | grep imx219
[ 1.332553] imx219 7-0010: tegracam sensor driver:imx219_v2.0.6
[ 1.355926] imx219 7-0010: imx219_board_setup: error during i2c read probe (-121)
[ 1.356001] imx219 7-0010: board setup failed
[ 1.356055] imx219: probe of 7-0010 failed with error -121
[ 1.356535] imx219 8-0010: tegracam sensor driver:imx219_v2.0.6
[ 1.379942] imx219 8-0010: imx219_board_setup: error during i2c read probe (-121)
[ 1.380033] imx219 8-0010: board setup failed
[ 1.380115] imx219: probe of 8-0010 failed with error -121

these are the following i2c devices:

$ i2cdetect -l
i2c-3 i2c 7000c700.i2c I2C adapter
i2c-1 i2c 7000c400.i2c I2C adapter
i2c-8 i2c i2c-6-mux (chan_id 1) I2C adapter
i2c-6 i2c Tegra I2C adapter I2C adapter
i2c-4 i2c 7000d000.i2c I2C adapter
i2c-2 i2c 7000c500.i2c I2C adapter
i2c-0 i2c 7000c000.i2c I2C adapter
i2c-7 i2c i2c-6-mux (chan_id 0) I2C adapter
i2c-5 i2c 7000d100.i2c I2C adapter

Do the i2c addresses look correct?

How do I tell the tegracam sensor driver to read the correct i2c addresses if incorrect?

Does the tegracam sensor driver instantiate /dev/video0 and /dev/video0 when a correct read probe of the i2c?

Thank you for your help in advance :-)

Yes, if i2c unable communicate with the sensor the device would be generated.
Have a check below document for more information.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/camera_sensor_prog.47.1.html

Thanks Shane, much appreciated.

The problem was down to a combination of using a optical hdmi cable and presumably the pinouts are slightly different to standard hdmi 2.0 spec and I did a apt update and upgrade and this instantiated the cameras with the hdmi to csi bridges in place, now both cameras are working :-)

Thanks for your clarify.
For your case could be the i2c bus number change due to HDMI i2c bus. You may need to change the bus number in the sensor scope in device tree for it.

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