Home    Company News    Camera Trigger Configuration

Camera Trigger Configuration

Created on:2026-05-15 00:00
 

 

1 Trigger Overview

In the fields of machine vision, industrial cameras, and scientific imaging, a Trigger is a mechanism that controls when a camera starts image acquisition. Instead of continuous streaming in free-running mode, the camera performs exposure and image capture precisely at a specific moment based on external signals or internal conditions. This achieves high-precision synchronization with moving objects, light sources, PLCs, robotic arms, and other devices.

1.1 Why Trigger Is Required

  • Avoid motion blur: Capture high-speed moving objects on conveyor belts.
  • Save bandwidth and storage: Take images only when targets appear.
  • Multi-camera synchronization: Multiple cameras capture the same event simultaneously.
  • Sync with light sources: Expose exactly when the flash is triggered.
  • Improve system determinism: Make image acquisition timing predictable.

1.2 Main Types of Camera Trigger

1.2.1 Hardware Trigger ✅ (Most Common & Reliable)

Principle: Receive level signals (TTL/RS422/LVTTL, etc.) through camera GPIO interfaces such as Hirose or M12 to start exposure.

Signal Types:

  • Rising Edge: Trigger when signal jumps from low to high.
  • Falling Edge: Trigger when signal jumps from high to low.
  • High / Low Level Trigger: Multiple triggers allowed while the level remains valid (less commonly used).

Advantages: Ultra-low latency (microsecond level), low jitter, strong anti-interference.

Typical Applications: Industrial production lines, robot guidance, laser synchronization.

Example: Photoelectric sensor detects product arrival → outputs TTL high level → camera exposes immediately.

1.2.2 Software Trigger

  • Principle: Send trigger commands from host software (Halcon, OpenCV, vendor SDK).
  • Implementation: Call API functions such as AcquisitionStart plus trigger command.
  • Advantages: No extra wiring required, easy debugging.
  • Disadvantages: Affected by OS scheduling; high and unstable latency (millisecond jitter), not suitable for high-speed or high-precision scenarios.
  • Applicable Scenarios: Laboratory debugging, low-speed inspection, cameras without hardware trigger interface.

1.2.3 Free Running ❌ (Not Strictly a Trigger Mode)

  • The camera captures continuously at maximum frame rate without relying on external signals.
  • Suitable for static scenes or applications with no synchronization requirement.

1.2.4 Encoder Trigger (Advanced Hardware Trigger)

  • Principle: Camera connects to a rotary encoder; triggers by moving distance rather than time.
  • Feature: Achieve equal-distance sampling; image spacing remains consistent even if conveyor speed fluctuates.
  • Applications: Printing inspection, web material inspection such as fabric and metal coil.

1.2.5 Multi-Camera Synchronization Trigger

  • Master-Slave Mode:
  • One camera acts as Master to output synchronization signals;
  • Other cameras act as Slave to receive signals and expose simultaneously.
  • Hardware Sync In / Sync Out lines or PTP (Precision Time Protocol) achieve nanosecond-level synchronization.
  • Applications: 3D reconstruction, multi-angle inspection.

1.2.6 Strobe / Flash Trigger Output

  • Though not an input trigger, it is closely related:
  • At the start of exposure, the camera outputs a strobe signal via GPIO to trigger external light sources.
  • Ensure the light only turns on during exposure to save power and avoid overexposure.

1.3 Key Trigger Configuration Parameters

Parameter Description
Trigger Mode On / Off (Enable or disable trigger function)
Trigger Source Line0, Line1, Software, Action0 (Select trigger input source)
Trigger Activation RisingEdge, FallingEdge, AnyEdge
Trigger Delay Delay exposure in microseconds after trigger assertion (for mechanical and optical path delay compensation)
Exposure Mode TriggerWidth (exposure time determined by trigger pulse width) / Timed (fixed exposure time)

2 Unique Trigger Mechanism of CoaXPress

In addition to the conventional trigger methods mentioned above, CXP devices support trigger transmission through the Low Speed Up connection, which is typically sent from Host to Device.

The following is an example of TriggerSource options for the EoSens 25CXP+ camera series:

<Enumeration Name="TriggerSource">
    <ToolTip>This feature defines the source of the trigger signal.</ToolTip>
    <Description>This feature defines the source of the trigger signal.</Description>
    <DisplayName>Trigger Source</DisplayName>
    <Visibility>Beginner</Visibility>
    <pIsLocked>IsRunning</pIsLocked>
    <EnumEntry Name="Software">
        <DisplayName>Software Trigger</DisplayName>
        <Value>0x0</Value>
    </EnumEntry>
    <EnumEntry Name="CXPTrigger">
        <DisplayName>CXP Trigger</DisplayName>
        <Value>0x4</Value>
    </EnumEntry>
    <EnumEntry Name="Line0">
        <DisplayName>Line Trigger 0</DisplayName>
        <pIsImplemented>DIN1ConnectorType</pIsImplemented>
        <Value>0x8</Value>
    </EnumEntry>
    <EnumEntry Name="Line1">
        <DisplayName>Line Trigger 1</DisplayName>
        <pIsImplemented>DIN1ConnectorType</pIsImplemented>
        <Value>0x9</Value>
    </EnumEntry>
    <pValue>TriggerSourceReg</pValue>
