ZED X – Camera stream suddenly fails to start + ROI Calibration tool not working

Hi everyone,
I’m experiencing a sudden issue with my ZED X setup and I’m hoping someone can help clarify what might be happening.

Until mid-July everything was working perfectly. Today I reconnected my Jetson system and ran my usual ROI calibration script (Instorelab_ROI_Calibration.sh), but now the camera refuses to start.
I have not changed any configuration or installed new software since then.

Below is the output I get in the terminal (also attached in the screenshot):

Detected ZED model: ZED X ZED X

# STEP 1: Starting SkeletonTracker …
Using the ZED resolution 'HD1200' defined in the environment variable DEFAULT_RESOLUTION …

# STEP 2: Starting the ROI Calibration Tool …
PYTHONPATH=/home/lm/instorelab/hipe_zed_stream_client python …
Camera Open: FAILURE
Exit program.

So the ROI Calibration script immediately fails because the camera stream cannot be opened.

What I have already tested:

  • Both ZED X cameras show up correctly in ZED_Explorer --all (status: AVAILABLE).

  • The same script worked many times before (including in July).

  • No updates or changes were manually installed by me.

  • Python and ZED SDK packages seem correctly installed.

  • Running from the internal SSD, not the external disk.

  • Permissions are correct and the script is executable.

My question:

Does anyone know what could cause Camera Open: FAILURE even though the ZED X devices are detected and appear as AVAILABLE?

Could this be related to:

  • Argus / Jetson multimedia service failing?

  • A driver crash?

  • Some corrupted ZED SDK configuration?

  • A missing dependency for GMSL camera streaming?

  • A known issue with ZED X on Jetson after recent system restarts?

Any help, suggestions, or debugging steps would be highly appreciated.

Thanks a lot!

Hi @LM_AU

To assist you better, we need additional information regarding your device’s condition and system setup.

Please open a terminal console (Ctrl+Alt+t) and run these commands:

  • sudo ZED_Diagnostic --dmesg
  • sudo ZED_Diagnostic -c

After executing the commands, kindly send me the files dmesg.log and ZED_Diagnostic_Results.json located in the folder where the commands were run.

Dear Walter,

Thank you for your response.

I have attached the file you requested to this email.

Kind regards,

Leonardo Mani

[cid:c6a38cae-0e12-43de-a61b-5bbe5c13879c]


Please upgrade your system:

Dear Walter, as you suggested, I have now upgraded the system and am still encountering the same issue:

[cid:db3285b6-82ef-449b-b1b3-7fd9b005f317]

To investigate further, I ran a RAW streaming test on each of the four /dev/video* endpoints assigned to the two ZED-X cameras:

For Camera 1, both video nodes stream correctly (e.g., /dev/video0 and /dev/video1) → I receive several fps.
*
For Camera 2, one video node streams correctly, but the other video node never starts streaming:

[cid:ff0863f7-c530-410a-88e6-2825eaaeee33]

When I run ZED_Explorer, I can still see that both cameras work fine.

I’ve attached the two new files from ZED_Diagnostic.

Best, Leonardo


I cannot see any problem with the information in the report file.

Can you try to open both cameras with the new ZED_Studio application after rebooting the Jetson device?

Both of the cameras are working fine with the ZED Application.

[cid:187dd5a7-e376-4562-801f-93056b7c4ef9]

Something is wrong here?

[cid:3d1557ec-d923-428b-8caa-975a5940eda6]

But the issue with the calibration for the ROI persists

[cid:e9b817ac-c635-4e58-b9ac-47d8a854f635]


That Serial Number value is somehow weird.
Can you check that 45500001 matches the value reported on the label on the camera?

Hi, the serial number is correct.

[cid:219cb862-0879-4c94-912b-4460a2412b70]

Everything was working fine the last time we used the sensor (July 2025), and since then, we have not changed anything in the code.

Have turned off the sensor again for a different project, and the first error I received was that the name was changed from “ZED-X” to “ZED X,” which was easy to fix. But then, for the rest, I have not been able to work with the sensors at all.

And I repeat: everything was working perfectly until July, and nothing has changed. What can we do now?

We urgently need to provide a service for a European institution before the end of the year.

Best, Leonardo


Where did this change happen?

Something changed at some point. Can you share your code?

Hi Walter,
picking this up after our last messages. Here is a concise recap of what happened, what I changed, and what now consistently makes the calibration work on my side.
Timeline (what changed)

Last known good run: 16 July 2025.
*
Back online: 18 November 2025 - I powered up the Jetson and started seeing calibration/stream errors that I had never seen before.
*
As you noted, somewhere in between the device name surface changed from “ZED-X” to “ZED X” (I fixed that reference immediately).
*
Per your advice on Nov 21, I updated to ZED SDK 5.1.1 and ZED-X Driver 1.3.2. Both cameras open fine in ZED tools, but my ROI script still failed at first.

My current working setup (Jetson)

Python: 3.8.10 (dedicated venv .venv38)
*
PyZED: 5.1 (wheel: pyzed-5.1-cp38-cp38-linux_aarch64.whl)
*
Key libs in this venv:
*
numpy 1.24.4
*
opencv-python 4.12.0.88
*
pandas 2.0.3
*
scipy 1.10.1
*
shapely 2.0.7
*
paho-mqtt 2.1.0
*
python-dotenv 1.0.1
*
Cameras: both ZED X units are reported AVAILABLE in ZED tools; I typically target SN 45500001 for the calibration flow.

What actually fixes the failure (minimal workaround)
If I export only these two variables in the same shell before launching the calibration script, the camera opens and the ROI tool runs reliably:

export HIPE_SRC_ZED_SERIAL_NUMBER=45500001
export DEFAULT_RESOLUTION=HD1200
./Instorelab_ROI_Calibration.sh

Why this seems to matter
From my tests, failures were tied to ambiguous device selection and/or missing resolution defaults between the streaming app and the client. For example:

Just activating a venv and running the script → often ended with Camera Open: FAILURE.
*
Adding only HIPE_SRC_ZED_SERIAL_NUMBER → still failed.
*
Adding only DEFAULT_RESOLUTION → still failed.
*
Adding both HIPE_SRC_ZED_SERIAL_NUMBER and DEFAULT_RESOLUTION → consistently works (the client reports ZED Model, SN, resolution 1920×1200@15 FPS, and proceeds to calibration).

Given we once referenced the camera as “ZED-X” and later it appears as “ZED X,” my guess is that selection logic became sensitive to explicit serial and resolution being present. Once I force those two, everything aligns and the pipeline behaves.
Questions for you

Does this match your understanding that explicit serial + explicit resolution is the minimal robust requirement to avoid selection conflicts (especially on Jetson + ZED X)?
2.
Would you recommend a permanent fix such as:
*
reading serial/resolution from a single shared config that both streamer and client load, or
*
hard-pinning them in the launcher scripts?
3.
Given the above, do you still suggest any extra upgrades (Python / OS), or is it acceptable to stay on Python 3.8 as long as I set serial and resolution explicitly?

Thank you best, Leonardo


Normally, the best way to avoid any selection conflict is by using the serial number of the camera.
The resolution does not affect this.

The next version of the SDK will allow you to select the camera also by explicitly using the GMSL2 port, allowing you to unequivocally select a camera that is always connected to the same port/wire.