You are here: Start » Application Notes » Hardware Triggering Zebra CV60 Camera using Zebra 4Sight EV7 Auxiliary Outputs

Hardware Triggering Zebra CV60 Camera using Zebra 4Sight EV7 Auxiliary Outputs

1. Introduction

The aim of this application note is to demonstrate how to configure and use the auxiliary output signals of a vision controller to perform hardware triggering on an area scan camera. By the end of this guide, you will be able to set up an automated hardware trigger loop using the Zebra 4Sight EV7 vision controller to capture images synchronously on a Zebra CV60 Area Scan Camera.

Required Hardware and Software:

2. Connecting the Devices

Before creating the software application, the hardware must be wired correctly. Based on the Zebra 4Sight EV7 Product Reference Guide and CV60 Area Scan Camera documentation, wire the devices as follows:

  1. Parallel VCC Connection:
    • The Supply Voltage (VCC, 24V) is fed to Pin 1 of the CV60 camera (main power and I/O reference).
    • Simultaneously, VCC is connected to AUX_OUT0+ on the EV7 controller.
  2. Signal Reception (CV60):
    • The current sourced from AUX_OUT0- enters Pin 2 of the CV60 camera.
  3. Circuit Return (GND):
    • Pin 3 and Pin 6 of the CV60 camera must be tied to the common power supply ground (GND). This completes the circuit for both the camera's main power and the opto-isolated input return path.

3. Creating the Application in Aurora Vision Studio

With the hardware wired, we will now create an application that periodically toggles the EV7 output to trigger the camera, while a separate background task handles the image acquisition.

Part A: Configuring the Output Signal (Main Task)

This section of the program will act as our trigger generator, toggling the output state.

  1. In the Main macrofilter, add a Loop filter to the ACQUIRE section. Set the inDelay input to 1000 (milliseconds).
  2. Add a Z4Sight_SetOutputLevel filter in the PROCESS section.
    • Set the inDeviceID input to "Host" and "Default".
    • Set the inForceUserOutputSource input to True.
  3. In the Project Explorer window, right-click on the Main macrofilter and choose the "Add macrofilter register" option. Name the new register "state" and set its type to Bool. Set its initial value to True.
  4. Connect prev state from the Macrofilter Register Inputs block to the inLevel input of the Z4Sight_SetOutputLevel filter.
  5. Add a Not filter to the PROCESS section.
    • Connect its input to prev state from the Register Inputs.
    • Connect its output to next state on the Register Outputs block.

Part B: Configuring the Camera Acquisition (Worker Task)

Image grabbing must run independently of our 1-second trigger loop, so we will place it in a Worker Task.

  1. Create a new Worker Task macrofilter. Name it "Cam".
  2. Inside the "Cam" worker task, add a Loop filter to the ACQUIRE section. Set the inDelay input to 0.
  3. Create a new standard Step macrofilter and name it "CamMainLoop". Drag and drop this new task into the "Cam" worker task (inside the loop).
  4. Inside the "CamMainLoop" task, add the AILDigitizer_GrabImage filter to the ACQUIRE section. Drag and drop its inDeviceID input to the Macrofilter Inputs block to expose it.
  5. Go back to the "Cam" worker task. Select the "CamMainLoop" block and set the inDeviceID parameter values in the Properties window:
    • System: GigEVision
    • Device: DEV0
    • Digitizer: DEV0

Part C: Initializing Camera Parameters

We must configure the camera's GenICam features to listen for the hardware trigger on the correct line.

  1. Go back inside the "CamMainLoop" task. In the INITIALIZE section, add the following filters in order, and connect the inDeviceID input of each tool to the inDeviceID from the Macrofilter Inputs block:
  2. Configure the seven AILDigitizer_SetEnumParameter filters as follows:
    • First: Parameter name: AcquisitionMode | Value: Continuous
    • Second: Parameter name: TriggerSelector | Value: FrameStart
    • Third: Parameter name: TriggerMode | Value: On
    • Fourth: Parameter name: TriggerSource | Value: Line5 (Note: maps to physical Pin 2 on the CV60)
    • Fifth: Parameter name: TriggerActivation | Value: RisingEdge
    • Sixth: Parameter name: ExposureMode | Value: Timed
    • Seventh: Parameter name: ExposureAuto | Value: Off
  3. Configure the AILDigitizer_SetDoubleParameter filter:
    • Parameter name: ExposureTime | Value: 1000.0 (microseconds)

Now you can run the application. The system will alternate the EV7's auxiliary output state every second, generating a rising edge that hardware-triggers the CV60 camera to acquire a frame.

Part D: Using the EV7 Timer Mechanism (Alternative Method)

Instead of changing the output value by software as shown in Part A, you can use the EV7 Timer mechanism. To do that:

  1. Delete all the filters inside the Main macrofilter.
  2. Create a new task macrofilter and name it "Z4SightLoop". Add it to the PROCESS section of the Main macrofilter.
  3. Inside the Z4SightLoop, add these filters to the INITIALIZE section: Z4Sight_ConfigureTimer, Z4Sight_EnableTimer, Z4Sight_SetOutputSource.
  4. Drag and drop the inDeviceID input of one of these tools to the Macrofilter Inputs block to create a new task input. Connect the new input to the rest of the Z4Sight filters.
  5. Go back to the Main macrofilter. Set the inDeviceID input values of the Z4SightLoop:
    • System: Host
    • Device: Default
  6. Go back to the Z4SightLoop.
  7. For the Z4Sight_ConfigureTimer filter, set the inDelay parameter to 5000000000.
  8. For the Z4Sight_SetOutputSource filter, set the inSource input to Timer1.
  9. Add the Loop filter to the ACQUIRE section.

Now you can run the application.

4. References & Media

Hardware Documentation: