The ZED stereo camera is connected to the USB3.0 port of TX2, but is says Low USB bandwidth.

Hi.

I am using the jetson TX2 development kit and I am using it with the default carrier board.

I connected the ZED stereo camera directly to the USB3.0 port without using the HUB

When I use the “ZED Explorer” that I installed the ZED SDK, it works fine.

However, when “ZED Diagnostic” is used, all environments are OK, but “Low USB bandwidth” appears.

If I use “ZEDfu” and input is Live, I get an error message “ERROR - ZED seems to be running in USB2.”

It seems that the camera connected to USB3.0, but recognized ZED or TX2 as USB2.0 without recognizing it as 3.0.

How can I solve it?

I use jetpack 3.2.1.

The output for “head -n 1 /etc/nv_tegra_release” is:

# R28 (release), REVISION: 2.1, GCID: 11272647, BOARD: t186ref, EABI: aarch64, DATE: Thu May 17 07:29:06 UTC 2018

The output of “lsusb -t” when connecting a ZED camera is:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
    |__ Port 1: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 4: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 6, If 2, Class=Human Interface Device, Driver=usbhid, 12M

The output of “lsusb -t” when disconnecting a ZED camera is:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
    |__ Port 1: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 1: Dev 7, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 1: Dev 7, If 2, Class=Human Interface Device, Driver=usbhid, 12M

I’m seeing this too sometimes, although I’m using Auvidea J120 carrier board. It only happens on initializing the camera from the application and restarting the app or re-setting the camera fixes it. Try to upgrade to the latest ZED SDK and camera’s firmware. If you are writing your own application on Jetson that is using ZED camera, this issue should be easy to work around in the code.

-albertr

Have you flashed the latest firmware to your ZED? USB3 issues are part of why the firmware update exists. I think up through 2.4.1 all updates had USB3 changes (changes didn’t fix everything, but were a big improvement…until that I was getting the low bandwidth issue even on my desktop PC with the camera on its own root HUB). I see 2.5 just came out. See:
[url]https://www.stereolabs.com/developers/release/2.5/[/url]

If you are still using the 2.3 release firmware I would expect a lot of USB3 issues.

albertr and linuxdev, thank you for your reply.

I tried ZED camera firmware update on TX2, but I could not update it, so I updated the firmware on Windows10 and succeeded to 1142 to 1523.

And I have already installed ZED SDK version 2.5.0.

But the same problem still occurs.

I tried installing the firmware of TX2 again.

Is the carrier board a problem?

Name of the ZED SDK installation file I installed:

ZED_SDK_Linux_JTX2_JP3.2_v2.5.0.run

StereoLabs said the camera must be on a USB3 port by itself with nothing else connected. Even so, I have had intermittent issues with this on a TX1, TX2, and my desktop PC’s integrated USB3. The problem occurs less often if you are in performance mode, but it will occur on any Linux PC and on Jetsons…my Windows 7 box also had the same issue. It seems to be a weakness of the ZED camera.

On the other hand, so long as it allows you to flash the firmware, then it seems to not actually cause errors. I would suggest trying to use the camera and see if it works as expected even with the warning.

FYI, you can max out a TX2’s performance:

sudo nvpmodel -m 0
sudo ~nvidia/jetson_clocks.sh

I tried both ZED camera and ZED mini on orbitty carrier board with ZED SDK 2.5/2.4,
ZEDfu always has message “ERROR - ZED seems to be running in USB2.” with SDK 2.4/2.5 no matter firmware 1142 or 1153,

On original TX2 board with ZED SDK 2.4/2.3,
it worked fine with SDK 2.3.

I tried ZED SDK 2.3 and 2.4.

In SDK 2.3, if camera’s firmware is 1523, camera could not be detected and downgraded to 1142.

Then the USB bnadwidth problem does not occur.

However, in ZED Diagnostic, the following warning appears in SDK check.

Unexpected CUDA Toolkit version. Expecting version 8.0 while detecting version V9.0.252. Please uninstall every older CUDA version.

When I run ZEDfu, the following error message appears and ZEDfu does not run.

./ZEDfu: error while loading shared libraries: libcudart.so.8.0: Can not open shared object file: No such file or directory

In SDK 2.4, ZED Diagnostic only warns that “ZED SDK Outdated”.

ZEDfu is implemented. However, the 2.0 error message is the same.

In 2.4, if the firmware of the camera is 1142, the camera and usb check warn out and update to 1523 again.

Interestingly, I installed 2.5 after trying 2.3 and 2.4.

Then ZED Diagnostic showed all clear.

However, ZEDfu still displays a 2.0 error message and it will not work in live input mode.

Thanks for the reply. However, I have already run jetson_clocks.sh, and I get an error in that state.

Just some notes…

In some cases where ZED thinks it has insufficient bandwidth it is still running in USB3 mode. If the ZED is mistaken about bandwidth it seems to work anyway.

In some cases the ZED is actually reverting to USB2, but USB2 support does not exist within the ZED itself. This means the ZED essentially disappears from USB so far as its USB3-only functions go. This will always fail.

The firmware release has more to do with how it works than the rest of the release. If you have the current firmware and release you will want to ask at http://stereolabs.com how to determine where the error is. You’ll need to start by guaranteeing the ZED is the only thing on the USB port’s root_hub and that it is in USB3 mode. You can do this with “lsusb -t” and may want to include that in any support request. Note that “root_hub” from “lsusb -t”, when ending in “5000M”, is USB3 mode. Should the actual device also show “5000M”, and only the camera is on that root_hub (it is stereo, you will see two listings for the single USB3 camera), then you’ve met that condition. You would also want to mention the following:

  • That the hardware is a TX2 developer kit (or some other carrier).
  • The L4T release (e.g., from "head -n 1 /etc/nv_tegra_release").
  • If you have tried both with and without a powered HUB (they generally recommend no HUB, but it is useful to debug power delivery being tested both by the Jetson and again by an external power source).
  • The specific firmware and ZED release versions which have been tested.

I have not tested with the most recent 2.5 release, but I have had the same issues on TX1, TX2, desktop x86_64 PC on Linux, and same PC on Windows 7. If the firmware is updated I get a warning, but then it still works. Earlier firmware completely lost USB3 mode response and caused failure instead of warning.

It would be interesting to benchmark data flow on the ZED for both a PC and a TX2, but there is no way for me to do this, and I also get at least a warning on PC as well.

Just to mention that I’m using a ZED with firmware 1142 on a TX2 with R28.2-DP (2017 Dec 1st build) with ZED SDK 2.3.3 and all tests are ok (except it detects a CUDA8 installed, that I have indeed installed for some purposes, although /usr/local/cuda is a link to normal cuda9 install and PATH and LD_LIBRARY_PATH look only for normal cuda9).
My USB topology looks very similar to yours, although my HID devices are slower:

lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 3: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 7, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M

I cannot tell for last JetPack release 3.2.1, but as proposed by @Linuxdev you may keep your firmware up to the most recent version and report this issue to stereolabs.

You may also try a powered hub, especially if you are powering other energy consuming devices. Check this. I’m only using a SATA SSD and wired ethernet. No wireless.