CMU 1394 Digital Camera Driver

Main


Current Version

The current version of the driver is 6.4.5, released on 17 March, 2008 by Christopher Baker cbaker+iwan1394@cs.cmu.edu.

It is a bugfix release in the 6.4 series, adding:
  • Support for Point Grey Research Dual-Packet mode to squeeze every last drop of bandwidth off of the bus. This is opt-in support; see the documentation for C1394Camera::StartImageAcquisitionEx() for details.
  • A bugfix in C1394Camera::RegLoadSettings() where only the first value (image format) would be loaded from the registry.
Many thanks to Tim and Malcom at PGR for their support, and to Tuukka for pointing out the bug (and fix) in RegLoadSettings().

Features

  • Distribution
  • API overhaul
    • Complete rework of the C1394Camera and associated class interfaces against better Object-Oriented Design Priciples (encapsulation and data-hiding).
    • Migrated toward strong Model-Controller-View separation of concerns: (1394cmdr.sys-1394camera.dll-1394CameraDemo.exe).
    • Complete (if partially untested) implementation of IIDC DCAM version 1.31.
      • 1394b support in-place, but not thoroughly tested as I do not have access to a 1394b camera (update: several users have reported success running at 800 mbps)
      • Optional Functions (PIO,SIO,Strobe) are implemented but completely untested for similar reasons (update: as with 1394b support, several users have reported some success using these features)
      • Format 6 (Stored Image) is still being ignored (does a camera even exist that supports this?).
  • Behavioral Changes
    • No more kernel-side frame timeouts. Previously, a frame buffer would simply detach itself after ten seconds, causing trouble for low frame rates and/or infrequent triggering.
    • OneShot and MultiShot functionality are now meaningfully exposed (see the documentation for CAM_ACQ_START_VIDEO_STREAM for details)
    • You may now stream the camera data to multiple PC's on the same 1394 bus (see the documentation for CAM_ACQ_SUBSCRIBE_ONLY for details).
  • Documentation
    • Uses Doxygen to generate 1394camera.chm

Summary

We provide a free driver as well as a C++ software library for cameras that comply with the 1394 Digital Camera Specification as published by the 1394 Trade Association www.1394ta.org.  It is a fast, easy way to gain direct access to camera imagery and direct control of camera features.

Introduction

The advent of IEEE-1394 based digital cameras seemed to be the ideal solution for acquiring high quality images with a regular laptop or PC. These cameras allow for both high quality images and fast image acquisition at up to 400 mbps.  When this project started in 1999, 1394 digital cameras were just becoming commercially available.  The problem at the time was a near complete lack of software support. We chose to fill this void by writing a software driver ourselves and making it available to the general public at no charge. The result of our efforts is a C/C++ software library (DLL) that works with any compliant camera running on Windows 98 SE or later.

In its current incarnation, the software provides a simple interface acquiring images, the ability to manipulate any available camera feature, and a tight, clean API.  The software has been thoroughly tested on only a few cameras (Sony DFW-V500,VL500, Pyro Webcam), but there is nothing coded specifically for these cameras and the driver should work with any other compliant camera. The distribution also includes complete source for a demo application (MFC) that demonstrates the functionality of the library.

Acknowledgements

We would like to thank the following people
  • Iwan Ulrich: Who developed this driver and development kit. Iwan is unfortunately no longer with us. He and his wife Catherine were killed in a severe car accident during a vacation on the West Coast on July 4, 2000. As a tribute to Iwan, we at The Robotics Institute will continue to maintain this very popular software package.
  • David Walk for lending us a camera for several months and for his support in general.
  • Jerry Fife for lending us Sony cameras and for providing us with technical information
  • Ben Wegbreit for funding a large part of this project.
  • Mark Whitehorn for helping with the multiple camera support.
  • Ruigang Yang and Greg Welch for Windows 2000 support.
  • Chikayoshi Okamura for his technical support.
  • Larry Klementowsky for his technical advice.
  • Darlene Theriault for providing documentation.
[count]
Since 12/1/99