Synchronous image acquisition
Many high precision applications in machine vision require multiple cameras to capture frames synchronously. This application note will outline the methods available to synchronize multiple IDS uEye cameras for use in these applications.
Three primary methods exist to synchronize the capture of multiple cameras. The first uses software trigger; the second method uses hardware trigger and an external trigger signal; and the third method uses the digital output of one camera to hardware trigger a group of cameras.
Software Trigger
The software trigger method does not require any additional hardware setup. Simply connect your uEye cameras to the PC. All uEye cameras except the USB 2 uEye XS and USB 3 uEye XC have access to a software trigger mode. Due to the nature of operating systems, software triggered mode has an indeterminist delay between the software command and start of image capture. Applications that require more than 10s of milliseconds precision should use one of the other methods below.
For details on the setup, please refer to the uEye MultiCam Demo that is installed with the IDS Software Suite on Windows systems.
Hardware Trigger
This method can be used with all uEye cameras except the USB 2 uEye XS, USB 3 uEye XC, and USB/USB 3 uEye LEs with housing. Using a hardware trigger is easy to set up, but requires the most external hardware. Please refer to the appropriate trigger wiring diagram in Electrical Specifications for your camera model in the uEye manual.
To test the hardware trigger setup, use uEye Cockpit. Open all of the cameras in separate instances of the program, and set the cameras to ‘continuous trigger’ mode using the button on the toolbar.
Open up the properties window (the wrench icon: ) and navigate to the “Trigger” tab. Change the mode from “Software” to “Falling edge”.
For guidance on how to set up trigger mode in the SDK, please refer to the uEye SimpleTrigger example and the uEye manual: is_IO.
Master/Slave Hardware Trigger
In this option, all cameras are configured to be used in triggered mode. Then, the flash input, or a GPIO is configured to trigger all cameras simultaneously.
In the figure, the flash output of the master camera is used to trigger the master camera and the slave cameras synchronously. The pins and available outputs will vary depending on what camera model you have. Please see Electrical Specifications in the uEye manual for further information on your specific camera.
To test the master/slave hardware setup, use uEye Cockpit. Open all of the cameras in separate instances of the program, and set the cameras to triggered mode using the button on the toolbar.
Next, open up the properties window (the wrench icon: ) and navigate to the “Trigger” tab. Change the mode from “Software” to “Falling edge”.
All of the cameras should stop acquiring frames. Now switch to the “Input/Output” tab in “Properties”. Under the flash output group box, change the output to “Constant high”, then to “Constant low”. This creates a falling edge all of the cameras trigger off of. You should see a new frame captured.
If your specific camera can use pulse-width modulation (PWM), you can use this output as a trigger signal source instead of toggling the flash high/low manually in the software. Please refer to the uEye manual page “Using pulse-width modulation” for more information.
To duplicate this in the SDK, follow an example that uses trigger mode (such as uEye SimpleTrigger). Using the is_IO command, switch the output to “Constant high”. Then, when you want to trigger the camera, switch the output to “Constant low” to create a falling signal edge. Again, pulse-width modulation can be used instead of signaling high & low in code.
Bandwidth Implications
Please be aware that synchronizing multiple cameras puts significant stress on the bandwidth of an interface. USB 2.0 is not recommended for synchronizing multiple high resolution cameras. GigE and USB 3.0 are more suitable. USB 3.0 has the most bandwidth available, and GigE uEye cameras can utilize their internal buffer to delay the transfer of images.
For more information, please contact the IDS support team: http://en.ids-imaging.com/support.html