Astra Mini Pro - Reconnecting Camera Issues

To whom it may concern,

We are already a client of yours for some years now. We have been getting this constant issue and we need urgent help on this.
So we have a system that has 2 astra mini pro connected. They are connected by USB, with highly reliable cables (they ensure 5V are transmitted). The USB hub that is connected is 2.0.
Now, from time to time (it is sporadic), the image suddenly freezes (its freezes in get_frame). We are assuming this is caused by some sudden voltage drop that can happen in 2 min, 5 min, 2 hours or 5 days. We cannot simply reboot the entire system, since this leads to big downtime and we need high uptime.

If we reboot the process, sometimes it recovers all cameras sometimes not. That was our first part of the issue. We then created a USB reset script that resets the usb. That helped in part but, sometimes, it freezes again and it does not allow connection. Originating this error(example from our logs): DeviceOpen: Couldn’t open device ‘2bc5/065b@3/3’

Now, we tried to reset the whole hub and sometimes it still gives problems, originating either in the previous error or this one:
Could not open “2bc5/065b@3/2”: Entity not found!

Now, our usb reset script resets each usb at 1.5 seconds interval. Once we reset all usbs, we restart all processes. There should be a 1/2 seconds loading time before trying to open the cameras.

How can we workaround these voltage drop(which again, we are assuming, although, our system has very stable power output and even a small battery to avoid sudden drops) and recover the cameras without needing to reboot the entire system? (which is the equivalent of disconnecting / connecting usb. This cannot happen).

We are using OpenNI SDK version 2.3.0.85. The cameras are Astra Mini Pro. The OS is ubuntu20. Part of the usb reset script is like this:

for hub in “$hub_directory”/“$device_port”-; do
if [ -d “$hub” ]; then
hub_name="${hub##
/}"
if [[ " ${excluded_hubs[@]} " =~ " $hub_name " ]]; then
echo “Skipping reset for $hub_name (Excluded Hub)”
else
device_vendor_id=$(cat “$hub/idVendor” 2>/dev/null)
if [[ " ${excluded_vendor_ids[@]} " =~ " $device_vendor_id " ]]; then
echo “Skipping reset for $hub_name (Vendor ID: $device_vendor_id)”
else
authorized_file=“$hub/authorized”
echo “Resetting $authorized_file”
echo “0” > “$authorized_file”
sleep 1
echo “1” > “$authorized_file”
fi
fi
fi
done

Hopefully I gave enough information to help us workaround this issue.

Best regards,

Hey there,

Can we get any support on this issue ? Upping this.

Best regards,

The voltage drop may cause by your hub, PC or cameras. You can connect the cameras with your system directly using the cable from Orbbec to test and exclude the cause.

Is it possible to try an PCIe USB hub with two/multiple USB 2.0 controllers on it? A HUB with a single USB 2.0 controller may cause such issue.

Possible to share some of your current USB 2.0 Hub spec?

We are using the cables as recommend by Orbbec. Cabling is not an issue, as they are also powered and are certified.

To correct some info, we are not connecting to an usb hub, but to the direct usb connections of our board. We will send the specs of this board, regarding the usb connection, to help.

Another question that is appearing (as we are noticing some patterns in clients), is what is the ESD rating of the Astra Mini Pro with the DURIPOD enclosure? Because we are thinking that some clients where this is happening, they have some static electricity generating in the machine itself and it may be causing the issue.

Could you please elaborate on the details about your host information (arm Board?)? And your camera setup. (how many cameras connected)

Our host information, according to lspci is:
00:00.0 Host bridge: Intel Corporation Device 9a04 (rev 01)
00:02.0 VGA compatible controller: Intel Corporation Device 9a78 (rev 01)
00:0d.0 USB controller: Intel Corporation Device 9a13 (rev 01)
00:10.0 Serial bus controller [0c80]: Intel Corporation Device a0d8 (rev 20)
00:10.5 Host bridge: Intel Corporation Device a0af (rev 20)
00:14.0 USB controller: Intel Corporation Device a0ed (rev 20)
00:14.1 USB controller: Intel Corporation Device a0ee (rev 20)
00:14.2 RAM memory: Intel Corporation Device a0ef (rev 20)
00:15.0 Serial bus controller [0c80]: Intel Corporation Device a0e8 (rev 20)
00:16.0 Communication controller: Intel Corporation Device a0e0 (rev 20)
00:17.0 SATA controller: Intel Corporation Device a0d3 (rev 20)
00:1d.0 PCI bridge: Intel Corporation Device a0b0 (rev 20)
00:1d.1 PCI bridge: Intel Corporation Device a0b1 (rev 20)
00:1f.0 ISA bridge: Intel Corporation Device a082 (rev 20)
00:1f.3 Audio device: Intel Corporation Device a0c8 (rev 20)
00:1f.4 SMBus: Intel Corporation Device a0a3 (rev 20)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Device a0a4 (rev 20)
01:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
02:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43228 802.11a/b/g/n

Our CPU is an Intel 11th Gen Intel(R) Core™ i3-1115G4.
The PC is powered correctly as according to specs and with power to spare.

Our camera setup are 2 cameras, connected by USB2.0.

Sorry for the late response, as I was off for some days.

Best regards,
Alexandre Pires

Not sure the reason. As you suspect the power dropped, I think you can test single camera first to check.

We have tested in single camera. It seems there is no power failure. The voltage is quite constant on the camera (values range between 4.99V and 5.01V). So, we have no clue where to search for issues, and this is becoming quite troublesome for us.

If single camera is constant, however, two cameras will drop, I think the reason is your host is unable to provide enough stable voltage to support for 2 cameras simultaneously. could you consider testing the same setup with another more stable host? Maybe you can find some clues.

The issue of freezing is also happening with a single camera setting on the client. There is only 1 usb and that is the camera. What I meant is that we measured the voltages in single and 2 cameras settings and it is constant voltage.

This issue also happened using NiViewer on a windows laptop, using usb 3.0. Where, sometimes, sporadically, the image freezes during recording, in exactly the same method call: openni::OpenNI::waitForAnyStream(). note that this happened in single camera connected to usb.

Does Astra need a very specific libusb or modules to be working correctly?