Hi Folks,
I’m trying to get a point grey USB3 Grasshopper camera working on my TX1 Dev board.
I can currently get about 20-30 fps at full resolution (2048 x 1536). That translates to about 3MB per image, which suggests something like 60MB/s of transfer speed, so USB2 speeds. I’m running these tests from FlyCap2 (provided by Point Grey) and also from c++ through the point grey SDK. (I can post the code if that’s helpful, but it’s basically a stripped down version of this https://gist.github.com/kevinhughes27/5543668). Looking at TOP the CPU is at about 50-60% load, and memory usage is around 17-18%.
But, if I ask for a much smaller image size (say 320 x 240 = 0.07 MB per image), I STILL only get about 20-30 fps.
I followed the instructions to enable USB3 support, and that seems to have been successful based on this:
ubuntu@tegra-ubuntu:~$ lsusb -t
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/4p, 5000M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
|__ Port 2: Dev 4, If 0, Class=Miscellaneous Device, Driver=, 5000M
|__ Port 2: Dev 4, If 1, Class=Miscellaneous Device, Driver=, 5000M
|__ Port 2: Dev 4, If 2, Class=Miscellaneous Device, Driver=, 5000M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/5p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-ehci/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
Here’s my extlinux.conf
ubuntu@tegra-ubuntu:~$ cat /boot/extlinux/extlinux.conf
TIMEOUT 30
DEFAULT primary
MENU TITLE p2371-2180 eMMC boot options
LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
FDT /boot/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb
APPEND fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c003fd androidboot.security=non-secure tegraid=21.1.2.0.0 ddr_die=2048M@2048M ddr_die=2048M@4096M section=256M memtype=0 vpr_resize usbcore.usbfs_memory_mb=10000 usbcore.autosuspend=-1 usb_port_owner_info=2 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 debug_uartport=lsport,0 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=${lp0_vec} nvdumper_reserved=${nvdumper_reserved} core_edp_mv=1125 core_edp_ma=4000 gpt android.kerneltype=normal androidboot.touch_vendor_id=0 androidboot.touch_panel_id=63 androidboot.touch_feature=0 androidboot.bootreason=pmc:software_reset,pmic:0x0 root=/dev/mmcblk0p1 rw rootwait
I can plug the camera into my desktop and achieve the full 120fps at full resolution when plugged into a USB3 port. If I plug it into a USB2 port and ask for a 640 x 480 image, I can get 170fps on the desktop.
Any idea why I’m limited to 20-30 fps on the TX1? I’ve been focusing on the USB3 transfer speed, but I’m starting to think that’s not the issue. Is there a latency problem, or something else I’m not thinking about? Any help, suggestions, hints, wild creative fantastical theories much appreciated.