Understanding Slave mode on the Quad capture card

Regarding slave mode on the quad capture card for Zedx, how are the camera capture time, exposure start/end times, and image timestamps related to the input trigger?

With the master mode, it is clearly documented that The output trigger signals are two square waves, with their rising edges synchronized with the end of the exposure phase of the CMOS sensors.

My assumption is that the end of exposure time on the slave cameras is also synced with the rising edge - given the statement here Now, all the cameras connected to the ZED Link Quad will have synchronized frame acquisition with 15µs precision. Is the assumption correct? Is this true also for triggers generated externally (not by Zed)?

In slave mode, the capture is triggered by the rising edge of the square wave.

Does that mean that the exposure phase start after it recieved the rising edge. If yes in that case the images would be out of sync since the master camera outputs a sync pulse with the edge synced to the end of exposure.

The behavior is much more complex.
The end of the capture is synchronized with the rising edge, so the beginning of the exposure is calculated according to the “exposure time setting” such that this behavior is guaranteed.

For example, in the following picture, the purple signal is the trigger, while the blue signal is the exposure.

Just to be clear, when you say the end of the capture is synchronized with the rising edge you are referring to the slave right ?

This would also mean that in case the trigger is generated usign a master Zed camera, then end of exposure of both the slave and master is synced with the rising edge of the trigger.

Are both these statements correct ?

What you say is correct.
To be clear, using the cameras with an external trigger or not has no influence on the behavior of the exposure.

Thank you for clearing this up

@Myzhar, I tried using the slave mode on Zedx, but when I follow this link and restart the computer, I can still see that ZED_Explorer continues to capture images without an external trigger. Please see this screen recording showing the same, where I confirm that the slave mode has been configured and the ZED_Explorer can still collect images.

I am running SDK 5.2 and Quad card drivers 1.4

  • Is this the expected behaviour?
  • If not, can you please investigate and help with what is going wrong?
  • If yes, then this seems wrong since for other cameras in the industry, slave mode means no image capture if no trigger is sent.

Hi @Parv-Maheshwari
This looks a regression in the deiver v1.4.0.
We tested the SDK v5.2 with driver v1.3.2 and it works as expected

I can revert to v1.3.2 and report my findings

@Myzhar, can you please send me the link or the steps to download the Zed driver 1.3.2? I can only find the link of v1.4 on the website .

Here they are:

L4T 36.4 - Standard Quad :
https://stereolabs.sfo2.cdn.digitaloceanspaces.com/utils/drivers/ZEDX/1.3.2/R36.4/stereolabs-zedlink-quad_1.3.2-SL-MAX96712-all-L4T36.4.0_arm64.deb
L4T 36.4 - RTkernel Quad :
https://stereolabs.sfo2.cdn.digitaloceanspaces.com/utils/drivers/ZEDX/1.3.2/R36.4/stereolabs-zedli[…]ad_1.3.2-SL-MAX96712-all-rt-L4T36.4.0_arm64.deb

Older drivers are now available in the Driver Archive page:

Hello @Myzhar . Thank you for sending the link to 1.3.2 driver.

Unfortunately, the issue still remains. Please see the short sinppet here.

Overall I can still see ZED_Explorer capturing images without sending any trigger.

I confirmed that I am using the slave mode and also the intended driver version (1.3.2) with SDK v5.2.

airlab@ubuntu:~$ cat /etc/systemd/system/zed_x_daemon.service
[Unit]
Description=ZED-X Daemon service
After=nvargus-daemon.service driver_zed_loader.service 
Requires=driver_zed_loader.service
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
StandardOutput=syslog
ExecStart=/usr/sbin/ZEDX_Daemon

# 0 = no sync(Default), 1 = master/slave mode, 2 = slave mode only
sync_mode=2 

[Install]
WantedBy=multi-user.target


airlab@ubuntu:~$ sudo dpkg -s stereolabs-zedlink-quad 
Package: stereolabs-zedlink-quad
Status: install ok installed
Priority: standard
Section: kernel
Installed-Size: 6282
Maintainer: NVIDIA Corporation, Stereolabs Inc.
Architecture: arm64
Version: 1.3.2-SL-MAX96712-all-L4T36.4.0
Depends: device-tree-compiler, nvidia-l4t-rt-kernel (>= 5.15.148-rt) | nvidia-l4t-kernel (>= 5.15.148), nvidia-l4t-rt-kernel (<< 5.15.149-rt) | nvidia-l4t-kernel (<< 5.15.149)
Pre-Depends: nvidia-l4t-core (>> 36.4-0), nvidia-l4t-core (<< 36.5-0), libqt5core5a
Conffiles:
 /etc/modprobe.d/blacklist-zed.conf f0bebc021df6f160eb97f2f6b9dcb017 obsolete
Description: NVIDIA Kernel DTB Modified Package by Stereolabs
Homepage: www.stereolabs.com

How should I proceed ?