ZED Camera not detected on power up

I’m using a ZED 2 camera with Xavier AGX, Jetpack 4.5.1.
If the camera is connected to one of the usb type-c ports during power up it is not detected by the system, relevant errors from running dmesg:

[ 7.181182] usb 2-3: new SuperSpeed USB device number 2 using tegra-xusb
[ 7.201277] usb 2-3: device descriptor read/8, error -61
[ 7.308945] usb 2-3: new SuperSpeed USB device number 2 using tegra-xusb
[ 7.333370] usb 2-3: device descriptor read/8, error -61
[ 7.757219] usb 2-3: new SuperSpeed USB device number 3 using tegra-xusb
[ 7.781263] usb 2-3: device descriptor read/8, error -61
[ 7.888922] usb 2-3: new SuperSpeed USB device number 3 using tegra-xusb
[ 7.909271] usb 2-3: device descriptor read/8, error -61
[ 9.173306] usb 2-3: new SuperSpeed USB device number 4 using tegra-xusb
[ 9.193613] usb 2-3: device descriptor read/8, error -61
[ 9.300954] usb 2-3: new SuperSpeed USB device number 4 using tegra-xusb
[ 9.321387] usb 2-3: device descriptor read/8, error -61
[ 9.637190] usb 2-3: new SuperSpeed USB device number 5 using tegra-xusb
[ 9.657365] usb 2-3: device descriptor read/8, error -61
[ 9.764966] usb 2-3: new SuperSpeed USB device number 5 using tegra-xusb
[ 9.786021] usb 2-3: device descriptor read/8, error -61

lsusb:
Bus 001 Device 004: ID 2b03:f781

As far as I can tell the only way to make the camera work in this scenario is physically unplug the usb and then plug it back in, see dmesg:

[ 88.013605] usb 2-3: new SuperSpeed USB device number 2 using tegra-xusb
[ 88.034759] usb 2-3: New USB device found, idVendor=2b03, idProduct=f780
[ 88.034778] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 88.034786] usb 2-3: Product: ZED 2
[ 88.034791] usb 2-3: Manufacturer: Technologies, Inc.
[ 88.150158] uvcvideo 2-3:1.0: Entity type for entity ZED 2 was not initialized!
[ 88.150405] uvcvideo 2-3:1.0: Entity type for entity ZED 2 was not initialized!
[ 88.150558] uvcvideo 2-3:1.0: Entity type for entity Camera 1 was not initialized!
[ 88.151632] input: ZED 2 as /devices/3610000.xhci/usb2/2-3/2-3:1.0/input/input6

lsusb:
Bus 002 Device 006: ID 2b03:f780
Bus 001 Device 006: ID 2b03:f781

  • Possible solutions that were tested and did not work: Soft resetting the usb, Reset the jetson using the reset button.
  • Solutions that work but are not feasible for our use case: Re-plugging the usb, Using the usb type A port, Connecting the camera through a usb hub.

(From the messages I assume this has to do with some uvcvideo failure during power up?)

I see there are some previous post mentioning similar errors but no solutions as far as I can tell.

Please advise, thanks!

@G.Foyle
did you install the ZED Stereolabs SDK for Jetson?

Hi,
Please try to disable and enable the regulator after booing, to trigger re-enumeration. May refer to
Switch on and off usb ports programmatically on AGX - #5 by DaneLLL

This seems to have no effect. The post you are referring to mention this works for the type-A, should it also work for the type-C ports? Follwing the post I tried echo > disabled/enabled for regulator.13, is there something else?

is there Stereolabs ZED sdk installed on the Jetson device?
Also you may try writing to stereolabs support directly through email

The SDK is installed (but regardless, ZED is UVC compliant so it can be used as a simple usb camera even without installing the SDK). We’re also in touch with Stereolabs. Thanks.

I have ZED listed as

Bus 002 Device 004: ID 2b03:f582 

but also

ls /dev/video*
/dev/video0  /dev/video1

the video1 is the ZED
However, sometimes it wouldn’t appear at the latter outputs, I used to reinstall SDK then it would start to work.
Sometimes it required also to reconnect USB ports to get it working; sometimes reboot was required.
It also requires a proper adapter USB-A to USB-C; sometimes we used bad adapters which caused isues;
Do you see a device in

ls /dev/video*

after reboot? after reconnecting to other ports?
Also you may try powered USB hub

