Maximum image size with USB3 host controller drivers

Last Revision Date: 7/29/2016

Some USB3 host controller drivers have limitations on image size, which may result in errors such as tearing or corruption when streaming large images. Drivers and their maximum image sizes for Windows and for Linux are shown in the tables below.

If you encounter torn or corrupt images, here are options to successfully stream large images.

Upgrade to FlyCapture SDK 2.8.3.1

If you are using FlyCapture, we recommend upgrading to FlyCapture 2.8.3.1 or above, available on the downloads page.

Note: This upgrade does not solve the issue for users of Ladybug5 cameras or Fresco drivers.

Use thePGRxHCI camera driver 

    1. Download and install FlyCapture2 SDK.
    2. Launch DriverControlGUI:
      Start menu → All Programs → FlyCapture2 SDK → Utilities → DriverControlGUI.
    3. On the USB tab, select the host controller, then from the Drivers drop-down, select PGRxHCI.
    4. Click Install Driver.

Note: The PGRxHCI driver is incompatible with other USB 3.1 devices that run on the same bus. In particular, for Intel series 8/9/100, the mouse and keyboard are not useable.

For Linux users—Increase the usbfs memory limit to 1000 MB

    • To temporarily set the maximum usbfs memory limit, run this command: $ sudo modprobe usbcore usbfs_memory_mb=1000
    • To permanently set the maximum usbfs memory limit:
      1. Open the /etc/default/grub file in any text editor.
      2. Find and replace:
        GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
        with this:
        GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=1000"
      3. Update grub with these settings:
        $ sudo update-grub
      4. Reboot and test a USB 3.1 camera.

For Windows 8 or above users—Use the Microsoft Windows driver

Use the DriverControlGUI or Windows Device Manager to switch drivers.

For Fresco Driver users—Use the Registry Editor to increase the buffer size

    1. Disable the Fresco host controller.
    2. Modify the following registry value:

      KEY:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FLxHCIc\Parameters

      DWORD name:
      BulkInRingBuffers

    3. Change the default size from 48 pages to 256 pages. The configured value must be a multiple of 8, to a maximum of 256 pages.
    4. Enable the Fresco host controller after making the change.

Maximum Image Sizes for Windows

Host controller driver Drivers tested Maximum image size
PGRxHCI   None
Renesas (200A, 202) 2.1.39.0
3.0.23.0
16 MB
Intel series 7 1.0.10.255 33 MB
Intel series 8/9/100 3.0.1.41 > 60 MB
Microsoft EHCI (USB2) 9.3.0.1011 4 MB
Microsoft xHCI (USB3) 6.3.9600.17031 32 MB
Fresco 3.5.108.0a
3.6.2.0

3 MB before changing buffer size
25 MB* after changing buffer size

ASMedia 1.16.2.0
1.1.0.153
> 60 MB
AMD 1.1.0.140
1.16.16.0
> 60 MB

*Using FlyCapture’s default of 10 queued buffers. Calculate the maximum image size as follows: Number of Queued Buffers x Image Size < 250 MB.

Maximum Image Sizes for Linux

Host controller driver Kernel Maximum image size
without usbfx fix
Maximum image size
with usbfs fix
Ubuntu 12.04.5 LTS
(Renasas onboard)
3.8.0-41-generic < 1.67 MB > 60 MB
Ubuntu 14.04.1 LTS
(Renasas onboard and card)
3.13.0-32-generic
3.13.0-37-generic
< 1.67 MB > 60 MB
Ubuntu 14.04.1 LTS
(Intel series 8/9 onboard)
3.13.0-32-generic
3.13.0-37-generic
< 1.67 MB > 60 MB

Related Articles