ZED X on Xavier NX Developer Kit - Camera not detected

Hi,
I recently adquired a ZED X kit and am currently having troubles with the camera detection.
I’m following the tutorial “Setting up ZED X on Xavier NX Developer Kits”. On my first attempt, I formatted and installed Jetpack 5.1.2 on the corresponding Micro SD card to then proceed to the ZED SDK and ZED X driver installation, using “ZED SDK for JetPack 5.1.2 (L4T 35.4)” and “ZED X Driver v0.6.1 for JetPack 5.1.2 (L4T 35.4)” respectively.

After shuting down the Xavier NX, checking camera connections and restarting the device, I executed the “sudo dmesg | grep zedx” command, but no information was displayed.
I’ve also tried the ZED_Diagnostic tool, which on execution marks with an X the Camera Test module and displays the next message:
“Camera not detected - Make sure the camera is plugged in or try another USB 3.0 port.”

I’m pretty sure both CSI cables and the power supply are working and connected correctly, so I tried with the jetpack 5.1.1 and ZED SDK and ZEDX driver for that version but the problem persists.

I’m looking for advice on how to track the source of the detection problem.
Thank you

Hi @NVG97
Welcome to the Stereolabs community.

Please post a picture of the cable connections so we can check it. Are you correctly powering the GMSL2 capture card?

Can you also please run the command $ sudo ZED_Diagnostic --dmesg and send the dmesg.log file that it generates?

Jetpack 5.1.2 with ZED SDK 4.0.7 and ZED X Driver v0.6.1 is a good configuration to leverage the latest improvements.

Hi @Myzhar!!
Thank you for the fast response. Here are the files you asked for:

Picture of the cable connections:

I’m powering the GMSL2 with a AC/DC Adapter of output 12V - 4A and tried connecting the camera with 2 different ends of FAKREA cable, the ones marked with 1 and 4.

The output of the ZED_Diagnostic tool is the next:

{
    "AI Models": {
        "info": [
            "MULTI CLASS DETECTION is not optimized",
            "MULTI CLASS MEDIUM DETECTION is not optimized",
            "MULTI CLASS ACCURATE DETECTION is not optimized",
            "HUMAN BODY FAST DETECTION is not optimized",
            "HUMAN BODY MEDIUM DETECTION is not optimized",
            "HUMAN BODY ACCURATE DETECTION is not optimized",
            "HUMAN BODY 38 FAST DETECTION is not optimized",
            "HUMAN BODY 38 MEDIUM DETECTION is not optimized",
            "HUMAN BODY 38 ACCURATE DETECTION is not optimized",
            "PERSON HEAD DETECTION is not optimized",
            "PERSON HEAD ACCURATE DETECTION is not optimized",
            "REID ASSOCIATION is not optimized",
            "NEURAL DEPTH is not optimized"
        ]
    },
    "Camera Test": {
        "InternalDevicesCount": 0,
        "ZEDCount": 0,
        "error": [
            "<b>Camera not detected</b> <br/> Make sure the camera is plugged in or try another USB 3.0 port."
        ]
    },
    "Devices": {
        "CorruptedFirmware": false,
        "GMSLList": [
        ],
        "USBList": [
            {
                "USB_path": "/3",
                "idProduct": "0x0489",
                "idVendor": "0x0bda"
            },
            {
                "USB_path": "/3",
                "idProduct": "0x3549",
                "idVendor": "0x13d3"
            },
            {
                "USB_path": "/2/2",
                "idProduct": "0xc247",
                "idVendor": "0x046d"
            },
            {
                "USB_path": "/2/1",
                "idProduct": "0x304a",
                "idVendor": "0x03f0"
            },
            {
                "USB_path": "/2",
                "idProduct": "0x5489",
                "idVendor": "0x0bda"
            }
        ],
        "ZEDDetected": null,
        "notTested": [
            "Please connect a camera to test the USB connection."
        ]
    },
    "Graphics Card": {
        "deviceCount": 1,
        "deviceDriverVersion": 11040,
        "devices": [
            {
                "arch": "Volta",
                "computeCapability": "7.2",
                "cores": 768,
                "name": "Xavier",
                "totalMemoryBytes": "7181107200",
                "totalMemoryMB": 6848.4375
            }
        ],
        "glx_info": "OpenGL vendor string: NVIDIA Corporation\nOpenGL renderer string: NVIDIA Tegra Xavier (nvgpu)/integrated\nOpenGL core profile version string: 4.6.0 NVIDIA 35.3.1\nOpenGL core profile shading language version string: 4.60 NVIDIA\nOpenGL core profile context flags: (none)\nOpenGL core profile profile mask: core profile\nOpenGL core profile extensions:\nOpenGL version string: 4.6.0 NVIDIA 35.3.1\nOpenGL shading language version string: 4.60 NVIDIA\nOpenGL context flags: (none)\nOpenGL profile mask: (none)\nOpenGL extensions:\nOpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 35.3.1\nOpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20\nOpenGL ES profile extensions:\n",
        "initResult": 0,
        "valid": [
            "<b>Graphics card: </b> Xavier"
        ]
    },
    "Processor": {
        "OS": "Ubuntu 20.04.5 LTS ",
        "avxSupported": false,
        "coreCount": "6",
        "cpu": " ARMv8 Processor rev 0 (v8l)",
        "datetime": "2023-10-05 11:04:45",
        "hyperThreading": "0",
        "motherboard": "NVIDIA Jetson Xavier NX Developer Kit, Unknown",
        "ramCapacity": "7,181107",
        "ramUsage": "",
        "ramUsed": "3,348742",
        "threadCount": "6",
        "valid": [
            "<b>Processor: </b>  ARMv8 Processor rev 0 (v8l)",
            "<b>Motherboard: </b> NVIDIA Jetson Xavier NX Developer Kit, Unknown"
        ]
    },
    "ZED SDK": {
        "CUDA Toolkit version": "V11.4.315 -->located in /usr/local/cuda-11.4/bin/nvcc",
        "CUDA loading": false,
        "ZED SDK Version (Diag)": "4.0.7",
        "ZED SDK Version (RT)": "4.0.7",
        "ai": {
            "checkAI": true,
            "cudaVersion": 11040,
            "cudnnCudartVersion": 11040,
            "cudnnVersion": 8600,
            "cudnnVersionExpected": 8600,
            "tensorVersion": 8502
        },
        "binFiles": [
            "libsl_ai.so",
            "libsl_zed.so",
            "libsl_zed_static.a"
        ],
        "resourcesFiles": [
        ],
        "resourcesFilesExpected": [
            "objects_performance_3.2"
        ],
        "valid": [
            "<b>ZED SDK version:</b> 4.0.7",
            "<b>CUDA version:</b> V11.4.315"
        ]
    }
}

Consider that this output was generated with jetpack 5.1.1 and the corresponding ZED SDK and ZED X driver. I’ll install the updated versions again in the meantime.

please run this command with the --dmesg option, it will perform a series of tests specific for ZED X.

Sorry for the confusion. Here is the dmesg.log file:

Created: jue. oct. 5 2023

###########################################
############ DMESG [ZEDX] LOG #############
###########################################


###########################################
############ DMESG [DTS] LOG #############
###########################################

[    0.006750] DTS File Name: /home/louis/Documents/jetson/QA/35.3/jetson-gmsl-kernel/src/kernel/kernel-5.10/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-0000-p3509-0000.dts
[    1.013626] tegra-pmc c360000.pmc: scratch reg offset dts data not present

###########################################
############ DTB list original  ###########
###########################################

/boot/dtb/kernel_tegra194-p3668-0000-p3509-0000.dtb

###########################################
############ DTB list SLabs     ###########
###########################################

/boot/stereolabs/tegra194-p2888-0001-p2822-0000.dtb
/boot/stereolabs/tegra194-p3668-0000-p3509-0000.dtb
/boot/stereolabs/tegra194-p3668-0001-p3509-0000.dtb
/boot/stereolabs/tegra234-p3701-0000-p3737-0000.dtb
/boot/stereolabs/tegra234-p3767-0000-p3509-a02.dtb
/boot/stereolabs/tegra234-p3767-0000-p3768-0000-a0.dtb
/boot/stereolabs/tegra234-p3767-0001-p3509-a02.dtb
/boot/stereolabs/tegra234-p3767-0003-p3768-0000-a0.dtb

