Balluff - BVS CA-MLC / BVS CA-IGC Technical Documentation
Optimizing USB Performance
Note
This section is only relevant for applications working with USB3 Vision™ or Balluff USB 2.0 devices!

Checklist for Windows

Host Controller Driver

Also the USB host controller manufacturers provide device driver updates for their cards/chips every now and then. Using the latest drivers is always recommended and might improve the overall performance of the system dramatically!

Checklist for Linux

udev rules

Most Linux system nowadays use the udev device manager, which is responsible for dynamically managing the /dev tree. In order to be able to use the Balluff mvBlueFOX3 (BVS CA-SF) "USB3 Vision" camera as non-root user, a special set of rules has to be handed to the udev device manager.

On older systems this could be done by directly editing the contents of a "/etc/udev/rules" file, however nowadays a "/etc/udev/rules.d" directory exists, which may contain several different files, each defining the behavior of a system device.

In the specific case of BVS CA-SF device or any "USB3 Vision" device actually, if the camera has been installed through the respective installation script ImpactAcquire-x86_64-linux-3.5.0.sh, a suitable set of rules has been installed automatically. However if for some reason these rules have to be created manually or must be changed at later time it should be done like this:

  1. Create a file in the "/etc/udev/rules.d" directory with name 52-U3V.rules if this doesn't exist already. The content of the file should be something like this:
    SUBSYSTEM!="usb|usb_device|plugdev", GOTO="u3v_rules_end"
    ACTION!="add", GOTO="u3v_rules_end"
    
    ATTRS{bDeviceClass}=="ef", ATTRS{bDeviceSubClass}=="02", ATTRS{bDeviceProtocol}=="01", 
            ENV{ID_USB_INTERFACES}=="*:ef0500:*", MODE="0664", GROUP="plugdev"
    
    LABEL="u3v_rules_end"
    
  2. OPTIONAL: Create another file in the "/etc/udev/rules.d" directory with name 52-mvbf3.rules . This step is only necessary if a BVS CA-SF in the "mvbootloader" state should be recognised by the system. This might happen if for any reason a camera has no valid firmware running e.g. due to a power failure during a firmware update. The content of the file should be something like this:
    SUBSYSTEM!="usb|usb_device|plugdev", GOTO="mvbf_rules_end"
    ACTION!="add", GOTO="mvbf_rules_end"
    
    ATTRS{idVendor}=="164c", ATTRS{idProduct}=="5531", MODE="0664", GROUP="plugdev"
    
    LABEL="mvbf_rules_end"
    
Note
The above 52-U3V.rules file provides the necessary access privileges not only for BVS CA-SF cameras, but also for any "USB3 Vision"-compliant device of other vendors.

As soon as this file is into place, each time the camera is plugged to the system it acquires the set of rights that allows the user to use it without having root privileges.

Disabling The Auto-Suspend Mode

Usually the Linux kernel suspends USB devices when they are not in use for a certain time. In some cases this might cause unsuspected behaviour of USB devices. To avoid this kind of issues it is a good idea to disable the USB autosupend mode.

sudo sh -c 'echo -1 > /sys/module/usbcore/parameters/autosuspend'