Hello @ all,
I hope that I am creating this topic in the correct location.
Please move it otherwise to where is should belong. Thanks.
Sorry for the long text in beforehand.
My Setup/Problem:
I am using the Nvidia Jetson Xavier AGX Developer Kit, with the newest Jetpack 4.2.2 (Rev1) on the board. After flashing the system with all possible additional SDKs,… I have performed an apt-update and upgrade. Hence the system should be up-to-date.
I have also installed the most recent version of ROS (melodic-desktop-full) and the newest spinnaker-sdk (1.26) for ubuntu 18.04 on the target.
Moreover, I also increase, at runtime, the USBFS memory for my 3 cameras which are all Flir BFS-U3-120S4C-CS, to 2500 and I also disable usb autosuspend (-1).
All 3 cameras are up to date regarding the firmware.
I have tried various settings regarding connecting them to the Xavier over the existing USB 3.0 interfaces, directly and with various USB Hubs, including external powered ones.
Either way, when connected, I see all three cameras, with no error messages in dmesg.
When I start the spinview application, most times I can start acquisiton on 3 cameras simultaneously.
However, not always. When I don’t, I get the following error, which I always get for at least the 3rd, if not even already the 2nd camera, using the spinnaker library and a ros node to configure the cameras.
One of the cameras mostly works, from what I can tell.
The error I get is as follows:
Spinnaker: Could not start acquisition. Please try reconnecting the device. [-1010]
In dmesg I get the error message:
usbfs: usb_submit_urb returned -11
And in lsusb -t, I see that each cameras has 3 interfaces:
0 is never assigned
1 gets assigned when I start my ros node, trying to connect to all 3 of them
2 gets assigned when starting the acquisition works.
I.e., when it does not work, only interface 1 is assigned with usbfs.
So basically, when I use spinview, it more or less always works. If not, I just do what it says, and unplug and plug the cameras back in, which then often resolved the error.
When I use my code, it however does not.
So yeah, I know what you are thinking, my code is probably buggy.
However, here now comes the twist. My code works just fine, when I use it in a VM, on a native Ubuntu 18.04 amd64 machine, and it even works like a charm, without any error, on the xavier, when I use an USB 3.0 PCIe card… It just does not, when I am using the onboard USB interfaces.
Hence, maybe some part of code is not working well on an arm platform with this specific USB chip. I will definitely review everything I have done/changed.
As the error however also appears intermittently in spinview too, I hence think that this is more of a problem of the spinnaker sdk/library itself. However, why does it then work when using a PCIe card…
Hence I conclude, that:
- The cameras are working fine, as can be seen on other platforms and on the xavier itself when I use the PCIe card
- The software should work fine, as it does on other platforms and on the xavier itself when I use the PCIe card
Why am I writing to this forum:
Is there anything wrong with my setup/image, that I have overseen or misconfigured?
I have read that for the jetson a custom Kernel was necessary to enable USB3.
Is this also necessary for the Xavier?
Is there maybe a problem with the USB3.0 interfaces on the xavier?
Is something like my error already known to anyone of you? (I googled but the entries I found where more regarding ethernet cameras). However, maybe I have overseen something.
If you need any more information, please just let me know.
I appreciate any help.
Regards,
Florian