The development kit carrier board + TX2NX encountered an error problem with the USB industrial camera

We use the core board of TX2NX on the development kit, with the Jetpack version is 4.6.3. When using the Hikvision USB industrial camera, there are some occasional problems that the camera cannot be found after the system booted.
In order to reproduce the error, we wrote a script to make the system to reboot automatically after waiting for a period of time after startup. Finally, after several hours of testing reproduced the USB camera can not find the problem. The kern.log log when a problem occurs is roughly as follows:

May 15 18:12:11 ubuntu kernel: [    7.499355] usb 2-2.1: device descriptor read/8, error -110
May 15 18:12:11 ubuntu kernel: [    7.579716] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
May 15 18:12:11 ubuntu kernel: [    7.580848] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
May 15 18:12:11 ubuntu kernel: [    7.612765] usb 2-2.1: new SuperSpeed USB device number 3 using tegra-xusb
May 15 18:12:11 ubuntu kernel: [    7.638005] usb 2-2.1: device descriptor read/8, error -71
May 15 18:12:11 ubuntu kernel: [    7.732334] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
May 15 18:12:12 ubuntu kernel: [    8.520760] usb 1-2.1: new high-speed USB device number 4 using tegra-xusb
May 15 18:12:12 ubuntu kernel: [    8.642331] usb 1-2.1: device descriptor read/all, error -71
May 15 18:12:12 ubuntu kernel: [    8.729075] usb 2-2.2: new SuperSpeed USB device number 5 using tegra-xusb
May 15 18:12:12 ubuntu kernel: [    8.749313] usb 2-2.2: LPM exit latency is zeroed, disabling LPM.
May 15 18:12:12 ubuntu kernel: [    8.749987] usb 2-2.2: New USB device found, idVendor=2bdf, idProduct=0001
May 15 18:12:12 ubuntu kernel: [    8.749991] usb 2-2.2: New USB device strings: Mfr=5, Product=3, SerialNumber=6
May 15 18:12:12 ubuntu kernel: [    8.749994] usb 2-2.2: Product: MV-CA020-10UM
May 15 18:12:12 ubuntu kernel: [    8.749997] usb 2-2.2: Manufacturer: Hikrobot
May 15 18:12:12 ubuntu kernel: [    8.749999] usb 2-2.2: SerialNumber: J77104430
May 15 18:12:12 ubuntu kernel: [    8.753562] usb 2-2-port1: config error
May 15 18:12:12 ubuntu kernel: [    8.759019] usb 2-2-port1: config error
May 15 18:12:12 ubuntu kernel: [    8.806324] tegra-i2c 3160000.i2c: no acknowledge from address 0x50
May 15 18:12:12 ubuntu kernel: [    8.813318] tegra-i2c c240000.i2c: no acknowledge from address 0x50
May 15 18:12:12 ubuntu kernel: [    8.819922] tegra-i2c 3180000.i2c: no acknowledge from address 0x50
May 15 18:12:13 ubuntu kernel: [    9.189336] pwm-tegra-tachometer 39c0000.tachometer: Tachometer Overflow is detected
May 15 18:12:13 ubuntu kernel: [    9.244773] usb 1-2.1: new high-speed USB device number 5 using tegra-xusb
May 15 18:12:13 ubuntu kernel: [    9.517043] usb 2-2-port1: config error
May 15 18:12:14 ubuntu kernel: [   10.259439] usb 1-2.1: Device not responding to setup address.
May 15 18:12:15 ubuntu kernel: [   11.487547] usb 1-2.1: Device not responding to setup address.
May 15 18:12:15 ubuntu kernel: [   11.700736] usb 1-2.1: device not accepting address 5, error -71
May 15 18:12:15 ubuntu kernel: [   11.706885] usb 1-2-port1: attempt power cycle
May 15 18:12:15 ubuntu kernel: [   11.733422] usb 2-2-port1: config error
May 15 18:12:17 ubuntu kernel: [   13.237623] usb 2-2-port1: config error
May 15 18:12:17 ubuntu kernel: [   13.512816] usb 1-2.1: new high-speed USB device number 6 using tegra-xusb
May 15 18:12:22 ubuntu kernel: [   18.840980] usb 1-2.1: device descriptor read/64, error -110
May 15 18:12:23 ubuntu kernel: [   19.162735] usb 1-2.1: New USB device found, idVendor=2bdf, idProduct=0001
May 15 18:12:23 ubuntu kernel: [   19.162761] usb 1-2.1: New USB device strings: Mfr=5, Product=3, SerialNumber=6
May 15 18:12:23 ubuntu kernel: [   19.162778] usb 1-2.1: Product: MV-CA020-10UM
May 15 18:12:23 ubuntu kernel: [   19.162793] usb 1-2.1: Manufacturer: Hikrobot
May 15 18:12:23 ubuntu kernel: [   19.162806] usb 1-2.1: SerialNumber: J77104431
May 15 18:12:23 ubuntu kernel: [   19.196421] usbcore: registered new interface driver btusb

Can you help analyze the above log and give some suggestions for further analysis and debugging? Thanks.
In addition, we also did a similar experiment on the RockChip platform. After a few days of experimentation, there was no error that the USB camera could not be found.
Now it has affected the use of our products, so I look forward to your reply and support!

Hi,
It looks to be a race condition that power supply is not stable so that the device cannot be enumerated. Once it happens, please try to off/on the hub to trigger re-enumeration:
Power down USB ports - #4 by vsaw

Thank you for your reply. That’s right, in order to make Hikvision’s industrial cameras more stable, the camera is not only connected to the development kit through a USB cable, but also provides 12V power supply at the camera’s PWR port.
Therefore, simply closing and opening the USB hub cannot solve our problem. This operation can allow us to find the USB device, but Hikvision’s SDK software shows that the device is a USB2.0 device, which does not meet our needs.
It is speculated that the reason why it cannot be restored to USB3.0 may be that some states of the Hikvision camera are not reset due to the 12v power supply.
So we want to know how to avoid this error state when the system starts?

Hi,
Please check if it is possible to delay power-on of the 12V power supply in booting. Probably in the race condition, it is powered on a bit earlier than initializing USB port, so the enumeration fails.

OK, these methods can indeed effectively reduce the probability of error. We also tried the test without providing 12v power supply, and found that device enumeration failure may still occur after the system restarts.
As a comparison, no enumeration failure has been found on the Rockchip platform, so I especially want to find out the specific reason for the failure? From the perspective of evasion, we will introduce the reset interface in the Hikvision SDK to reset the camera, so as to ensure that the camera can recover from the error state, but we are still looking for the root cause.
Thanks again for your reply.

Looking at this problem in another way, view the output of dmesg, the original Linux kernel used on Rockchip does not have logs like the attempt power cycle on Jetpack. Is it because the special USB processing mechanism in Jetpack caused the Hikvision camera to enter an abnormal state?

Hi,
We have done compliance test on TX2 NX + Xavier NX carrier board(p3509). There is no special processing mechanism. If you would like to do it again to make sure the signals are good, please refer to
https://developer.nvidia.com/jetson-tx2-nx-tuning-and-compliance-guide-application-note

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.