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.
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:
Another tool is the application FlyCap that allows you to adjust camera parameters like brightness, exposure and so on:
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:
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: