This application note explains how to synchronize multiple SMARTEK Vision® GigE Vision cameras by a hardware trigger and display individual image streams using the viewer application. The image acquisition can be driven by a rising or a falling edge, the voltage for high (logical 1) has to be between 2.2 and 24 VDC.
1. Hardware Setup
In a first step the hardware setup, e.g. the wiring of the cameras is done. Powering the cameras is not explicitly mentioned in this application note, please refer to the User Manual or the Quick Start Guide for this. Depending on the camera model one can use PoE or the IO connector to power the camera.
1.1 Wiring General Purpose IOs
The cameras are equipped with a power and I/O-Interface. Via this interface the cameras provide access to two digital input and two digital output lines. The input lines are used to trigger the camera with an external signal. The output line can be used to trigger a second camera or any other device. Depending on the type of camera there are two different kind of connector types used. The housed camera models use a 12-pin circular Hirose (HR10A-10P-12S) connector. The connector and Pin assignment for housed cameras is shown in here:
EIAJ (Hirose compatible) 12 pin | 1 – Power GND | 5 – Input 2 – | 9 – Output 2- |
2 – 10-24V DC input | 6 – Input 2 + | 10 – Output 2+ | |
3 – Output 1 – | 7 – Input 1 + | 11 – Input 1 + | |
4 – Output 1 + | 8 – Input 1 – | 12 – Input 1 – | |
Type: Molex Picoblade (53398-1071) 10 Pin | 1 – 10-24V DC input | 5 – Output 1 + | 9 – Output 2- |
2 – Power GND | 6 – Output 1 – | 10 – Output 2+ | |
3 – Output 2 + | 7 – Input 1 + | ||
4 – Output 2 – | 8 – Input 1 – |
In the following context Input 1+ and Input 1- are used to trigger each camera. The operating voltage for the input is between +0 and +24 VDC, where a voltage between 0 and 1.4 VDC represents logical 0 and a voltage higher than +2.2 VDC represents logical 1. The current draw for each input line is between 5 and 15 mA. A summary is shown in 1.
Recommended operating voltage | +0 to +24 VDC |
Voltage level representing logical 0 | +0 to +1.4 VDC |
Region where the transition occurs, the logical state is not defined in this region | >+1.4 to +2.2 VDC |
Voltage level representing logical 1 | >+ 2.2 VDC |
Current draw for each input line | 5 to 15 mA |
A wiring diagram for two (or more) cameras is shown in 2, where IO c +/- represent the trigger signal from device sending the trigger, IO c+ carries the signal, IO c- is ground:
1.2 Setup Ethernet Connection
The Ethernet Interface provides configuration access to the camera and is also used for image data transmission. The connector is a standardize RJ45 jack.
To reach the optimal performance with the cameras, the right choice of hardware is crucial, as well as its configuration. Please refer to the User Manual on how to set up the NIC and enable Jumbo Frames.
If multiple cameras are used in one system you can either plug them all individually to your PC, utilizing Network Interface Cards (NIC) with more than one port or multiple NICs. Besides this a network setup with a Switch can be used. The advantage of a switch can be the reduced cable length and the need of only one Ethernet port on PC side. A drawback is, that the bandwidth between Switch and PC is in that case shared with all cameras and thus the bottleneck which is limited to the bandwidth of one port. Too much image data might collide or get lost. Therefore the Transport Layer Control has to be set up correctly, as shown in chapter Advanced configuration.
2. Software Setup
2.1 Basic Setup
After wiring the cameras it is necessary to setup the software. In this guide the GigE Vision Client as part of the SMARTEK GigEVisionSDK is used to configure the camera and display multiple image streams.
Start the GigE Vision Client and connect to the cameras (please refer to the SMARTEK Quick Start Guide on how install the SDK and to set IP address). The check button is shown in green if the camera is connected to the PC.
If you are connected to two or more cameras, the settings are applied to the one which is selected in the Device List (highlighted in blue or grey).
To display the image streams of all cameras individually, select each camera in the Device List (1) and click on the Floating Display Enable button (2). Immediately a new image display window opens, named with the Camera type, MAC address and IP address (3).
2.2 Configuring the cameras
For configuring the cameras the “Device Properties” window is used. Set the visibility in the device Properties window to „Guru“.
In the Section “TriggerSelector” you can choose different trigger operating modes:
- “AcquisitionStart”: Starts the acquisition like configured in “AqusitionMode” section. This mode is used to start, for example a continuous (AcquisitionMode=Continuous) acquisition with the first trigger signal, all further trigger signals are ignored afterwards. You have to stop the acquisition via software.
- “FrameStart”: Starts the acquisition of a single frame
- “FrameBurstStart”: Starts the acquisition of multiple frames; the count of frames is defined in the “AcquisitionBurstFrameCount” property.
Each trigger mode of “TriggerSelection” can be configured individually, all are valid in parallel. They can be switched on and off with “TriggerMode” = “On”/”Off”.
Make sure that only one TriggerMode is set to “On”. Otherwise the different triggers will interfere and result in unwanted results.
For grabbing one image with each trigger signal, the “FrameStart” trigger has to be configured in the section “TriggerSelector” as following:
Acquisition Start: Continuous
Trigger Selector: FrameStart
TriggerMode: On
TriggerLine: Line 1 (if line 2 is wired Line 2 accordingly)
TriggerActivation: According to your signal “rising edge” or “falling edge”
Make sure the exposure time is shorter than the time between two trigger signals. Trigger signals arriving during exposure are ignored.
Configure all your cameras with the upstanding parameters and start the image stream by clicking on the “Start” Button. Now you will receive an image from each camera with every trigger signal.
To save the parameters on the camera, stop the image stream by pressing the “stop” button and go to “UserSetControl”:
2.3 Advanced configuration (using a switch)
If multiple cameras are connected to the PC via a switch, you might run into bandwidth problems depending on the amount of cameras and the image size. Go therefore to the “TransportLayerControl” Section in the “DeviceProperties” window. Under “GevStreamChannelSelcetor” you can adjust the parameters GevSCPD and GevSCFTD.
Use the GevSCFTD parameter to set a delay between image acquisition and image transfer to the PC. All images are taken at the time, when the trigger arrives, but can be transmitted one after the other by rising the delay accordingly.
Below an example for 5MP cameras:
The Bandwidth between Switch and PC is 1GBit/s = 125MB/s.
Due to overhead about 100MB/s can be used to have a large safe margin.
A 5MP image at 8bit pixel depth has about 5 MB
The transmission of one frame takes 5 MB ./. 100 MB/s = 50ms
For the first camera the GevSCFTD must be set to 0, for every further camera it should be raised about 50ms in this case. The camera configuration will look as follows:
Camera # | GevSCFTD (in µs) |
1 | 0 |
2 | 50000 |
3 | 100000 |
n | n*50000 |