Technical Application Notes
Click an item to read from the list below.

Technical Application Notes


 

 

Synchronizing to an external trigger signal using DCAM 1.31 Trigger Mode_0

Technical Application Note TAN2004004

Revised October 5, 2006

Subject

Technical Application Note (TAN2004004): Synchronizing to an external device using DCAM 1.31 Trigger Mode_0.

10402

Applicable Product(s)

  • Bumblebee2 (all models)
  • Firefly MV (all models)
  • Flea2 (all models)
  • Dragonfly2 (all models)
  • Flea (all models) and Scorpion (all models except SCOR-03NS) IEEE-1394 digital cameras with firmware version 0.9.1.8 or higher
  • Dragonfly Express (all models)

Application Note Description

The purpose of this Technical Application Note is to provide the user with a set of basic instructions on how to configure one of the Applicable Product(s) above to acquire images synchronized to an external electrical signal using the DCAM 1.31 parallel input/output (PIO) functionality. This process is often known as “externally triggering” a camera. For a full explanation of the DCAM v1.31-specific input modes, please consult the “General Purpose Input/Output” section of the PGR IEEE-1394 Digital Camera Register Reference.

 

General Considerations

General Purpose Input/Output Pins

The Applicable Product(s) is/are equipped with a set of general purpose input/output (GPIO) pins that can be accessed via the Hirose connector on the back of the camera. Different products may use different Hirose connectors; consult your camera’s Technical Reference or Getting Started manual for part numbers and specifications, GPIO connector pin layouts, and GPIO electrical characteristics.

Testing Tools

For basic testing and configuration, we recommend using the FlyCap demo program (included with all versions of the PGR FlyCapture SDK) in conjunction with the PGR IEEE-1394 Digital Camera Register Reference. FlyCap allows easy access to camera trigger functionality and camera registers, and the PGR IEEE-1394 Digital Camera Register Reference is a source of general information pertaining to all PGR IEEE-1394 cameras. 

 

Example Programs and Source Code

The AsyncTriggerEx sample program that is included with the FlyCapture SDK. It demonstrates some of the basic asynchronous trigger capabilities of the Applicable Products above. This program only works with cameras that can be asynchronously triggered, either using an external hardware trigger or by using the camera's internal software trigger.

 

Configuring the Camera

Determine the Default External Trigger Pin

One of the camera GPIO pins is configured as the default trigger. To determine which pin is the default input/trigger pin either:

  1. Consult the Technical Reference or Getting Started manual for the camera; or
  2. Get the value of the TRIGGER_MODE register 0x830. The Trigger_Source field (bits 8-10) is the current trigger source e.g. if the value represented by the Trigger_Source field is 0, the default trigger source is GPIO0.

For example:
0x830 = 0x80100000

8

0

1

0

0

0

0

0

Hex

1000

0000

0001

0000

0000

0000

0000

0000

Binary

0-7

8-15

16-23

24-31

Bits

This indicates that a Trigger Mode is available (bit 0 = 1) but not currently enabled (bit 6 = 0). It also indicates that GPIO0 is the default trigger pin (bits 8-10 = 0), and the default polarity of the pin is active low (bit 7 = 0), which means the camera trigger on the falling edge of a pulse.

We recommend using method ‘2’ to determine the default trigger pin in order to avoid possible documentation errors.

Configure a Different GPIO Pin to be an External Trigger

If you wish to use a different GPIO pin as the external trigger instead of the default trigger, you will need to configure the specific pin to be an input trigger, then configure the camera to use this newly allocated trigger pin.

NOTE: Only one GPIO pin can be configured as a trigger source using this method. To have multiple pins acting as a trigger sources, use the GPIO_MODE_2 method via the GPIO_CTRL_PIN_x registers (see the PGR Register Reference for more information).

For example, to configure the camera to use GPIO2 as the external trigger pin:

  1. Get the value of the PIO_DIRECTION register 0x11F8 to determine the current states of each GPIO pin. For example:

0x11F8 = 0x20000000

2

0

0

0

0

0

0

0

Hex

0010

0000

0000

0000

0000

0000

0000

0000

Binary

0-7

8-15

16-23

24-31

Bits

 

Each of the first four bits represents the current state of its associated GPIO pin: ‘0’ indicates it is a input/trigger, and ‘1’ indicates it is an output/strobe. In the example above, 0x2 = 0010 in binary, so GPIO0, GPIO1 and GPIO 3 are all configured as inputs and GPIO2 is an output.

  1. To set GPIO2 in the example above to be an input/trigger, and all other GPIO pins as outputs:

0x11F8 = 0xD0000000

D

0

0

0

0

0

0

0

Hex

1101

0000

0000

0000

0000

0000

0000

0000

Binary

0-7

8-15

16-23

24-31

Bits

  1. Configure the camera to use GPIO2 as the external trigger source by setting bits 8-10 of the TRIGGER_MODE register (i.e. for GPIO  pin “2”, we set bits 8-10 to 010, which is 2 in binary):

0x830 = 0x8040000000 (assumes bits 11-31 are zero)

8

0

4

0

0

0

0

0

Hex

1000

0000

0100

0000

0000

0000

0000

0000

Binary

0-7

8-15

16-23

24-31

Bits

Enable Trigger Mode

The camera must be put into Trigger Mode_0 to allow it to be externally triggered.

To do this in the FlyCap graphical user interface:

  1. Open the Camera Control Dialog (F11)
  2. Select the “Trigger” tab (or “Extended” tab in older versions)
  3. Check the “Trigger Mode On/Off” checkbox

To do this by directly accessing the camera’s TRIGGER_MODE register:

  1. Get register 0x830
  2. Turn trigger Mode_0 ON by setting bit 6 to one (1) and setting bits 12-15 to zero (0)

Ensure Trigger is Armed

It is possible for the camera to be in asynchronous trigger mode but not be ready to accept a trigger. The reason for this is that the camera may be currently exposing an image; the camera is only ready to be triggered again when this image finishes integrating and is completely read off of the sensor.

To ensure that the camera is ready to be triggered, poll the SOFTWARE_TRIGGER register 0x62C or SOFT_ASYNC_TRIGGER register 0x102C. The concept of polling to ensure the trigger is armed is demonstrated in the AsyncTriggerEx example program distributed with the FlyCapture SDK.

Once the the trigger is reporting that it is armed, there should be no delay between when the user can enable isochronous transmission and when they can trigger the camera. In fact, it is possible to trigger the camera before iso is enabled and receive the image that was triggered, provided iso is enabled at some point during exposure. For example, assuming a 10ms shutter
time, it is possible to trigger the camera, enable iso 5ms after, and still receive the triggered image.

 

Externally Trigger the Camera

At this point, one of the camera’s GPIO pins should be configured as the external trigger source, the camera should be in Trigger Mode_0, and the trigger is armed and ready to be fired. To acquire an image, connect the external 5V or 3.3V TTL synchronization signal to the GPIO pin. Once the trigger signal is received, an image will be grabbed. For specific external trigger timing information, consult your camera’s Technical Reference or Getting Started Manual.