Digital IO Control
The camera has an 12-pin GPIO connector on the back of the case; refer to the diagram below for wire color-coding.
![]() |
||||
---|---|---|---|---|
Color | Pin | Line | Function | Description |
Black | 1 | N/A | GND | DC camera power ground |
White | 2 | N/A | POWER | DC camera power |
Red | 3 | Line 1 | GPIO_OPT_OUT1 | Opto-isolated output (GPO1) |
Green | 4 | Line 4 | GPIO_OPT_OUT2 | Opto-isolated output (GPO2) |
Orange | 5 | Line 0 | GPIO_OPT_IN1 | Opto-isolated input (GPI1) |
Blue | 6 | Line 3 | GPIO_OPT_IN2 | Opto-isolated input (GPI2) |
White with black stripes | 7 | Line 2 | GPIO_TTL_IO3 | TTL input/output 3 |
Red with black stripes | 8 | Line 5 | GPIO_TTL_IO4 | TTL input/output 4 |
Green with black stripes | 9 | N/A | GND | DC camera power ground |
Orange with black stripes | 10 | N/A | POWER | DC camera power |
Blue with black stripes | 11 | Line 6 | 3.3 V OUTPUT | +3.3 V output, current 120 mA (nominal) - firmware enabled |
Black with white stripes | 12 | N/A | OPTO_GND | Ground for opto-isolated I/O, not connected to camera ground |
This section describes how to configure the camera's general purpose digital input and outputs (sometimes referred to as GPIO).
Use LineSelector to choose which of the 4 lines to configure. All the features listed beneath it are controllable on a per line basis.
Use Line Mode to control the direction - either Input or Output - of the selected I/O line.
Use 3.3V Enable to supply external circuits with power. This is different than standard logic outputs in that it is comparatively slow to switch but can supply a more significant amount of power. This is only available on some pins.
Use LineInverter to control a logic inverter on the selected line.
LineStatus indicates the current status of the selected line. A checked status (enabled) indicates logic high. An unchecked status (disabled) indicates logic low. Since this node must be polled to get its status it should not be used as a real time control for reading internal signals.
LineStatusAll is a hexadecimal representation of all the line status bits (Line 0 status corresponds to bit 0, Line 1 status with bit 1, etc). This allows simultaneous reading of all line statuses at once.
Use the LineInputFilterSelector to choose a filter. Filters are unique per line. Use LineFilterWidth to set the width of the filter in microseconds. There are two choices of filter:
Deglitch - designed to filter out any noise or other spurious signals on the line, it does not consider the state to have transitioned until after the Filter Width time has expired. This means that Deglitch introduces a delay in the signal.
Debounce - designed to filter out rapid connecting and disconnecting common in mechanical switches. This means that Debounce considers the first edge as valid and won't allow a subsequent change of state until after the debounce time has elapsed.
Note: The Deglitch filter is applied before Debounce filter.
Use LineSource to control what signal is output on the line when the Line Mode is set to output. The choices are:
Other Lines - creates a loop back
User Outputs - outputs user controllable internal signals
Counter Active - shows when a counter is in use
Logic Blocks - drives the lines
Exposure Active - indicates when the image sensor is exposing
Frame Trigger Wait - indicates when the camera is ready to accept a new Frame Start trigger
If a User Output is selected as a Line Source, use UserOutputSelector to select which bit to use as internal signals within the camera. Use UserOutputValue to set the selected user output to logic high (enabled) or logic low (disabled).
UserOutputValueAll is a hexadecimal representation of all the user output bits (User Output 0 corresponds to bit 0, User Output 1 with bit 1, etc). Reading or writing User Output Value All allows simultaneous setting or reading of all user outputs at once.
LineFormat is read only and indicates what type of circuit the selected line has. The options for Line Format are:
Tri State - indicates the line is not driven. This is typical for digital inputs.
Opto Coupled - indicates that an opto isolator is being used to isolated the external circuitry from the internal camera electronics.
Open Drain - indicates there is an internal MOSFET that will pull the pin low but requires an external pull up resistor to produce a logic level high signal. This is typical for digital outputs.
Summary Table
Name | Interface | Access | Visibility | Description |
---|---|---|---|---|
Line Selector | IEnumeration | Expert | Selects the physical line (or pin) of the external device connector to configure | |
Line Mode [Line Selector] | IEnumeration | Expert | Controls if the physical Line is used to Input or Output a signal. | |
3.3V Enable [Line Selector] | IBoolean | RW | Guru | Internally generated 3.3V rail. Enable to supply external circuits with power. This is different than standard logic outputs in that it is comparatively slow to switch but can supply a more significant amount of power. This is only available on some pins. |
Line Inverter [Line Selector] | IBoolean | RW | Expert | Controls the inversion of the signal of the selected input or output line. |
Line Status [Line Selector] | IBoolean | RO | Expert | Returns the current status of the selected input or output Line |
Line Status All | IInteger | RO | Expert | Returns the current status of all the line status bits in a hexadecimal representation (Line 0 status corresponds to bit 0, Line 1 status with bit 1, etc). This allows simultaneous reading of all line statuses at once. |
Input filter Selector [Line Selector] | IEnumeration | Expert | Selects the kind of input filter to configure: Deglitch or Debounce. | |
Line Filter Width [Input filter Selector] | IFloat | Expert | Filter width in microseconds for the selected line and filter combination | |
Line Source [Line Selector] | IEnumeration | Expert | Selects which internal acquisition or I/O source signal to output on the selected line. LineMode must be Output. | |
Line Format [Line Selector] | IEnumeration | RO | Expert | Displays the current electrical format of the selected physical input or output Line. |
Exposure Active Mode | IEnumeration | RW | Expert | Control sensor active exposure mode. |
User Output Selector | IEnumeration | Expert | Selects which bit of the User Output register is set by UserOutputValue. | |
User Output Value [User Output Selector] | IBoolean | RW | Expert | Value of the selected user output, either logic high (enabled) or logic low (disabled). |
User Output Value All | IInteger | Expert | Returns the current status of all the user output status bits in a hexadecimal representation (UserOutput 0 status corresponds to bit 0, UserOutput 1 status with bit 1, etc). This allows simultaneous reading of all user output statuses at once. |
Digital IO Control Features
Line Selector
Selects the physical line (or pin) of the external device connector to configure
Property | Value |
---|---|
Name | LineSelector |
Interface | IEnumeration |
Access | |
Visibility | Expert |
Enumeration Values |
---|
Line0 |
Line1 |
Line2 |
Line3 |
Line4 |
Line5 |
Line6 |
Line Mode
Controls if the physical Line is used to Input or Output a signal.
Property | Value |
---|---|
Name | LineMode [Line Selector] |
Interface | IEnumeration |
Access | |
Visibility | Expert |
Enumeration Values |
---|
Input |
Output |
3.3V Enable
Internally generated 3.3V rail. Enable to supply external circuits with power. This is different than standard logic outputs in that it is comparatively slow to switch but can supply a more significant amount of power. This is only available on some pins.
Property | Value |
---|---|
Name | V3_3Enable [Line Selector] |
Interface | IBoolean |
Access | RW |
Visibility | Guru |
Line Inverter
Controls the inversion of the signal of the selected input or output line.
Property | Value |
---|---|
Name | LineInverter [Line Selector] |
Interface | IBoolean |
Access | RW |
Visibility | Expert |
Line Status
Returns the current status of the selected input or output Line
Property | Value |
---|---|
Name | LineStatus [Line Selector] |
Interface | IBoolean |
Access | RO |
Visibility | Expert |
Line Status All
Returns the current status of all the line status bits in a hexadecimal representation (Line 0 status corresponds to bit 0, Line 1 status with bit 1, etc). This allows simultaneous reading of all line statuses at once.
Property | Value |
---|---|
Name | LineStatusAll |
Interface | IInteger |
Access | RO |
Unit | |
Visibility | Expert |
Input filter Selector
Selects the kind of input filter to configure: Deglitch or Debounce.
Property | Value |
---|---|
Name | LineInputFilterSelector [Line Selector] |
Interface | IEnumeration |
Access | |
Visibility | Expert |
Enumeration Values |
---|
Deglitch |
Debounce |
Line Filter Width
Filter width in microseconds for the selected line and filter combination
Property | Value |
---|---|
Name | LineFilterWidth [Input filter Selector] |
Interface | IFloat |
Access | |
Unit | us |
Visibility | Expert |
Line Source
Selects which internal acquisition or I/O source signal to output on the selected line. LineMode must be Output.
Property | Value |
---|---|
Name | LineSource [Line Selector] |
Interface | IEnumeration |
Access | |
Visibility | Expert |
Enumeration Values |
---|
Off |
Line0 |
Line1 |
Line2 |
Line3 |
Line4 |
Line5 |
Line6 |
UserOutput0 |
UserOutput1 |
UserOutput2 |
UserOutput3 |
Counter0Active |
Counter1Active |
LogicBlock0 |
LogicBlock1 |
ExposureActive |
FrameTriggerWait |
SerialPort0 |
Line Format
Displays the current electrical format of the selected physical input or output Line.
Property | Value |
---|---|
Name | LineFormat [Line Selector] |
Interface | IEnumeration |
Access | RO |
Visibility | Expert |
Enumeration Values |
---|
NoConnect |
TTL |
OptoCoupled |
Exposure Active Mode
Control sensor active exposure mode.
Property | Value |
---|---|
Name | ExposureActiveMode |
Interface | IEnumeration |
Access | RW |
Visibility | Expert |
Enumeration Values |
---|
Line1 |
AnyPixels |
AllPixels |
User Output Selector
Selects which bit of the User Output register is set by UserOutputValue.
Property | Value |
---|---|
Name | UserOutputSelector |
Interface | IEnumeration |
Access | |
Visibility | Expert |
Enumeration Values |
---|
UserOutput0 |
UserOutput1 |
UserOutput2 |
UserOutput3 |
User Output Value
Value of the selected user output, either logic high (enabled) or logic low (disabled).
Property | Value |
---|---|
Name | UserOutputValue [User Output Selector] |
Interface | IBoolean |
Access | RW |
Visibility | Expert |
User Output Value All
Returns the current status of all the user output status bits in a hexadecimal representation (UserOutput 0 status corresponds to bit 0, UserOutput 1 status with bit 1, etc). This allows simultaneous reading of all user output statuses at once.
Property | Value |
---|---|
Name | UserOutputValueAll |
Interface | IInteger |
Access | |
Unit | |
Visibility | Expert |