Changes

Jump to navigation Jump to search
m
no edit summary
Line 1: Line 1:  
[[Category:How to]]
 
[[Category:How to]]
 +
The GPIO (general-purpose I/O) pins on a URI (or similar USB device) may be individually used as
 +
 +
either input or output pins. Currently the URI (because of the CM108-AH chip) only supports 2
 +
 +
usable GPIO pins (GPIO 1 and GPIO 4), plus one pin (labeled GPIO2, but is actually the 'HOOK' signal
 +
 +
on the CM-108AH chip) that may be used only for input. The old version of the URI and some other
 +
 +
devices that use the original CM-108A chip, have full access to the GPIO 2 signal also.
 +
 +
The upside to the CM-108AH is that if you are monitoring an external contact closure, the GPIO2 (HOOK)
 +
 +
input is internally pulled-up and de-bounced, so its perfect for such applications.
 +
 +
Chan_usbradio and chan_simpleusb supports configuration of the GPIO pins in the following manner
 +
 +
(from within the section of usbradio.conf that is for the desired device):
 +
 +
gpio1 = in ; in, out0 or out1
 +
 +
gpio4 = out0 ; in, out0 or out1
 +
 +
When you configure a GPIO pin, you can either designate it as 'in' (input), 'out0' (output with a default state of 'off'), or 'out1' (output with a default state of 'on').
 +
 +
It also supports configuration of pins 2-9 (output) and pins 10-13 and 15 (inputs) on a Parallel
 +
 +
Printer Port (if you happen to have one) in the following manner:
 +
 +
pp2 = out1 ; out0, out1 or ptt
 +
 +
pp10 = in ; in, cor or ctcss
 +
 +
When you configure an input pin (10,11,12,13 or 15), you can either designate it as 'in' (input),
 +
 +
'cor' (use as the 'cor' input), or 'ctcss' (use as the 'ctcss') input. If you choose 'cor' or
 +
 +
'ctcss', you also need to set the associated 'carrierfrom' or 'ctcssfrom' to either 'pp' (use the
 +
 +
associated input pin non-inverted) or 'ppinvert' (use the associated input pin inverted).
 +
 +
When you configure an output pin (2-9), you can either designate it as 'out0' (output with a default
 +
 +
state of 'off'), 'out1' (output with a default state of 'on'), or 'ptt' makes the PTT signal present
 +
 +
on it either non-inverted or inverted, depending on the 'invertptt' setting.
 +
 +
Pins 18-25 are ground, and all other pins are to be treated as no connection.
 +
 +
The condition of the input pins are made available via channel variables (e.g. RPT_URI_GPIO1,
 +
 +
RPT_URI_GPIO4, RPT_PP12, etc.) used by the Event Management Subsystem.
 +
 +
The output pins may be manipulated via the 'cop,61' (or 'cop,62') command (directly or through a DTMF
 +
 +
command) as follows:
 +
 +
61 - Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,PP4=1].....)
 +
 +
62 - Same as above, without generating the 'complete' telemetry.
 +
 +
Use 0 or 1 to set the specified output to 0 or 1, or a number greater then 1 to specify how
 +
 +
many milliseconds minus 1 to invert its current state. For example, to pulse the bit for 500ms you
 +
 +
would use the value '501'(currently, specified time only significant in increments of 50ms). The
 +
 +
use of specifying a value of N+1 to indicate N milliseconds was done so that if, in the future,
 +
 +
the granulatity increases down to the millisecond level, a value of 1 ms could be specified.
 +
 +
For example, if you wanted to have a DTMF function (in this example *1234) that turned GPIO 1
 +
 +
on, you would specify the following in the [functions] section of the rpt.conf file:
 +
 +
1234 = cop,61,GPIO1=1 ; Turn on GPIO 1
 +
 +
Note: You must have app_rpt version 0.259 10/9/2010, and chan_usbradio also released at
 +
 +
that time, and for Parallel Printer Port support, you must have app_rpt version 0.267
 +
 +
10/23/2010, and chan_usbradio also released at that time.

Navigation menu