The ZED is not listed in /dev/video* after reboot (which is the reason I believe it is not SDK related but rather has something to do with how uvcvideo driver is loaded, I also tried this with several different systems, after and before SDK installation, all behave the same). As I mentioned in my original post, after reboot it only works with the typa-A port but that is not a feasible workaround for our use case (same goes for using a hub or physically re-plugging the camera after system boot).

Hi,
We try ZED camera on the two type C ports and can see the camera be enumerated as SuperSpeed in either port(J512 or J513). Not sure if it helps but do you have other type C to type A adapter/cable for a try?

I tried several cables with the same results.
In the meanwhile, Stereolabs offered a workaround for ZED 2 that does not involve physical re-plugging or additional hardware, I’m adding their answer here in favour of anyone else that may encounter this issue:

The problem is that the UVC module is not correctly initialized, while the HID module is correctly detected (sensors stack module).
You can verify it using the lsusb command, which will correctly list the 2b03:f781 device (HID), but not the 2b03:f780 device (UVC).
A temporary solution could be to call the SDK API function [sl::camera::reboot()](https://www.stereolabs.com/docs/api/classsl_1_1Camera.html#ae55291a8a30832451c288d3a9bc5a011) when starting your application, this command will use the MCU to reset the UVC module, simulating an unplug/replug operation.

I have experianced with the same errors using Logitech 930C Camera, Avermedia Live Gamer Portable 2 Plus on Nvidia Jetson AGX Xavier Dev Kit 32Gb with latest JetPack 4.5.1(all sowtware was installed using SDK Manager from host machine with Ubuntu 18.04 without installation issues). I have tested these devices on x86_64 laptop with Ubuntu 18.04, that recognised properly with guvcview. So I think problem in JetPack 4.5.1. How to fix this problem? Cameras working on Jetson AGX in console programs like gst-launch-1.0, but not recognized with any tool like guvcview, OBS etc

Hi @info.webstudio
The issues sounds like the devices are detected but cannot be launched in 3rdpart USB camera applications. Please check this prebuilt lib:
Jetson/L4T/r32.5.x patches - eLinux.org
[camera] 3rdparty application fails to open with USB camera

Hi @DaneLLL Patch from [camera] 3rdparty application fails to open with USB camera not helps
dmesg output when Camera connected to USB:
[ 156.892790] uvcvideo: Found UVC 1.00 device Logitech Webcam C930e (046d:0843)
[ 156.893912] uvcvideo 1-2:1.0: Entity type for entity Processing 3 was not initialized!
[ 156.894071] uvcvideo 1-2:1.0: Entity type for entity Extension 6 was not initialized!
[ 156.894203] uvcvideo 1-2:1.0: Entity type for entity Extension 8 was not initialized!
[ 156.894341] uvcvideo 1-2:1.0: Entity type for entity Extension 9 was not initialized!
[ 156.894483] uvcvideo 1-2:1.0: Entity type for entity Extension 10 was not initialized!
[ 156.894610] uvcvideo 1-2:1.0: Entity type for entity Extension 11 was not initialized!
[ 156.894735] uvcvideo 1-2:1.0: Entity type for entity Extension 12 was not initialized!
[ 156.894862] uvcvideo 1-2:1.0: Entity type for entity Extension 13 was not initialized!
[ 156.895004] uvcvideo 1-2:1.0: Entity type for entity Camera 1 was not initialized!
[ 156.895571] input: Logitech Webcam C930e as /devices/3610000.xhci/usb1/1-2/1-2:1.0/input/input11
[ 165.217177] usb 1-2: usb_suspend_both: status 0

gst-launch-1.0 -v v4l2src device=/dev/video0 ! video/x-raw, width=1280, height=720, format=YUY2 ! xvimagesink working fine
jetsonInfo:
NVIDIA Jetson AGX Xavier [32GB]
L4T 32.5.1 [ JetPack 4.5.1 ]
Ubuntu 18.04.5 LTS
Kernel Version: 4.9.201-tegra
CUDA 10.2.89
CUDA Architecture: 7.2
OpenCV version: 4.1.1
OpenCV Cuda: NO
CUDNN: 8.0.0.180
TensorRT: 7.1.3.0
Vision Works: 1.6.0.501
VPI: ii libnvvpi1 1.0.15 arm64 NVIDIA Vision Programming Interface library
Vulcan: 1.2.70

Same problem as the OP, but with a ZED (not ZED 2), which means that the workaround does not apply. Always had this issue, from the beginning of playing with the AGX and ZED. Very annoying.

Where to apply this code ?

I’m calling reboot (passing the camera serial number) right after my application starts.

1 Like