/boot/stereolabs/utils:
extlinux.py
fio.py
__pycache__

###########################################
############ EXTlinux file      ###########
###########################################

TIMEOUT 30
DEFAULT Stereolabs

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      FDT /boot/dtb/kernel_tegra194-p3668-0000-p3509-0000.dtb
      INITRD /boot/initrd
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 video=efifb:off 

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    FDT /boot/dtb/kernel_tegra194-p3668-0000-p3509-0000.dtb
#    INITRD /boot/initrd
#    APPEND ${cbootargs}


LABEL Stereolabs
	MENU LABEL Stereolabs kernel
	LINUX /boot/Image
	FDT /boot/stereolabs/tegra194-p3668-0000-p3509-0000.dtb
	INITRD /boot/initrd
	APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 video=efifb:off

####################################
############ Driver list ###########
####################################

/usr/lib/modules/5.10.104-tegra/kernel/drivers/stereolabs/max96712/max96712.ko==> exists
/usr/lib/modules/5.10.104-tegra/kernel/drivers/stereolabs/zedx/sl_zedx.ko ==> exists

################################################
############ ZEDX Daemon Status LS #############
################################################

● zed_x_daemon.service - ZED-X Daemon service
     Loaded: loaded (/etc/systemd/system/zed_x_daemon.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-10-05 12:01:01 -03; 2min 7s ago
   Main PID: 1399 (ZEDX_Daemon)
      Tasks: 3 (limit: 8125)
     Memory: 18.4M
     CGroup: /system.slice/zed_x_daemon.service
             └─1399 /usr/sbin/ZEDX_Daemon

oct 05 12:01:01 wildsense-Xavier systemd[1]: Started ZED-X Daemon service.
oct 05 12:01:01 wildsense-Xavier ZEDX_Daemon[1399]: [ "jue. oct. 5 12:01:01 2023" ]  ** Start ZED-X Daemon
oct 05 12:01:02 wildsense-Xavier ZEDX_Daemon[1399]: [ "jue. oct. 5 12:01:02 2023" ]   Process  "rmmod sl_zedx" outputs  "rmmod: ERROR: Module sl_zedx is not currently loaded\n"
oct 05 12:01:02 wildsense-Xavier ZEDX_Daemon[1399]: ** ZED-X Driver loaded
oct 05 12:01:02 wildsense-Xavier ZEDX_Daemon[1399]: [ "jue. oct. 5 12:01:02 2023" ]  ** Created Endpoint  "tcp://127.0.0.1:20026"

################################################
############ I2C Trace  [-l]       #############
################################################

i2c-3	i2c       	3190000.i2c                     	I2C adapter
i2c-1	i2c       	c240000.i2c                     	I2C adapter
i2c-101	i2c       	15210000.display                	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-2	i2c       	3180000.i2c                     	I2C adapter
i2c-0	i2c       	3160000.i2c                     	I2C adapter
i2c-7	i2c       	c250000.i2c                     	I2C adapter
i2c-5	i2c       	31b0000.i2c                     	I2C adapter

################################################
############ I2C Trace /dev/i2C-30 #############
################################################

Error: Could not open file `/dev/i2c-30' or `/dev/i2c/30': No such file or directory

################################################
############ I2C Trace /dev/i2C-31 #############
################################################

Error: Could not open file `/dev/i2c-31' or `/dev/i2c/31': No such file or directory

################################################
############ I2C Trace /dev/i2C-32 #############
################################################

Error: Could not open file `/dev/i2c-32' or `/dev/i2c/32': No such file or directory

################################################
############ I2C Trace /dev/i2C-33 #############
################################################

Error: Could not open file `/dev/i2c-33' or `/dev/i2c/33': No such file or directory
#########################

Can you confirm that the CSI cables are correct? (15 pin 1mm pitch with opposite side contact)

Hello again @Myzhar.

Yes, I’m possitive is a 15 pin 1mm pitch opposite side contact.
Here’s a picture just in case.

Update:
I tried using the ZED X in a Xavier AGX Developer Kit (Not NX) and noticed that the GMSL2 turned on a green LED. Does the GMSL2 LED inidicate that the capture card is being powered or does it only turn on when using the specific connection for the Xavier AGX?

May I add up that I’ve tried with 2 different 19V chargers, measuring the input with a tester, and none of them turned on the LED when working with the Xavier NX.

Sadly I haven’t been able to test it in the AGX because of booting problems. Still, only by connecting the card and powering the Jetson I could see the LED turning on. It may indicate a problem with the power Jack of the GMSL2 card.

Hi @NVG97
the LED of the capture card turns on only if the card is correctly driven by the carrier board.

@obraun-sl will confirm this behavior as soon as he’s back in the office tomorrow

Basically when the green led is fixed on the capture card, it means that all the powering and driver loading is correctly working.

The card seems to work correctly if working on AGX Xavier, except the MIPI side.
MIPI cable are fragile so make sure they are working correctly, from the MIPI connection on the Xavier NX (if you have another NX devkit carrier board), cables and the MIPI connection on the capture card.

From the dmesg log, the Stereolabs DTB is correctly loaded but no i2c seems to communicate (i2c-30/31/… not effective).

If you have the possibility to test on another Xavier NX Devkit, that would help. If it is not working, then maybe the capture card is defective on the MIPI side, so ask for a RMA on the support.

Thank you both for the response.
Currently I don’t have another NX board, so I’ll keep working with the AGX.
If any related problem comes I’ll post it.
Thanks again!

Hi again.
Following the previous discussion I solved the booting problem with the AGX Xavier and the ZED X camera worked perfectly fine.

The thing is I recently adquired a ZED Box and a Jetson Orin Nano Developer kit. In the ZED box the camera worked fine, but now I’m trying to test it in the Orin nano, which I have already set up following the “Setting up ZED X on Orin Nano / NX Developer Kits” tutorial and no camera is detected.

I’m using ZED SDK 4.0, jetpack 5.1.2 and the corresponding zed x driver.
The hardware is set up with 2 new CSI 22 to 15 pins cables as follows:

Since the camera works fine in the AGX Xavier and the ZED box but upon using the cables connection of the GMSL2 neither the Jetson Xavier NX nor the Jetson Orin Nano (new with no use) can detect it I’m guessing it has to be the CSI ports of the capture card.

Here is the dmesg.log file:

Created: lun. ene. 22 2024

###########################################
############ DMESG [ZEDX] LOG #############
###########################################


###########################################
############ DMESG [DTS] LOG #############
###########################################

[    0.002517] DTS File Name: /builds/sl/jetson-gmsl-kernel/src/kernel/kernel-5.10/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t23x/p3768/kernel-dts/tegra234-p3767-0003-p3768-0000-a0.dts
[    2.290758] tegra-pmc c360000.pmc: scratch reg offset dts data not present

###########################################
############ DTB list original  ###########
###########################################

/boot/dtb/kernel_tegra234-p3767-0003-p3768-0000-a0.dtb

###########################################
############ DTB list SLabs     ###########
###########################################

/boot/stereolabs/tegra194-p2888-0001-p2822-0000.dtb
/boot/stereolabs/tegra194-p3668-0000-p3509-0000.dtb
/boot/stereolabs/tegra194-p3668-0001-p3509-0000.dtb
/boot/stereolabs/tegra234-p3701-0000-p3737-0000.dtb
/boot/stereolabs/tegra234-p3701-0004-p3737-0000.dtb
/boot/stereolabs/tegra234-p3701-0005-p3737-0000.dtb
/boot/stereolabs/tegra234-p3701-0008-p3737-0000.dtb
/boot/stereolabs/tegra234-p3767-0000-p3509-a02.dtb
/boot/stereolabs/tegra234-p3767-0000-p3768-0000-a0.dtb
/boot/stereolabs/tegra234-p3767-0001-p3509-a02.dtb
/boot/stereolabs/tegra234-p3767-0003-p3768-0000-a0.dtb

/boot/stereolabs/utils:
extlinux.py
fio.py
__pycache__

###########################################
############ EXTlinux file      ###########
###########################################

TIMEOUT 30
DEFAULT Stereolabs

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      FDT /boot/dtb/kernel_tegra234-p3767-0003-p3768-0000-a0.dtb
      INITRD /boot/initrd
      APPEND ${cbootargs} root=/dev/mmcblk1p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0 nospectre_bhb 

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    FDT /boot/dtb/kernel_tegra234-p3767-0003-p3768-0000-a0.dtb
#    INITRD /boot/initrd
#    APPEND ${cbootargs}


LABEL Stereolabs
	MENU LABEL Stereolabs kernel
	LINUX /boot/Image
	FDT /boot/stereolabs/tegra234-p3767-0003-p3768-0000-a0.dtb
	INITRD /boot/initrd
	APPEND ${cbootargs} root=/dev/mmcblk1p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0 nospectre_bhb

####################################
############ Driver list ###########
####################################

/usr/lib/modules/5.10.120-tegra/kernel/drivers/stereolabs/max96712/sl_max96712.ko==> exists
/usr/lib/modules/5.10.120-tegra/kernel/drivers/stereolabs/zedx/sl_zedx.ko ==> exists

################################################
############ ZEDX Daemon Status LS #############
################################################

● zed_x_daemon.service - ZED-X Daemon service
     Loaded: loaded (/etc/systemd/system/zed_x_daemon.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-01-22 10:58:33 -03; 15min ago
   Main PID: 3967 (ZEDX_Daemon)
      Tasks: 3 (limit: 7453)
     Memory: 824.0K
     CGroup: /system.slice/zed_x_daemon.service
             └─3967 /usr/sbin/ZEDX_Daemon

ene 22 10:58:33 wildsense-OrinNano systemd[1]: Started ZED-X Daemon service.
ene 22 10:58:33 wildsense-OrinNano ZEDX_Daemon[3967]: [ "lun. ene. 22 10:58:33 2024" ]  ** Start ZED-X Daemon
ene 22 10:58:33 wildsense-OrinNano ZEDX_Daemon[3967]: [ "lun. ene. 22 10:58:33 2024" ]  ** Searching for Preload file  "/etc/systemd/system/zed_x_daemon.preload"  :  false
ene 22 10:58:33 wildsense-OrinNano ZEDX_Daemon[3967]: [ "lun. ene. 22 10:58:33 2024" ]   Process  "insmod  /usr/lib/modules/5.10.120-tegra/kernel/drivers/stereolabs/max96712/sl_max96712.ko" outputs  "insmod: ERROR: could not insert module /usr/lib/modules/5.10.120-tegra/kernel/drivers/stereolabs/max96712/sl_max96712.ko: File exists\n"
ene 22 10:58:33 wildsense-OrinNano ZEDX_Daemon[3967]: ** ZED-X Driver loaded
ene 22 10:58:33 wildsense-OrinNano ZEDX_Daemon[3967]: [ "lun. ene. 22 10:58:33 2024" ]  ** Searching for Postload file  "/etc/systemd/system/zed_x_daemon.postload"  :  false
ene 22 10:58:33 wildsense-OrinNano ZEDX_Daemon[3967]: [ "lun. ene. 22 10:58:33 2024" ]  ** Created Endpoint  "tcp://127.0.0.1:20026"

################################################
############ I2C Trace  [-l]       #############
################################################

i2c-3	i2c       	3190000.i2c                     	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-2	i2c       	3180000.i2c                     	I2C adapter
i2c-0	i2c       	3160000.i2c                     	I2C adapter
i2c-9	i2c       	NVIDIA SOC i2c adapter 0        	I2C adapter
i2c-7	i2c       	c250000.i2c                     	I2C adapter
i2c-5	i2c       	31b0000.i2c                     	I2C adapter

################################################
############ I2C Trace /dev/i2C-30 #############
################################################

Error: Could not open file `/dev/i2c-30' or `/dev/i2c/30': No such file or directory

################################################
############ I2C Trace /dev/i2C-31 #############
################################################

Error: Could not open file `/dev/i2c-31' or `/dev/i2c/31': No such file or directory

################################################
############ I2C Trace /dev/i2C-32 #############
################################################

Error: Could not open file `/dev/i2c-32' or `/dev/i2c/32': No such file or directory

################################################
############ I2C Trace /dev/i2C-33 #############
################################################

Error: Could not open file `/dev/i2c-33' or `/dev/i2c/33': No such file or directory
#########################

Hi @NVG97
the dmsg.log report file is not complete? Did you use sudo to generate it?

In any case, please refer to this section of the troubleshooting guide to fix your problem: