ZED X One 4K unable to open in ZED Explorer when ZED X Mini also connected (ZED Carrier Board)

Hi,

I hope all is well.

We are currently using the ZED Carrier Board (ZED Box Mini) with JetPack 6.2, the latest ZED SDK and the ZED Box Mini v1.3.0 driver (2 Cameras). Both of our cameras (a ZED X One 4K and a ZED X Mini) appear in ZED Explorer when connected individually.

However, when both are connected at the same time:

  • The ZED X One 4K fails to initialise in ZED Explorer and shows: “Error: Unable to open camera”.
  • Only the ZED X Mini stream is accessible in ZED Explorer.
  • In ZED Explorer, the ZED X One seems to be incorrectly identified as another ZED X Mini (same camera type is shown in the dropdown).

We are connecting the ZED X One to GMSL2 Port A and the ZED X Mini to GMSL2 Port B, as indicated in the documentation.

Is this a known issue with ZED Explorer or the SDK? Should this configuration work as expected?

For context, this setup was previously confirmed as supported in this thread: Setup Confirmation: ZED Carrier Mini with Dual Cameras (Headless Orin Nano)

Thank you.

Hi @zonit
please refer to the ZED Box Mini to learn how to properly connect a ZED X One 4K camera and a ZED X Mini simultaneously:

Hi @Myzhar,

Thanks, but we’re already connecting the cameras exactly as per the documentation:

ZED X One 4K → GMSL2 Port A
ZED X Mini → GMSL2 Port B

However, we get “Error: Unable to open camera” in the ZED Explorer for the ZED X One. When connected individually, both cameras appear in ZED Explorer.

Could this be a ZED Explorer problem?

What resolution/framerate? You must use at maximum 30 FPS with this setup

Hi @Myzhar,
I think that ZED Explorer doesn’t let us configure framerate or resolution from the ZED Explorer before opening the camera. The ZED X One 4K fails before any stream or setting can be applied, so we can’t even reach the point of adjusting settings for that camera when the Mini is also connected.

First, it toggles quickly between “OPENING THE CAMERA 0” and “WAITING FOR CAMERA 0”. Then, it delivers the error message of the image we have attached. Also, you can see in the image that it is detecting the ZED X One as “ZED-X MINI”.
When we change from CAM0 to CAM1 in the dropdown ID menu, we can see without any issues the ZED X Mini stream.

Can you try to use the image capture tutorial to verify if that’s a problem with the SDK or the ZED Explorer tool?

I tried using the image_capture.py script but it did not work:

$ python image_capture.py
[2025-05-12 11:33:59 UTC][ZED][INFO] Logging level INFO
[2025-05-12 11:34:00 UTC][ZED][INFO] Using GMSL input... Switched to default resolution HD1200
[2025-05-12 11:34:00 UTC][ZED][INFO] [Init]  Depth mode: NEURAL
[2025-05-12 11:34:00 UTC][ZED][ERROR] [ZED] Cannot initialize the camera.
[2025-05-12 11:34:00 UTC][ZED][WARNING] CAMERA FAILED TO SETUP in sl::ERROR_CODE sl::Camera::open(sl::InitParameters)
Camera Open : CAMERA FAILED TO SETUP. Exit program.
[2025-05-12 11:34:00 UTC][ZED][ERROR] [ZED] sl::Camera::Open has not been called, no Camera instance running.
[2025-05-12 11:34:00 UTC][ZED][ERROR] [ZED] sl::Camera::Open has not been called, no Camera instance running.

So I used this script instead:

import pyzed.sl as sl

def list_and_select_camera():
    cam_list = sl.Camera.get_device_list()
    if not cam_list:
        print("No cameras detected.")
        return None

    print("Available cameras:")
    for i, cam in enumerate(cam_list):
        print(f"[{i}] Serial: {cam.serial_number} | Model: {cam.camera_model}")

    return cam_list[1].serial_number


def main():
    zed = sl.Camera()
    init_params = sl.InitParameters()
    init_params.set_from_serial_number(list_and_select_camera())
    init_params.camera_resolution = sl.RESOLUTION.AUTO
    init_params.camera_fps = 30

    status = zed.open(init_params)
    if status != sl.ERROR_CODE.SUCCESS:
        print(f"Camera Open : {status}. Exit program.")
        exit()

    image = sl.Mat()
    for i in range(10):
        if zed.grab() == sl.ERROR_CODE.SUCCESS:
            zed.retrieve_image(image, sl.VIEW.LEFT)
            print(f"Frame {i} grabbed: {image.get_width()}x{image.get_height()}")

    zed.close()

if __name__ == "__main__":
    main()

I have both cameras connected at the same time (ZED X One and ZED X Mini). If I return the cam_list[1] in the list_and_select_camera() function, the script works. However, if I change to index 0, it fails.

This is the output with index 1:

$ python test0.py
Available cameras:
[0] Serial: 37881356 | Model: ZED X Mini
[1] Serial: 54734349 | Model: ZED X Mini
[2025-05-12 11:34:06 UTC][ZED][INFO] Logging level INFO
[2025-05-12 11:34:06 UTC][ZED][INFO] Using GMSL input... Switched to default resolution HD1200
[2025-05-12 11:34:07 UTC][ZED][INFO] [Init]  Depth mode: NEURAL
[2025-05-12 11:34:09 UTC][ZED][INFO] [Init]  Camera FW version: 2001
[2025-05-12 11:34:09 UTC][ZED][INFO] [Init]  Video mode: HD1200@30
[2025-05-12 11:34:09 UTC][ZED][INFO] [Init]  Serial Number: S/N 54734349
[2025-05-12 11:34:10 UTC][ZED][WARNING] [Init]  Self-calibration skipped. Scene may be occluded or lack texture. (Error code: 0x01) 
Frame 0 grabbed: 1920x1200
Frame 1 grabbed: 1920x1200
Frame 2 grabbed: 1920x1200
Frame 3 grabbed: 1920x1200
Frame 4 grabbed: 1920x1200
Frame 5 grabbed: 1920x1200
Frame 6 grabbed: 1920x1200
Frame 7 grabbed: 1920x1200
Frame 8 grabbed: 1920x1200
Frame 9 grabbed: 1920x1200

And this is with index 0:

$ python test0.py
Available cameras:
[0] Serial: 37881356 | Model: ZED X Mini
[1] Serial: 54734349 | Model: ZED X Mini
[2025-05-12 11:41:00 UTC][ZED][INFO] Logging level INFO
[2025-05-12 11:41:00 UTC][ZED][INFO] Using GMSL input... Switched to default resolution HD1200
[2025-05-12 11:41:01 UTC][ZED][INFO] [Init]  Depth mode: NEURAL
[2025-05-12 11:41:01 UTC][ZED][ERROR] [ZED] Cannot initialize the camera.
[2025-05-12 11:41:01 UTC][ZED][WARNING] CAMERA FAILED TO SETUP in sl::ERROR_CODE sl::Camera::open(sl::InitParameters)
Camera Open : CAMERA FAILED TO SETUP. Exit program.
[2025-05-12 11:41:01 UTC][ZED][ERROR] [ZED] sl::Camera::Open has not been called, no Camera instance running.
[2025-05-12 11:41:01 UTC][ZED][ERROR] [ZED] sl::Camera::Open has not been called, no Camera instance running.

The ZED X One is connected to GMSL A and the ZED X Mini is connected to GMSL B as I previously mentioned. It seems like the ZED X One is detected as a ZED X Mini when both cameras are connected.

What’s the output of ZED_Explorer -a?

This is the output:

$ ZED_Explorer -a

## Cam  0  ##
 Model :  "ZED-X Mini"
 S/N :  37881356
 State :  "Camera Available"
 Path :  /dev/i2c-2
 ID :  0
 Type :  "GMSL2"
********************
## Cam  1  ##
 Model :  "ZED-X Mini"
 S/N :  54734349
 State :  "Camera Available"
 Path :  /dev/i2c-2
 ID :  1
 Type :  "GMSL2"
********************

This output message is not coherent.
Can you please send a picture of your setup showing all the connections?

Sure, here is a picture of the setup showing the connections.

This is weird because it seems that the two cameras are both detected as ZED X Mini models.
Have you disconnected them and reconnected while the host was powered and you did not launch the sudo service zed_x_daemon restart command?

@zonit I was able to replicate the problem. The HW Team is investigating to find the cause of this wrong behavior and fix the problem.

1 Like

Hi @Myzhar,

Do you have an estimated timeline for the patched solution? We’ve scheduled further development around this setup, so any update would help with planning.

Thank you very much for your support.

The Embedded Team is validating a possible solution.

Please stay tuned for new driver releases in the next few days.

1 Like