Hello Stereolabs team,
we are testing two ZED X cameras connected to one ZED Box Duo. Both cameras
can be opened and streamed at the same time, but nvargus-daemon emits
repeatable resource and state errors during every dual-camera startup.
The sender is a native application, not a Docker container. A single process
owns two sl::Camera instances. It opens the cameras sequentially with
setFromGMSLPort(), waits two seconds between opens, verifies the expected
serial number after each open, and enables both H.265 encoders only after both
cameras have opened successfully.
There is no camera hotplug and neither nvargus-daemon nor zed_x_daemon is
restarted while a camera session is open. Both cameras are connected before
boot. The sender and receiver processes stop cleanly after each test.
Sender environment
- Stereolabs ZED Box Duo, Jetson Orin NX 16 GB
- JetPack 6.2.1
- L4T 36.4.4
- Kernel 5.15.148-tegra
- ZED SDK 5.4.1
stereolabs-zedbox-duo
1.4.3-LI-MAX96712-ZEDBOX-L4T36.4.0- Two ZED X cameras, firmware 2001, on GMSL ports 0 and 1
- HD1200 at 30 FPS, H.265, 12.5 Mbit/s per camera
DEPTH_MODE::NONEon the sender
The system was upgraded from ZED SDK 5.2.3 and ZED Box Duo driver 1.4.1 to
SDK 5.4.1 and driver 1.4.3. The upgrade removed the previous
Failed to connect to zed_x_daemon warning from the single-process test, but
the Argus messages below remain.
Receiver and functional result
The two network streams are received by a Jetson AGX Orin running ZED SDK
5.4.1 and two ROS 2 wrapper instances. Both A/B runs passed all ten checked
data paths for the two cameras: RGB, registered depth, reduced point cloud,
health, and heartbeat. Point clouds remained close to the configured 5 Hz
target. Both sender streams and both receivers shut down with exit code 0.
Reproduction
- Boot the ZED Box with both cameras already connected.
- Confirm that both cameras are
AVAILABLEand thatzed_x_daemonis active. - Start the single-process sender with open order
cam0-first. - Open port 0, wait two seconds, open port 1, verify both serial numbers, and
then enable both streams. - Start both network receivers and verify the ten ROS 2 data paths.
- Stop sender and receivers cleanly.
- Repeat with open order
cam1-first. - Inspect the isolated
nvargus-daemonjournal windows.
Results
| Run | Open order | All 10 receiver paths | Point cloud cam0/cam1 | AlreadyAllocated | NvCameraUtils InvalidState | Wrong frequency range | ModuleNotPresent | Failed to connect to zed_x_daemon |
|---|---|---|---|---|---|---|---|---|
| A | cam0-first | passed | 5.09 / 5.19 Hz | 12 | 8 | 531 | 60 | 0 |
| B | cam1-first | passed | 5.74 / 5.00 Hz | 12 | 4 | 357 | 30 | 0 |
Run A contains one additional ZED_Explorer provider cycle immediately before
the sender starts. It accounts for 30 of the 60 ModuleNotPresent messages.
The Wrong frequency range rate is approximately 5.5 messages/s in run A and
5.3 messages/s in run B, so the difference in raw totals is caused mainly by
the different run durations.
Representative messages are:
(Argus) Error AlreadyAllocated: Device 0 (of 1) is in use
(NvCameraUtils) Error InvalidState: Mutex not initialized
(NvCameraUtils) Error InvalidState: Mutex has not been initialized
(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available
SCF: Error BadParameter: Sensor could not be opened.
Wrong frequency range!
We found the existing community statement that Wrong frequency range! can
be ignored if the cameras work normally. We therefore do not treat that
warning alone as proof of a failed stream. Our main concern is the repeatable
AlreadyAllocated and uninitialized-mutex InvalidState combination during a
clean two-camera open on the already recommended SDK 5.4.1 / driver 1.4.3
stack.
Questions
- Is using two
sl::Camerainstances in one native process supported for two
ZED X cameras on this ZED Box Duo stack? - Are
AlreadyAllocatedand the uninitialized-mutexNvCameraUtils InvalidStatemessages expected internal enumeration/probing messages, or
do they indicate a driver or Argus defect? - Can this state affect long-term stability, frame timing, hardware sync, or
later camera recovery even though both short streams remain functional? - Are the
ModuleNotPresentandBadParametermessages expected probes for
unused device-tree modules on this carrier configuration? - Is there a recommended open order, minimum delay, sync configuration, or
newer compatible driver for JetPack 6.2.1 / L4T 36.4.4? - Which messages may safely be excluded from a production health gate, and
which ones should still be treated as a camera-stack fault?
I have attached sanitized A/B sender logs, isolated nvargus-daemon logs, a
test report with exact counts, and a fresh ZED_Diagnostic_Results.json.
Related discussions already checked:
- https://community.stereolabs.com/t/zed-x-grab-stuck-in-failure-after-argus-zed-x-daemon-failure/11590
- https://community.stereolabs.com/t/zed-x-camera-error-camera-rebooting-argus-error-fileoperationfailed-invalidstate/10558
- https://community.stereolabs.com/t/nvargus-daemon-have-some-error-wrong-frequency-range/10486
- https://community.stereolabs.com/t/opening-multiple-zed-x-by-serial-number-appears-to-be-unreliable/6689
Thank you for checking whether these messages are benign for this exact stack
or whether an additional driver fix or configuration change is required.