Home    Company News    Camera Trigger Configuration

Camera Trigger Configuration

Created on:2026-05-15 00:00
 

1 Trigger

In machine vision, industrial camera or scientific imaging fields, "Trigger" is a mechanism that controls when the camera starts capturing images. It makes the camera stop continuous shooting (Free Running mode) and precisely expose and capture images at specific moments according to external signals or internal conditions, so as to achieve high-precision synchronization with moving objects and other devices (such as light sources, PLC, robotic arms).

1.1 Why Do We Need Trigger?

  • Avoid motion blur: Capture high-speed moving objects on conveyor belts.
  • Save bandwidth/storage: Only take photos when there is a target.
  • Multi-camera synchronization: Multiple cameras shoot the same event simultaneously.
  • Synchronize with light sources: Expose at the moment the flash lights up.
  • Improve system determinism: Ensure predictable image capture timing.

1.2 Main Types of Camera Trigger

1.2.1 Hardware Trigger ✅ (Most Commonly Used & Reliable)

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

Signal Types:

  • Rising Edge Trigger: Trigger when the signal jumps from low → high.
  • Falling Edge Trigger: Trigger when the signal jumps from high → low.
  • High Level Trigger / Low Level Trigger: Can be triggered multiple times during the valid level period (rarely used).

Advantages: Low latency (microsecond level), small jitter, strong anti-interference.

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

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

