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.