</Enumeration>

Software: Host writes Device register to generate single-shot trigger.
CXPTrigger: Host sends trigger by inserting dedicated protocol packets to Device.
Line0/Line1: Hardware IO ports on the camera, typically 12-pin external input.
Trigger accuracy and latency performance ranking: Software < CXPTrigger < Line0/Line1.

 

The following focuses on the usage of CXPTrigger.

2.1 How Host IP Sends CXPTrigger

Excerpted from IP core manual.

2.1.1 Trigger Interface Description

The trigger interface supports mutual trigger transmission between Device and Host. Currently, no mainstream vendor supports Device-to-Host trigger transmission. Camera trigger sources are categorized into three types:

  • CoaXPress Software Trigger: Implemented by Host writing registers to Device.
  • CoaXPress Protocol Trigger: Trigger input through Host Link layer; better real-time performance than software trigger, widely used without extra physical trigger wiring.
  • CoaXPress External Hardware Trigger: Controlled by external hardware wiring; lowest latency and negligible delay, but requires additional trigger signal cables.

This section describes the Host IP Link layer interface for sending trigger signals to CoaXPress Device.

Table 21 Trigger Interface Signals

Signal Name I/O Description
trigger_clk Input Optional trigger clock. Used to synchronize trigger signals when TRIGGER_CLK_SYNC is enabled. Disabled by default; 125MHz clock when used.
trigger_clrn Input Optional trigger reset. Resets synchronization logic when TRIGGER_CLK_SYNC is enabled.
trigger_in Input Trigger edge selection per Link. 0 = send trigger on falling edge; 1 = send on rising edge.
trigger_in_chg Input Trigger pulse from Host to Device, one bit per Link.
trigger_ack Output Device trigger acknowledge; indicates Device has received Host trigger command.
trigger_out Output Downlink trigger output from Device to Host. Rarely used and not supported by most vendors; may be removed in future CXP versions.
trigger_delay_out Output Downlink trigger delay value per Link.
trigger_out_chg Output Valid indication for trigger_out signal per Link.
missed_triggers_count_out Output Missed trigger counter, 32-bit per Link.
sent_triggers_count_out Output Sent trigger counter, 32-bit per Link.
in_chg_triggers_count_out Output Received valid trigger counter, 32-bit per Link.
ack_triggers_count_out Output Trigger acknowledge counter, 32-bit per Link.

 

Figure 21 Uplink Trigger Timing (Host to Device)

 

Figure 22 Downlink Trigger Timing (Device to Host)

2.2 How Device IP Receives CXPTrigger

Excerpted from IP core manual.

2.2.1 Trigger Interface Description

The interface supports trigger transceiving between Device and Host. Device-to-Host trigger is currently unsupported by most vendors.

Table 22 Trigger Interface Signals

Signal Name I/O Bit Width Description
trigger_in Input 4 Trigger index (0~15), corresponding to LinkTrigger0 ~ LinkTrigger15.
trigger_in_chg Input 1 Rising edge starts trigger packet transmission, indicating valid trigger assertion.
trigger_ack Output 1 Trigger acknowledge flag, indicating Host has responded to the trigger.
trigger_out Output 1 Uplink trigger output; toggles when receiving trigger packet from Host.
trigger_delay_out Output 9 Uplink trigger delay value.
trigger_out_chg Output 1 Indicates trigger_out has updated and is valid.

Downlink Trigger (Device → Host): Not recommended and unsupported by most vendors.

To transmit downlink trigger, set trigger_in to select LinkTrigger index. Assert a single-cycle pulse on trigger_in_chg to start trigger packet transmission. The IP internally calculates and inserts trigger delay into the packet.

After downlink packet transmission, Host replies with acknowledge via I/O channel and generates a single-cycle pulse on trigger_ack. Do not issue a new trigger until the previous trigger is acknowledged or internal timeout expires.

Figure 23 Downlink Trigger Timing (Device to Host)

Uplink Trigger (Host → Device)

Upon receiving an uplink trigger packet, the IP outputs trigger level and delay value on trigger_out and trigger_delay_out respectively. A single-cycle high pulse on trigger_out_chg indicates valid trigger arrival. The IP automatically generates a reply command to Host.

Figure 24 Uplink Trigger Timing (Host to Device)

Hello-FPGA info@hello-fpga.com