• Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
  • Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
home/Knowledge Base/Camera Setup/Using the TRI02KA Triton Linescan

Using the TRI02KA Triton Linescan

190 views 0 October 25, 2023 Updated on March 5, 2025

This knowledge base article covers how to trigger LUCID’s TRI02KA line scan camera. 

What is a line scan camera? 

In contrast with an area scan camera, which takes rectangular images at once, a line scan camera acquires image data using a single row of pixels at a time. The camera then stacks the data from multiple rows of pixels to form a rectangular image. 

Triggering a line scan camera 

Similarly to an area scan camera, a line scan camera can be triggered using software triggering, hardware triggering, and PTP Sync. However, to achieve higher triggering speeds, you need to use hardware triggering.

The TRI02KA can be triggered at 60,000 Hz, which means that it acquires 60,000 lines per second. In line scan cameras, this rate is known as the line rate. Assuming that one image is made up of 64 lines, this means that AcquisitionFrameRate is equal to 60,000 lines / 64 lines ~= 937.5 frames per second ().  Alternatively, if the Height is set to 100, this number of lines will be combined to form an image, making AcquisitionFrameRate  equal to 60,000 lines / 100 lines = 600. 

Incomplete images

If the trigger stops during the construction of an image, e.g. at 20 lines out of 64 lines, the image is incomplete. The returned image will then consist of 20 new lines and 44 lines from the previous image. You can tell if an image is incomplete through the IsIncomplete attribute of the IBuffer interface of the Arena SDK. 

The images below show two frames—one complete frame, and another image where the trigger signal stopped before there was enough information for a complete image. 

Figure 1: A complete frame made up of multiple lines. Note that the lines are stacked from the bottom of the image.

Figure 2: The subsequent frame only has 20 new lines at the bottom. The remaining 44 lines are from the previous images. 

Achieving adequate line rate and frame rate 

Keep in mind the following points. 

  • Use a Width of 1752 to achieve a AcquisitonLineRate value of 60,000. You may be able to reach higher values by reducing the width. 
  • The maximum value of AcquisitionFrameRate is 1000. To achieve this frame rate, use at least Height = 60 at AcquisitonLineRate value of 60,000. Remember that Height x  AcquisitionFrameRate =  AcquisitonLineRate. 

Sample code 

See here for Python sample code that uses the following configuration to trigger a line scan camera: 

  • Width = 1752 
  • Height = 60   
  • Trigger Selector = LineStart 
  • Trigger Mode = On 
  • Trigger Source = Line 0 (you can any line of your choice) 

You can download the Python code here.

About the Encoder control 

Our Encoder control (a quadrature decoder) is designed to work with an external incremental encoder. The Encoder control outputs trigger signals and can be used as a trigger source by the Acquisition control. 

We describe several nodes in the Encoder control below. 

EncoderMode 

EncoderMode sets whether the decoder uses FourPhase mode with jitter filtering or the HighResolution mode without jitter filtering. Jitter includes phase error and symmetry error as shown in the diagram below. 

Mode  Jitter Filtering  Description 
Single Phase  yes  The camera interprets every pulse as positive direction (works like normal triggering), only one Source needs to be configured 
Four Phase  yes  Uses two Sources to determine encoder position and direction 
High Resolution  no  High-resolution mode instead tracks every change in state between A and B to give 4x the resolution but is susceptible to jitter – count will be shifted if any of the pulses are early or late 

 The decoder tracks every state change and only increments the position after we pass through all of them, which results in a 1/4 the resolution of the actual displacement of the encoder, but is at the same time makes the position more reliable. 

Jitter filtering makes the “Actual” signal more reliable.  

EncoderDivider

This node decides the number input pulses are required before the decoder produces an output pulse.  

  • With a divider of 1, it means for every input pulse, the camera generates one output pulse.  
  • With a divider of 10, the decoder generates an output pulse after 10 input pulses. 

EncoderOutputMode 

This node selects the conditions for the Encoder interface to generate an Encoder output signal 

Mode  Details 
Off  No output pulses from encoder control to acquisition control. 
DirectionUp  Only generate output pulses when we are moving in a positive direction, any pulses in the negative direction are ignored. 
DirectionDown  Only generate output pulses when we are moving in a negative direction, any pulses in the positive direction are ignored. 
PositionUp #  Only generate output pulses when our overall position is increasing. See the example below. 
PositionDown  Only generate output pulses when our overall position is decreasing. 
Motion  The direction is ignored completely. With a divider of n, after n pulses in any direction, it will output a trigger. 

Position Up

Suppose that the encoder is moving in the positive direction and the position counter increases to 100 (suppose also that the camera is are generating output pulses during this time). Suppose that the conveyor stops and starts moving backwards. The decoder stops outputting pulses and the counter decreases, say to 80. If the encoder subsequently stops and starts moving in the positive direction again, the decoder does not output any pulses while moving in the positive direction until the position reaches 100 again. Once the position passes 100, the position counter starts increasing again and the decoder start outputting pulses again. 

Encoder Reset 

Can be used to restore all of the logic to a known state (clears the location information). You can also enter a position in EncoderValue to start the encoder at a desired position when you restart it. 

When to use Encoder Reset 

Suppose that you have EncoderOutputMode configured to PositionUp. After running normally, the conveyor has an issue and you need to run the conveyor in the reverse direction for some time. You restart the conveyor, and you use the Encoder Reset command so the camera starts imaging immediately without waiting for conveyor to make up the earlier reverse travel. 

The decoder has wraparound protection for when the position reaches the max value. It is able to keep working correctly during and after a wraparound (in other words, it is able to run indefinitely). 

Was this helpful?

Yes  No
Related Articles
  • Projecting a Helios2 3D image to and from a 2D image
  • Focusing a Triton2 EVS Camera
  • Controlling Triton2 EVS camera’s event rate when connected at less than 2.5GigE (Event Rate Control / ERC)
  • Using Multiple RDMA Cameras on a Switch
  • Configuring RDMA for Linux
  • Configuring RDMA for Windows

Didn't find your answer? Contact Us

  Connecting LUCID Cameras to Multiple Network Interfaces (NIC) with Linux

Logging and the Arena SDK    

© 2024 LUCID Vision Labs Inc.
Looking to purchase our cameras?
Visit the LUCID Webstore at thinklucid.com
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}