1.2.2 Software Trigger

  • Principle: Send instructions to trigger camera shooting through upper computer software (such as Halcon, OpenCV, manufacturer SDK).
  • Implementation: Call API functions (such as AcquisitionStart + trigger command).
  • Advantages: No extra wiring, easy debugging.
  • Disadvantages: Affected by operating system scheduling, high and unstable latency (millisecond-level 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 ❌ (Strictly not a "trigger", but often used for comparison)

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

1.2.4 Encoder Trigger (Advanced Hardware Trigger)

  • Principle: The camera connects to a rotary encoder and triggers shooting according to the moving distance of the object (not time).
  • Feature: Realize "equidistant sampling", even if the conveyor speed changes, the image spacing remains consistent.
  • Applications: Printing inspection, long-format material inspection (such as cloth, metal coils).

1.2.5 Multi-Camera Synchronization Trigger

  • Master-Slave Mode: One camera acts as the "master" and sends synchronization signals;
  • Other cameras act as "slaves" and receive the signal to expose simultaneously.
  • Use hardware lines (such as Sync Out / Sync In) or PTP (Precision Time Protocol) to achieve nanosecond-level synchronization.
  • Applications: 3D reconstruction, multi-view inspection.

1.2.6 Exposure Signal Output (Strobe / Flash Trigger)

  • Although not an "input trigger", it is closely related:
  • When the camera starts exposure, it outputs a flash signal (Strobe Out) through GPIO to trigger external light sources.
  • Ensure the light is only on during exposure, saving energy and avoiding overexposure.

1.3 Key Trigger-Related Parameters (Common in Camera Configuration)

Parameter Description
Trigger Mode On / Off (Whether to enable trigger)
Trigger Source Line0, Line1, Software, Action0 (Select trigger source)
Trigger Activation RisingEdge, FallingEdge, AnyEdge
Trigger Delay Delay exposure by microseconds after trigger (Used to compensate for mechanical/optical path delay)
Exposure Mode TriggerWidth (Exposure time determined by trigger pulse width) or Timed (Fixed exposure time)
 Name="TriggerSelector">
    Selects the type of trigger to configure.
    Selects the type of trigger to configure.
    Trigger Selector
    Beginner
    IsRunning
     Name="FrameStart">
        0x0
    
     Name="FrameBurstStart">
        0x1
    
    TriggerSelectorReg


 Name="TriggerSelectorReg">
    
0x8900
4 RW Device BigEndian Name="TriggerMode"> Controls if the selected trigger is active. Controls if the selected trigger is active. Trigger Mode Beginner IsRunning Name="On"> 0x1 Name="Off"> 0x0 TriggerModeReg Name="TriggerModeReg">
0x8904
4 RW Device TriggerSelectorReg UserSetLoadReg BigEndian Name="TriggerSource"> This feature defines the source of the trigger signal. This feature defines the source of the trigger signal. Trigger Source Beginner IsRunning Name="Software"> Software Trigger 0x0 Name="CXPTrigger"> CXP Trigger 0x4 Name="Line0"> Line Trigger 0 DIN1ConnectorType 0x8 Name="Line1"> Line Trigger 1 DIN1ConnectorType 0x9 TriggerSourceReg Name="TriggerSourceReg">
0x8908
4 RW Device TriggerSelectorReg UserSetLoadReg BigEndian Name="TriggerActivation"> This feature defines the activation mode of the trigger signal. This feature defines the activation mode of the trigger signal. Trigger Activation IsRunning Name="RisingEdge"> Rising Edge 0x4 Name="FallingEdge"> Falling Edge 0x5 Name="AnyEdge"> Any Edge 0x6 TriggerActivationReg Name="TriggerActivationReg">
0x890C
4 RW Device TriggerSelectorReg UserSetLoadReg BigEndian Name="TriggerSoftware"> Generates an internal trigger. TriggerSource must be set to Software. Generates an internal trigger. TriggerSource must be set to Software. Software Trigger Beginner TriggerSoftwareReg 0 Name="TriggerSoftwareReg">
0x8910
4 WO Device BigEndian

2 CoaXPress Unique Trigger

In addition to the triggers mentioned above, CXP devices also support sending trigger signals through the Low Speed Up connection, which usually refers to sending from HOST to Device.

Let's look at an example. The following are the trigger source options of the EoSens 25CXP+ series camera:

 Name="TriggerSource">
    This feature defines the source of the trigger signal.
    This feature defines the source of the trigger signal.
    Trigger Source
    Beginner
    IsRunning
     Name="Software">
        Software Trigger
        0x0
    
     Name="CXPTrigger">
        CXP Trigger
        0x4
    
     Name="Line0">
        Line Trigger 0
        0x8
    
     Name="Line1">
        Line Trigger 1
        0x9
    
    TriggerSourceReg

Software here means HOST writes DEVICE registers to complete a single trigger. CXPTrigger means HOST can insert data packets to send triggers to DEVICE. Line0/1 are the hardware IO ports on the camera, typically 12PIN input ports. Obviously, the trigger accuracy and delay accuracy are in the order: Software < CXPTrigger < Line0/1

The following focuses on the use of CXPTrigger.

2.1 How HOST Sends CXP Trigger

The following content is excerpted from the IP manual, and the final interpretation right belongs to Xingce Electronics.

2.1.1 Trigger Interface

Used for Device and Host to send and receive trigger signals to each other (no manufacturer supports Device to HOST sending at present). There are usually 3 trigger sources for the camera:

  • CoaXPress Software Trigger: Implemented by HOST writing registers to DEVICE equipment;
  • CoaXPress Protocol Trigger: Implemented by HOST LINK layer trigger input signal, which has stronger real-time performance than software trigger, widely used in practical applications, no extra trigger wiring for the camera;
  • CoaXPress Camera External Hardware Trigger: Implemented by external hardware wiring of the camera, with the strongest real-time performance, the delay from trigger signal sending to camera receiving is negligible, but extra trigger signal wiring is required

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

Signal Name I/O Description
trigger_clk Input Optional trigger clock input. Used to synchronize the trigger signal after TRIGGER_CLK_SYNC is enabled. Default disable, use 125M clock input.
trigger_clrn Input Optional trigger reset input. Used to reset the synchronization logic after TRIGGER_CLK_SYNC is enabled.
trigger_in Input Trigger edge selection. trigger_in[n] indicates link n. 0 means send trigger on falling edge, 1 means send trigger on rising edge.
trigger_in_chg Input Trigger pulse sent from Host to Device. trigger_in_chg[n] indicates link n.
trigger_ack Output Device trigger response signal, indicating whether the device has received the trigger command sent by the host. trigger_ack[n] indicates link n.
trigger_out Output Device to Host downlink trigger output. trigger_out[n*3:n] indicates link n. Rarely used in practical applications, most manufacturers do not support it, and will be considered for removal in subsequent CXP protocols.
trigger_delay_out Output Downlink trigger delay value. trigger_ack[n*7:n] indicates link n.
trigger_out_chg Output Trigger_out valid indication signal. trigger_out_chg[n] indicates link n.
missed_triggers_count_out Output Trigger loss counter output, 32bit per link.
sent_triggers_count_out Output Sent trigger counter output, 32bit per link.
in_chg_triggers_count_out Output Valid trigger reception counter, 32bit per link.
ack_triggers_count_out Output Trigger response counter output, 32bit per link.

Figure 21 uplink trigger timing, Host to Device

2.2 How DEVICE Receives CXP Trigger

The following content is excerpted from the IP manual, and the final interpretation right belongs to Xingce Electronics.

2.2.1 Trigger Interface

Used for Device and Host to send and receive trigger signals to each other (no manufacturer supports Device to HOST sending at present).

Table 22 trigger interface

Signal Name I/O Bit Width Description
trigger_in Input 4 Trigger input, a number N between 0 and 15, used to define the trigger, corresponding to LinkTrigger0 to LinkTrigger15.
trigger_in_chg Input 1 The rising edge of this signal triggers and starts the trigger data packet, marking the trigger signal valid flag.
trigger_ack Output 1 Trigger response flag, indicating that HOST has received the trigger and responded.
trigger_out Output 1 Uplink trigger output, changes when receiving trigger data packets from HOST.
trigger_delay_out Output 9 Uplink trigger delay value.
trigger_out_chg Output 1 trigger_out_chg signal indicates that the trigger output has changed and is valid.

uplink trigger HOST->Device:

When receiving the uplink trigger data packet, the IP outputs the received trigger level and trigger delay on the trigger_out and trigger_delay_out ports respectively. Pull up a single clock cycle pulse on the trigger_out_chg port to indicate that the relevant trigger has arrived. The IP will automatically generate a response command for the received trigger data packet to the host. The figure below shows the timing diagram of the uplink low-speed trigger interface.

Figure 22 uplink trigger timing, Host to Device

Hello-FPGA info@hello-fpga.com