The camera provides digital I/O in industry standard 24V technology (according to EN 61131-2). The digital inputs can be used as camera trigger. One digital ouput can be used for external lights or flashes. Due to the high current drive it is possible to directly interface LED illuminations.
The camera's digital I/O has following features:
The current protection feature switches off all outputs when the sum of output current exceed 1.5A. Whenever this happens an overflow flag is set (implemented as a virtual input). The user can react on this situation at application level and can unlock the current protection circuit to turn the outputs on again. If the high current situation still exists (possibly a short) the outputs are immediately switched off again.
Digital I/O and LEDs can be easily accessed at shell level via /proc/inputs
, /proc/outputs
and /proc/leds
. This is convenient when interactively working inside a shell. At application level, the user can also do I/O access by manipulation of these /proc
files. But it is much faster if the corresponding API functions are used instead. See the API description for further details.
The inputs including edge detection bits can be read by the following command:
~ cat /proc/inputs 0x0
The following table lists the bit format of /proc/inputs
:
Inout | Bit position |
---|---|
I0 | 0 |
I1 | 1 |
I0 positive edge | 2 |
I0 negative edge | 3 |
I1 positive edge | 4 |
I1 negative edge | 5 |
Output overcurrent | 6 |
Edge detection bits are set whenever a positive edge or negative edge is detected on the corresponding input. The edge detection bits are STICKY, i.e. they remain set after edges were detected. The user must explicitely clear them again by writing a one to the corresponding bit position. To clear all edge detection bits the user may issue the command:
~ $ echo 0x3c > /proc/inputs
The overcurrent detect circuitry is triggered when the sum of current through all digital outputs reaches 1.5A. In this case all outputs are automatically switched off for safety reasons. The output overcurrent detect bit (bit nr. 6 in /proc/inputs) reflects the state of this circuitry. If the overcurrent detect bit is “1” all outputs are switched off. To recover from this situations write a “1” to the overcurrent unlock bit (bit nr. 4 in /proc/outputs). If the overcurrent detect bit remains “1” after unlocking, output current is still too high (possible short circuit must be removed first).
To set digital output number 0 to 24V and to read the current output state the user can use following command:
~ echo 0x1 > /proc/outpus ~ cat /proc/outputs 0x1
The following table lists the bit format of /proc/outputs
:
Inout | Bit position |
---|---|
O0 | 0 |
O1 | 1 |
O2 | 2 |
reserved | 3 |
Unlock overcurrent circuit | 4 |
Status LEDs on the rear side of the camera can be accessed in a similar way like digital I/O via /proc/leds
. The only exception is the network LED which is under ethernet driver control. The camera provides four dual color LEDs: LED A and B are red/green, LED C and D are red/yellow. The bit position layout for /proc/leds
is as follows:
Status LEDs | Color | Bit position |
---|---|---|
A | red | 0 |
A | green | 1 |
B | red | 2 |
B (network) | green | 3 |
C | red | 4 |
C | yellow | 5 |
D | red | 6 |
D | yellow | 7 |
To set all red LEDs the following command may be used:
~ $ echo 0xaa > /proc/leds
Some examples for different IO and LED handling of the camera can be found → here