Jetshon Thor USB-Bandwith for 2xZED2i

Hi everyone,

I want to collect a dataset with 2xZED2i. I’ll be using svo2 files via the SDK and have read conflicting things regarding what amount of data usb can handle, so I wanted to confirm since I cannot test for myself at the moment (only one camera at hand until recording day).

This FAQ here states that one 1080p30 stream takes 250 MB/s and the capacity is ~620 MB/s, so two should be fine.

https://support.stereolabs.com/hc/en-us/articles/207678815-How-do-I-use-multiple-ZED-cameras-on-one-computer

Then the repo containing example scripts mentions tests only for 2x 1080@15 or 720@30fps and claims “USB 3.0 maximum bandwidth is around 400MB/s”, which would only permit the reduced quality streams mentioned.

So I’m asking myself: which one is it?

Sadly, I don’t have the time to just play it safe and get an expansion card anymore.

I am using a Jetson Thor, but I am assuming even if it is a powerful machine the USB-Bandwidth is probably still in that range?

I would be very grateful for input from anyone who has experience with this.
Thanks!

Hi @RotatingGiraffe
Welcome to the StereoLabs community.

This FAQ here states that one 1080p30 stream takes 250 MB/s and the capacity is ~620 MB/s, so two should be fine. […] Then the repo […] claims “USB 3.0 maximum bandwidth is around 400MB/s” […] So I’m asking myself: which one is it?

Both figures are correct in their own context; the confusion comes from theoretical versus practical limits.

The numbers

The ~620 MB/s in the FAQ is the theoretical USB 3.0 (5 Gbps) payload ceiling. The ~400 MB/s in the sample repo is a conservative, real-world figure that accounts for protocol overhead, controller behavior, and the fact that multiple cameras typically share a single root hub rather than each owning a dedicated 5 Gbps lane. In practice you should plan against the lower number.

What this means for 2x ZED 2i in SVO2

A single ZED 2i side-by-side stream at 1080p30 is roughly 250 MB/s of raw USB traffic (both stereo views, uncompressed YUV before any SDK-side encoding). Two of them is ~500 MB/s, which exceeds the practical 400 MB/s budget of a single USB 3.0 controller. So if both cameras land on the same controller/root hub, 2x 1080p30 is not reliable; this is exactly why the sample validates 2x 1080@15 or 2x 720@30.

The decisive factor is topology, not the Jetson’s power

You are right that Thor’s compute is not the bottleneck here; raw USB bandwidth is independent of the SoC’s processing power. What matters is whether the two cameras are served by separate USB controllers (separate root hubs) or share one. If your carrier board exposes two cameras on independent controllers, each gets its own budget and 2x 1080p30 becomes feasible. If they share one controller, you are capped at the ~400 MB/s practical limit and must reduce resolution or FPS.

Practical recommendations

Since you cannot test with both cameras before recording day, the safe approach is:

  • Plan for 2x 1080p15 or 2x 720p30 as your guaranteed-stable baseline; these are validated configurations.
  • If you want to attempt 2x 1080p30, verify your USB topology first with lsusb -t on the Thor to see whether the two ports map to different controllers/root hubs.
  • For a dataset where image quality matters more than frame rate, 1080p15 is usually the better trade-off than 720p30.

If your accuracy and resolution requirements are demanding and you have flexibility on hardware, our GMSL2 line (ZED X / ZED X Mini with a ZED Link capture card) avoids the USB bandwidth bottleneck entirely and is the recommended path for robust multi-camera setups.

The problem is that the NVIDIA Jetson AGX Thor development kit does not provide connectivity to install our GMSL2 capture cards, so you should consider a third-party solution, like ConnectTech, Advantech, or Syslogic.