MATRIX VISION - mvBlueCOUGAR-X/-XD Technical Documentation
|
Currently supported Windows versions are:
Other Windows version can be used at the user's own risk.
All necessary drivers are available from the MATRIX VISION website at www.matrix-vision.de, section "Products -> Cameras -> your interface -> your product -> Downloads"
.
MATRIX VISION successfully tested several network interface cards, which are summarized in the following document: http://www.matrix-vision.com/tl_files/mv11/support/Manuals/mvBlueCOUGAR-X_-_Recommended_NICs_en.pdf.
The mvBlueCOUGAR-XD is a high-performance camera containing latest top-notch technology which requires
for example, when processing large amount of image data and
This means that you will need
Please ask your system vendor for further advice and consult our technical documentation.
Beside the host system requirements, you have to fine-tune
to achieve the specified frame rates possible from the camera's perspective.
Currently supported Windows versions are:
Other Windows version can be used at the user's own risk.
All necessary drivers are available from the MATRIX VISION website at www.matrix-vision.de, section "Products -> Cameras -> your interface -> your product -> Downloads"
.
By double clicking on
wxPropView is able to check if there are new driver version available on a weekly basis. Deactivate the check box if wxPropView should not check for updates. You can activate the checking in wxPropView via the help menu.
You will find all tools like
either on desktop as single icons or in Windows menu under "MATRIX VISION -> mvIMPACT Acquire".
Afterwards, you can use mvDeviceConfigure to update the firmware. The latest firmware image is available on the web - please check for updates. The current firmware version can be read out using wxPropView (device section on top).
This chapter explains, how to achieve optimal performance by setting up the NIC (network interface card) and the devices network controller in the best possible way with respect to the limitations imposed by the surrounding network. To check, if the camera is available via the network, you can use the tool mvIPConfigure.
The camera sets the MTU to the maximum value automatically given by the NIC or switch and supports a maximum MTU of 16K. You can change the MTU of the camera manually under "Setting -> Base -> Camera -> GenICam -> Transport Layer Control -> Gev Stream Channel Selector -> Gev SCPS Packet Size".
In the system settings of the camera, you can set up the overall network behaviour of the device in the "Transport Layer Control" section e.g. by assigning a persistent IP address, a persistent default gateway and a persistent subnet mask in "Transport Layer Control" section according to your needs. However IP configuration related settings should be done by using the tool mvIPConfigure as this will provide a more convenient access to these parameters.
Network performance related parameters however can be controlled from the "Driver -> GenTL" section as well:
By default 1500 is used as MTU ("Driver -> GenTL -> Interfaces -> Interface0 -> mv Gev Interface MTU"). You can change this according to your network. As a general rule of thumb it can be said, that the higher the MTU, the better the overall performance, as less network packets are needed to transmit a full image, which results in less overhead that arises from the handling of each arriving network packet in the device driver etc. However every component involved in the data transmission (that includes every switch, router and other network component, that is installed in between the device and the system receiving the packets) must support the MTU or packet size, as otherwise the first component not supporting the packet size will silently discard all packets, that are larger than the component can handle.
If you have interplay problems between mvBlueCOUGAR and a network controller (NIC) please check following settings in the driver settings:
Is the amount of the "Receive Descriptors" (RxDesc) of the NIC set to the maximum (generally 2048)?
This amount depends on the MTU. You can get a feeling about values with following formula:
RxDesc >= 1.1 * PixelPerImg * BytesPerPixel --------------------------------- MTU
"Example 1: 1500 at 1.3MPixel"
RxDesc >= 1.1 * 1.3M * 1 -------------- 1500 >= 950
"Example 2: 8k at 1.3MPixel"
RxDesc >= 1.1 * 1.3M * 1 -------------- 8192 >= 175
Both examples are showing the RxDesc values based on packages per image per second. Now, if you increase the images per second you will see that you reach the amount of "Receive Descriptors" very soon. Usually, the default values of the system are between 64 and 256 and as a general rule too low. Also each use of a "Receive Descriptor" will result in a certain amount of CPU time needed, which is why larger packets result in a better overall performance.
If you are using small MTU values or if there is only a small value of "Receive Descriptors" possible, you have to enable "Interrupt Throttling". Interrupt throttling enables the NIC to combine packets thus lowering the amount of interrupts.
The "Receive Descriptors" a.k.a. "Receive Buffers" (Intel PRO/1000 network interface) can be found under "Performance Options":
The mvBlueCOUGAR-XD Dual-GigE camera needs a network interface card with two network interfaces which support so-called Link Aggregation, teaming, or "bonding". Normally, Windows installs a standard driver which does not support link aggregation. For this, you have to install and download a driver from the manufacturer's website. When e.g. using a "Intel Ethernet Server Adapter I350-T2" network controller this will be
After installation you have to combine the two interfaces which are used by the mvBlueCOUGAR-XD. For this, open the driver settings of the network controller via the "Device Manager" of Windows:
"mvBlueCOUGAR-XD"
and After closing the group assistant, you can connect the camera using the two network interfaces. There is no special connection necessary between camera and network controller interfaces.
It is also possible to use the camera with one network interface. This of course will result in a reduced data rate. For this use the right (primary) network interface of the camera only (the label on the back can be read normally).
Import-Module -Name "C:\Program Files\Intel\Wired Networking\IntelNetCmdlets\IntelNetCmdlets"
New-IntelNetTeam -TeamName "HDR Camera" -TeamMemberNames "Intel(R) Ethernet Server Adapter I350-T2","Intel(R) Ethernet Server Adapter I350-T2 #2" -TeamMode StaticLinkAggregationReplace "HDR Camera" with your preferred teaming name and also "Intel(R) Ethernet Server Adapter I350-T2" with the name of your used NIC.
Please check our website for the availability of the Linux driver.
In case the target system runs an older Linux kernel, it is absolutely necessary to update the kernel to at least version 3.5.0 . Please refer to the documentation of your Linux distribution for information on how to update your system's Linux kernel.
Following Kernels have been tested and verified by MATRIX VISION for seamless USB3 operation:
Before installation on a Linux system, the system has to provide at least following packages:
The mvBlueCOUGAR-XD is a high-performance camera containing latest top-notch technology which requires
for example, when processing large amount of image data and
This means that you will need
Please ask your system vendor for further advice and consult our technical documentation.
Beside the host system requirements, you have to fine-tune
to achieve the specified frame rates possible from the camera's perspective.
To use the camera within Linux (grab images from it and change its settings), a driver is needed, consisting of several libraries and several configuration files. These files are required during run time.
To develop applications that can use the camera, a source tree is needed, containing header files, makefiles, samples, and a few libraries. These files are required at compile time.
Both file collections are distributed in a single package:
mvGenTL_Acquire-x86-n.n.n.tgz
/home/username/workspace
: cd /home/username/workspace
cp /home/Downloads/install_mvGenTL_Acquire.sh /home/Downloads/ mvGenTL_Acquire-x86-2.3.2.tgz .
chmod a+x install_mvGenTL_Acquire.sh
./install_mvGenTL_Acquire.sh
mvGenTL_Acquire-x86_64-n.n.n.tgz
/home/username/workspace
: cd /home/username/workspace
cp /home/Downloads/install_mvGenTL_Acquire.sh /home/Downloads/ mvGenTL_Acquire-x86_64-2.40.0.tgz .
chmod a+x install_mvGenTL_Acquire.sh
./install_mvGenTL_Acquire.sh
During installation, the script will ask, if it should build all tools and samples.
The installation script checks the different packages and installs them with the respective standard packages manager (e.g. apt-get) if necessary.
install_mvGenTL_Acquire.sh
) and the archive (mvGenTL_Acquire-x86_64-n.n.n.tgz
) must reside in the same directory. Nothing is written to this directory during script execution, so no write access to the directory is needed in order to execute the script.You need Internet access in case one or more of the packages on which the GenICam libs depend are not yet installed on your system. In this case, the script will install these packages, and for that, Internet access is required.
The script takes two arguments, both of which are optional:
The target directory name specifies where to place the driver. If the directory does not yet exist, it will be created. The path can be either absolute or relative; i.e. the name may but need not start with /
.
The files required at compile time are always installed in
$HOME/mvimpact-acquire-n.n.n
. The script also creates a convenient softlink to this directory:
mvimpact-acquire -> mvIMPACT_acquire-2.6.0
If this argument is not specified, the driver will be placed in the default directory /opt
.
The version argument is entirely optional. If no version is specified, the most recent
mvGenTL_Acquire-x86-n.n.n.tgz
found in the current directory will be installed.
For more information and if you want to install only the mvBlueCOUGAR remote driver on Linux. Please have a look at Installing the mvBlueCOUGAR Remote Driver.
This chapter explains, how to achieve optimal performance by setting up the NIC (network interface card) and the devices network controller in the best possible way with respect to the limitations imposed by the surrounding network. To check, if the camera is available via the network, you can use the tool mvIPConfigure.
The camera sets the MTU to the maximum value automatically given by the NIC or switch and supports a maximum MTU of 16K. You can change the MTU of the camera manually under "TransportLayer" -> "GevSCPSPacketSize".
In the system settings of the camera, you can set up the overall network behaviour of the device in the "TransportLayer" section e.g. by assigning a persistent IP address, a persistent default gateway and a persistent subnet mask in "TransportLayer" section according to your needs. However IP configuration related settings should be done by using the tool mvIPConfigure as this will provide a more convenient access to these parameters.
Network performance related parameters however can be controlled from the "TransportLayer" section as well:
By default 1500 is used as MTU ("DeviceInterfaceMTU"). You can change this according to your network. As a general rule of thumb it can be said, that the higher the MTU, the better the overall performance, as less network packets are needed to transmit a full image, which results in less overhead that arises from the handling of each arriving network packet in the device driver etc. However every component involved in the data transmission (that includes every switch, router and other network component, that is installed in between the device and the system receiving the packets) must support the MTU or packet size, as otherwise the first component not supporting the packet size will silently discard all packets, that are larger than the component can handle.
If you have interplay problems between mvBlueCOUGAR and a network controller (NIC) please check following settings in the driver settings:
Is the amount of the "Receive Buffers" of the NIC set to the maximum? If you want to set the "Receive Buffers", you have to
"/etc/sysctl.d/"
(/etc/sysctl
.d/62-buffers-performance.conf) and net.core.wmem_max=16777216 net.core.rmem_max=16777216 net.core.netdev_max_backlog=10000
"sudo sysctl -p"
. The mvBlueCOUGAR-XD Dual-GigE camera needs a network interface card with two network interfaces which support so-called "Link Aggregation" or "bonding".
To bond the network interface, the following description assumes that your system has three interfaces eth0
, eth1
, and eth2
,
eth0
is the standard system interface (e.g. connected to the Internet or intranet) andeth1
and eth2
(these interfaces will be bonded).Furthermore, it is assumed that the
subnet
192.168.10.1
is used for bonding, that thesudo service network-manager stop
To bond the network interfaces, please follow these steps:
sudo apt-get install ifenslave
sudo ifconfig eth1 down sudo ifconfig eth2 down
sudo modprobe bonding mode=0 miimon=100
"mode=0"
means "round robin" mode which corresponds to the "static link aggregation" on Windows systems "miimon=100"
means that it will be checked every 100 ms if there are link failures in the bonding. 100
is the recommended value. sudo ifconfig bond0 192.168.10.1 netmask 255.255.255.0 mtu 8000
sudo ifenslave bond0 eth1 eth2 sudo ifconfig eth1 up sudo ifconfig eth2 up
sudo /etc/init.d/networking restart
Now, you can check if you can ping the mvBlueCOUGAR-XD via the bonding.
For more information and if you want to install only the mvBlueCOUGAR remote driver on Linux. Please have a look at Installing the mvBlueCOUGAR Remote Driver.
This chapter explains, how to achieve optimal performance by setting up the NIC (network interface card) and the devices network controller in the best possible way with respect to the limitations imposed by the surrounding network. To check, if the camera is available via the network, you can use the tool mvIPConfigure.
The camera sets the MTU to the maximum value automatically given by the NIC or switch and supports a maximum MTU of 16K. You can change the MTU of the camera manually under "TransportLayer" -> "GevSCPSPacketSize".
In the system settings of the camera, you can set up the overall network behaviour of the device in the "TransportLayer" section e.g. by assigning a persistent IP address, a persistent default gateway and a persistent subnet mask in "TransportLayer" section according to your needs. However IP configuration related settings should be done by using the tool mvIPConfigure as this will provide a more convenient access to these parameters.
Network performance related parameters however can be controlled from the "TransportLayer" section as well:
By default 1500 is used as MTU ("DeviceInterfaceMTU"). You can change this according to your network. As a general rule of thumb it can be said, that the higher the MTU, the better the overall performance, as less network packets are needed to transmit a full image, which results in less overhead that arises from the handling of each arriving network packet in the device driver etc. However every component involved in the data transmission (that includes every switch, router and other network component, that is installed in between the device and the system receiving the packets) must support the MTU or packet size, as otherwise the first component not supporting the packet size will silently discard all packets, that are larger than the component can handle.
If you have interplay problems between mvBlueCOUGAR and a network controller (NIC) please check following settings in the driver settings:
Is the amount of the "Receive Buffers" of the NIC set to the maximum? If you want to set the "Receive Buffers", you have to
"/etc/sysctl.d/"
(/etc/sysctl
.d/62-buffers-performance.conf) and net.core.wmem_max=16777216 net.core.rmem_max=16777216 net.core.netdev_max_backlog=10000
"sudo sysctl -p"
. The mvBlueCOUGAR-XD Dual-GigE camera needs a network interface card with two network interfaces which support so-called "Link Aggregation" or "bonding".
To bond the network interface, the following description assumes that your system has three interfaces eth0
, eth1
, and eth2
,
eth0
is the standard system interface (e.g. connected to the Internet or intranet) andeth1
and eth2
(these interfaces will be bonded).Furthermore, it is assumed that the
subnet
192.168.10.1
is used for bonding, that thesudo service network-manager stop
To bond the network interfaces, please follow these steps:
sudo apt-get install ifenslave
sudo ifconfig eth1 down sudo ifconfig eth2 down
sudo modprobe bonding mode=0 miimon=100
"mode=0"
means "round robin" mode which corresponds to the "static link aggregation" on Windows systems "miimon=100"
means that it will be checked every 100 ms if there are link failures in the bonding. 100
is the recommended value. sudo ifconfig bond0 192.168.10.1 netmask 255.255.255.0 mtu 8000
sudo ifenslave bond0 eth1 eth2 sudo ifconfig eth1 up sudo ifconfig eth2 up
sudo /etc/init.d/networking restart
Now, you can check if you can ping the mvBlueCOUGAR-XD via the bonding.
To start the device please accomplish following steps:
After energizing mvBlueCOUGAR via power supply or Power over Ethernet (PoE) the camera will start to boot.
Depending on the configuration of the network or the mvBlueCOUGAR (more precisely: if DHCP is used or not), following IP addresses are assigned:
Working example: 192.168.0.1: PC Port1 172.16.1.1: PC Port2 192.168.0.3: Cam1 172.16.1.4: Cam2
You can change settings like the static IP address to your needs (please have a look at: mvIPConfigure).
Further the mvBlueCOUGAR starts the GigE Vision control server making the device actually discoverable using standard GigE Vision mechanism.
You can communicate with the camera the following way
MATRIX VISION offers several GUI tools to work with the camera. Please have a look at the specific chapter.
Settings contain all the parameters that are needed to prepare and program the device for the image capture. Every image can be captured with completely different set of parameters. In almost every case, these parameters are accessible via a property offered by the device driver. A setting e.g. might contain
So for the user a setting is the one an only place where all the necessary modifications can be applied to achieve the desired form of data acquisition. There is however an important difference in behaviour between different interface layouts. See here to find out how to modify the interface layout or check in the API documentation for the interfaceLayout property of the class Device. When working in DeviceSpecific interface layout, each frame will be captured with the settings as present when requesting the image. For GenICam interface layouts all device properties modified during a continuous acquisition will have immediate impact on the next frame transmitted by the device thus here when a precise moment to change settings is needed, continuous acquisition must be stopped and then restarted after modifying the features.
Now, whenever a device is opened, the driver will execute following procedure:
"Image Setting"
,"Digital I/O"
, and"Device Specific Data"
under wxPropView will be stored in these settings! The driver supplied with the MATRIX VISION product represents the port between the programmer and the hardware. The driver concept of MATRIX VISION provides a standardized programming interface to all image processing products made by MATRIX VISION GmbH.
The advantage of this concept for the programmer is that a developed application runs without the need for any major modifications to the various image processing products made by MATRIX VISION GmbH. You can also incorporate new driver versions, which are available for download free of charge on our website:
https://www.matrix-vision.com.
The following diagram shows a schematic structure of the driver concept:
"mv.impact.acquire.dll"
). The namespace "mv.impact.acquire"
of "mv.impact.acquire.dll"
provides a more natural and more efficient access to the same features as contained in the namespace "mvIMPACT_NET.acquire"
of "mvIMPACT_NET.dll"
, which is why the latter one should only be used for backward compatibility but NOT when developing a new application.A couple of devices are supported by NeuroCheck. However between NeuroCheck 5.x and NeuroCheck 6.x there has been a breaking change in the internal interfaces. Therefore also the list of supported devices differs from one version to another and some additional libraries might be required.
For NeuroCheck 5.x the following devices are supported:
Device | Additional software needed |
mvTITAN-G1 | mvSDK driver for mvTITAN/mvGAMMA devices |
mvTITAN-CL | mvSDK driver for mvTITAN/mvGAMMA devices |
mvGAMMA-CL | mvSDK driver for mvTITAN/mvGAMMA devices |
mvBlueFOX | mvIMPACT Acquire driver for mvBlueFOX devices, "NCUSBmvBF.dll" |
For NeuroCheck 6.0 the following devices are supported:
Device | Additional software needed |
mvTITAN-G1 | mvIMPACT Acquire driver for mvTITAN/mvGAMMA devices |
mvTITAN-CL | mvIMPACT Acquire driver for mvTITAN/mvGAMMA devices |
mvGAMMA-CL | mvIMPACT Acquire driver for mvTITAN/mvGAMMA devices |
mvHYPERION-CLb | mvIMPACT Acquire driver for mvHYPERION devices |
Every other mvIMPACT Acquire compliant device | mvIMPACT Acquire driver for the corresponding device family, "mv.impact.acquire.NeuroCheck6.dll" (comes with the driver package, but the driver package must be installed AFTER installing NeuroCheck 6 |
For NeuroCheck 6.1 the following devices are supported:
Device | Additional software needed |
mvTITAN-G1 | mvIMPACT Acquire driver for mvTITAN/mvGAMMA devices |
mvTITAN-CL | mvIMPACT Acquire driver for mvTITAN/mvGAMMA devices |
mvGAMMA-CL | mvIMPACT Acquire driver for mvTITAN/mvGAMMA devices |
mvHYPERION-CLb | mvIMPACT Acquire driver for mvHYPERION devices |
Every other mvIMPACT Acquire compliant device | mvIMPACT Acquire driver for the corresponding device family, "mv.impact.acquire.NeuroCheck6_1.dll" (comes with the driver package, but the driver package must be installed AFTER installing NeuroCheck 6.1 |
Every mvIMPACT Acquire driver package on Windows comes with an adapter to VisionPro from Cognex. The installation order does not matter. After the driver package and VisionPro has been installed, the next time VisionPro is started it will allow selecting the mvIMPACT Acquire device. No additional steps are needed.
MATRIX VISION devices that also comply with the GigE Vision or USB3 Vision standard don't need any software at all, but can also use VisionPro's built-in GigE Vision or USB3 Vision support.
HALCON comes with built-in support for mvIMPACT Acquire compliant devices, so once a device driver has been installed for the mvIMPACT Acquire device, it can also be operated from a HALCON environment using the corresponding acquisition interface. No additional steps are needed.
MATRIX VISION devices that also comply with the GigE Vision standard don't need any software at all, but can also use HALCON's built-in GigE Vision support.
As some mvIMPACT Acquire device driver packages also come with a GenTL compliant interface, these can also be operated through HALCON's built-in GenTL acquisition interface.
Every mvIMPACT Acquire compliant device can be operated under LabVIEW through an additional set of VIs which is shipped by MATRIX VISION as a separate installation ("mvLabVIEW Acquire"
).
MATRIX VISION devices that also comply with the GigE Vision or USB3 Vision standard don't need any additional software at all, but can also be operated through LabVIEW's GigE Vision or USB3 Vision driver packages.
Every mvIMPACT Acquire compliant device driver package comes with an interface to DirectShow. In order to be usable from a DirectShow compliant application, devices must first be registered for DirectShow support. How to this is explained here.
Every mvIMPACT Acquire compliant device can be operated under https://micro-manager.org when using mvIMPACT Acquire 2.18.0 or later and at least Micro-Manager 1.4.23 build AFTER 15.12.2016. The adapter needed is part of the Micro-Manager release. Additional information can be found here: https://micro-manager.org/wiki/MatrixVision.
To operate a GenICam based device apart from the physical hardware itself 2 pieces of software are needed:
mvGenTLConsumer.dll
and the mvGenTLProducer.cti
on Windows and the libmvGenTLConsumer.so
and the libmvGenTLProducer.so
on Linux when using mvIMPACT Acquire, but can be any other USB3 Vision / GigE Vision compliant driver package from a third party vendor) running of the host system (provides control over the device from an application running on the host system).The physical GenICam compliant device has a firmware programmed into the device's non-volatile memory, thus allowing the device to boot to a fully functional state without the need of any additional software running on the host. The firmware version that will be used when operating the device does NOT depend on the driver version that is used to communicate with the device. This will allow any piece of compliant third party software to operate the device without the need to have special knowledge about the firmware structure. This shall be illustrated by the following figure:
The name of the firmware update archive (* in the figure above) is:
Only during a firmware update the firmware file that has been selected from the file system of the host system will be downloaded permanently into the device's non-volatile memory.
So assume a device with a certain firmware version is connected to a host system.
During an explicit firmware update, the firmware file will be downloaded onto the device. In order to become active the device must be power-cycled:
This can either be done by unplugging the device and then by plugging it back in or (for devices supporting this feature) by resetting/rebooting the device by a certain software command (DeviceControl/DeviceReset). When using mvDeviceConfigure to update devices the latter mechanism will be used by the tool thus it is NOT necessary to unplug the device.
When the device has completed rebooting the new firmware version will become active:
Device/FirmwareVersion
or DeviceControl/DeviceFirmwareVersion
using the APIDeviceControl/mvDeviceFPGAVersion
Using wxPropView the same information is available as indicated by the following figure:
Apart from the device driver and firmware relationship there are certain places where a device configuration can be stored when dealing with GenICam compliant devices:
Both methods can be used to pre-configure a device. Using the first method, the state of the features will travel with the physical device, using the mvIMPACT Acquire settings, feature states can be copied from host to host as a file.