Configure Pointgrey Firefly MX camera in a multi-touch setup [Update]

I’ve found many instructions in the nuigroup forum on how to configure the Pointgrey Firefly MV Firewire camera in a multi-touch setup and especially with the Touchlib.

As information about this topic is widely scattered, I want to write down some helpful steps on how to configure the Firefly in this post.

Pointgrey Firefly MV with Tamron zoom lens mounted with tripod bracket
Pointgrey Firefly MV with Tamron zoom lens mounted with tripod bracket

Based on the great near-infrared performance of the Firefly MV and the relatively cheap price (400 $ incl. shipping in Europe) the Firefly seems to be the best choice for someone who wants to build a relatively low-cost multi-touch setup.

This camera supports two kinds of drivers under Windows:

  • The FlyCapture driver: A proprietary driver that has a very good performance and offers many possibilities to adjust camera settings.
  • The FlyStream driver: A WDM driver that allows to use the Firefly in standard media programs within Windows.

Thus, using the FlyStream driver is much easier. However, whereever this is possible it is recommendable to use the FlyCapture driver because it has less latency and offers more fine-tuning possibilities.

Both drivers can be installed using the Pointgrey installation CD that comes with the camera. Included in the software is the tool driverControlGUI.exe, which allows you to switch between both drivers:

Pointgrey driverControlGUI.exe screenshot
Pointgrey driverControlGUI.exe screenshot

Another tool is the application FlyCap that allows you to adjust camera parameters like brightness, exposure and so on:

FlyCap camera configuration screenshot
FlyCap camera configuration screenshot

All parameters that are enabled in FlyCap are running in automatic mode. This means that the camera is constantly adjusting those values according to the lighting conditions of the camera’s environment. For at least one parameter that is the worst thing the Firefly could do in a multi-touch setup: The exposure seems to regulate how strong the grey value of a light impulse on a pixel of the sensor must be to be recognized as light. Hence, unticking the automatic box and pulling the slider down to around 20 makes the camera much more light sensitive for the surrounding. Take e.g. this comparison image:

Setting the exposure value low in FlyCap tool
Setting the exposure value low in FlyCap tool

This image shows nearly the same hand position in the same surrounding with the same lighting conditions (shades pulled up, daylight) with two different exposure values: on the left the automatic value is 58 and on the right the manual value is 22.

After adjusting the exposure value accordingly the adjustments must be saved to the Windows registry by clicking “Save” in the line Windows Registry. That causes the adjusted changes to be reflected in applications that use the Firefly (however those applications must support the FlyCapture driver).

In the case of the Touchlib the support of the FlyCapture driver can be achieved by manipulating the file config.xml: the first node in the xml element filtergraph called dsvlcapture must be replaced with the node vwcapture. This causes the Touchlib to replace the video capture library DSVL, which uses the WDM model that supports the FlyStream driver, with the video capture library VideoWrapper, which supports the FlyCapture driver. The complete vwcapture node could then look like this:

<vwcapture label =”capture1”>
<videostring value=”pgr: 0 640 60 grey8 1 rgb” />

More information about the configuration of VideoWrapper in the Touchlib.

Update: You must not forget to copy all Pointgrey dlls from the Pointgrey folder to the Touchlib folder in order to make the FlyCapture driver work with the Touchlib

For some videos of our Flash multi-touch applications see also:

Published by Johannes Luderschmidt

About this blog