4.9 I/O Interface Management

There are several I/O options that are supported by the FF-800 that allow the user to monitor and control "real-world" operations. Some of the interface options require an add- on board (like the FF-8070 Digital Voice Recorder, the FF-899 advanced radio interface, or the Doug Hall RBI-1) while others only require some simple installation steps. The interface connections were described in chapter 3 -- this section will describe the commands that deal with the various interface features.

There are four basic groups of I/O functions on the FF-800 that are directly available for user access: 1) the logic outputs, 2) the analog inputs, 3) the Serial Peripheral Interface bus (or SPI bus for short), and 4) the command trigger inputs. The command trigger configuration commands are described in section 4.8 -- the remaining interface commands are described in the following sections.

4.9.1 Output Control

Set Local Output Access: GENERAL
{#18} (AB5) (output#) ; (on/off)
Response: "Out" (output#) "On" or "Off" or user defined message + "On" or "Off"

The eight local outputs are those that are located at P5 on the FF-800 controller. These are distinguished from the eight external outputs which are obtained from user supplied shift registers attached to the SPI bus. The valid range for (output#) is from "1" to "8" -- (on/off) is "1" for on and "0" for off. Omitting the (on/off) parameter will interrogate the status of the output.

If the active level for an output is "Low", the response of "On" indicates that the output is conducting to ground. An active level setting of "High" means that the response of "On" indicates that output is in the high impeadance state. See Set Output Level for details concerning the output levels.

Set External Output Access: GENERAL
{#18} (AB5) (*) (output#) ; (on/off)
Response: "Out" (output#) "On" or "Off" or user defined message + "On" or "Off"

The eight external outputs are obtained from user supplied shift registers attached to the SPI bus. The valid range for (output#) is from "1" to "8" -- (on/off) is "1" for on and "0" for off. The active level for the external outputs is fixed as active high -- thus, a response of "On" indicates that the shift register output is a logic "1". Appendix A has schematics and specifications for the serial shift register outputs.

Pulse Local Output Access: GENERAL
{#33} (AC7) (output#) ; (count)
Response: "Out" (output#) or user defined message

The pulse command toggles the indicated output. This is useful for controlling devices that require pulse rather than "On" or "Off" control (for example, the up/down buttons on a remote base radio). The (count) specifies the number of pulses and can be from "1" to "99" -- omitting (count) will give one pulse. Usually, pulsed outputs require a certain "static level" ("On" or "Off") in which the output "rests" until it is pulsed. This "static level" is set by the user with the Set Local Output command. Once this level is set, the user should update the appropriate State so that this "static level" is remembered by the FF-800.

Pulse External Output Access: GENERAL
{#33} (AC7) (*) (output#) ; (count)
Response: "Out" (output#) or user defined message

The external outputs can be pulsed just as the local outputs. As with the local outputs, the user sets the static level for the appropriate output(s) using the Set External Output command.

Set Pulse Timing Access: CONFIGURATION
(cnfg) (512) ; (pulse time)
Response: "P U L" plus (pulse time)

The user can set the pulse width of the pulse output commands using Set Pulse Timing. The pulse time is between "1" and "99" milliseconds and applies to all outputs. The user should be aware that large (pulse time) values may result in long execution delays for the Pulse Output commands. For example, 99 pulses at a pulse time of 99 milliseconds will result in a 9.8 second execution duration. This poses no problems to the operation of the FF-800 so long as the user is aware of the possible delay that may occur.

Set Output Active Level Access: CONFIGURATION
(cnfg) (610) (output#) ; (on/off)
Response: "O L S" plus "High" or "Low"

The active level for any of the local outputs can be set by the user with this command. As before, the "on" parameter = 1 which indicates active "High" while the "off" parameter = "0" which indicates active "Low".

DD6105			interrogate active level of #5
"O L S Low"
DD61051			set for active high
"Set O L S High"

AB55			interrogate output #5
"Out Five On"
AB550			turn off
"Set Out Five Off"
AC75			pulse once
"Out Five"
AC7550			pulse 50 times
"Out Five"
AB5*5			interrogate #15
"Out One Five Off"
AB5*51			turn on
"Set Out One Five On"

4.9.2 BCD Frequency Control and the Doug Hall RBI-1

The FF-800 provides the user with the ability to control the frequency and offset settings of up to two "thumb wheel" type radios using user supplied shift register integrated circuits. Appendix A illustrates the circuit diagram for the BCD interface for none, one, and two radios. If the user desires to use the Doug Hall RBI-1 Kenwood radio interface, they must disable the external shift register support in order to configure the FF-800 to communicate with the RBI-1. This is done using the Set BCD Mode command. Thus, the user can not connect both a "thumb wheel" type interface AND an RBI-1 at the same time. It should be noted that the RBI-1 requires external logic to interface to the FF-800. This logic is supplied with the FF-800 chassis option in the form of an external adapter card. This adapter card is available separately for users who construct their own chassis, or the user can refer to appendix A for a circuit diagram of the RBI-1 interface logic.

In the "thumb wheel" mode, the only BCD command that is valid is the Set BCD Frequency command. This command sets the frequency and offset for either of the BCD channels. If the RBI-1 is enabled, the user has access to other commands that allow selection of CTCSS encode or decode, power setting, and support for future RBI-1 enhancements. The Set BCD Frequency is also used in RBI-1 mode to set the frequency of the Kenwood radio(s).

(cnfg) (505) ; (mode)
Response: "B C D" plus (mode) number

There are four mode settings for the BCD interface:
0BCD Off, only external outputs supported
11 BCD channel supported
22 BCD channels supported
3RBI-1 interface supported
The user should note that the 8 external outputs are available in all modes (the RBI-1 supplies a connector for access to these outputs, refer to the RBI-1 manual for electrical specifications concerning these outputs). If only the user outputs are desired, the selection of (mode) = "0" means that the user need only supply one external shift register to obtain the desired outputs.

Set BCD Frequency Access: GENERAL
{#09}(AA6) ; (MKKKO)set frequency, 1 BCD channel
(AA6) (port number) ; (MKKKO)set frequency, 2 BCD channels
(AA6) ; (M..MKKKO)Set frequency, RBI-1
(AA6) (on/off)radio power on/off control
(AA6) (port number) ; (on/off)radio power on/off control (2chan)
Response: responds with the frequency setting

1 BCD channel:
In the 1 channel mode, the (MKKKO) format specifies the (M)egahertz, (KKK)ilohertz, and (O)ffset selection. (O)ffset is specified as "1" = minus, "2" = simplex, and "3" = plus. All digits specified are required.

2 BCD channels:
This format is similar to the 1 channel mode except that the (port number) must be included to specify which channel is to be accessed. (port number) = "1" for port 1, and "2" for port 2.

The RBI-1 format specifies the megahertz digits in a slightly different format from that of the 1 or 2 channel BCD modes. If only the 1 megahertz digit is entered (MKKKO as for the 1 or 2 channel modes) the current band is preserved and the frequency is updated accordingly. If the user desires to change bands, the entire frequency is entered (thus the M..MKKKO designation). The FF-800 automatically determines which band is desired and sends the appropriate information to the RBI-1. The "M..M" means that 2, 3, or 4 megahertz digits are entered depending on the band selected.

All Modes: If the (MKKKO) or (M..MKKKO) are replaced with a single "1" or "0", the FF-800 will manipulate the power on settings for the appropriate radio. This allows the radio(s) to be powered off when not in use.

Set CTCSS Frequency Access: GENERAL
{#51} (BA4) ; (frequency number) ; (*)
Response: responds with the CTCSS frequency in hertz

This command is valid only when the FF-800 is configured for the RBI-1. The CTCSS frequency is entered as a frequency number from 1 to 38 to specify which of the standard CTCSS frequencies are desired. The (*) at the end of the (frequency number) specifies read-back supression. This allows the user to set a CTCSS tone without announcing it over the repeater. Suppressed tones will respond with "C T C S S" to indicate that a valid tone is programmed.

The table of figure 4.9.1 illustrates the various (frequency number) values and their respective frequencies.

Set RBI-1 Power Access: GENERAL
{#59} (BB2) ; (pwr) (pwr) = 0 for low, 1 for med, and 2 for high
Response: "High" or "M" or "Low" plus "Power"

This command is valid only when the FF-800 is configured for the RBI-1 and sets the current band to the selected transmit power setting.

Set CTCSS Mode Access: GENERAL
{#52} (BA5) ; (mode)
Response:"C S E"encode
"C S D"encode and decode
"C S Off"disabled
Once the CTCSS frequency has been selected, the user may then select which of three modes that is desired:

"0"CTCSS encode and decode off
"1"only enable encode option
"2"enable both encode and decode

DD505			interrogate status of BCD output
"B C D Zero"
DD5051			set for one BCD channel
"Set B C D One"
AA654501			set 145.450 (-)
"Five Point Four Five Minus"
DD5053			set for RBI-1
"Set B C D Three"
AA61			turn on RBI-1
"R B I One On"
AA612846001		set 1284.600 (-) on the RBI-1
"Twelve Eighty Four Point Six Zero Minus"
AA64438253		set 443.825 (+)
"Four Forty Three Point Eight Two Five Plus"
AA660002			set 446.000 (S)
"Four Forty Six Point Zero Zero S"
BA425			set CTCSS frequency
"Set One Fifty Six Point Seven"
BA51			set encode
"Set C S E"

4.9.3 Analog inputs

The FF-800 provides four analog inputs which can be used to measure any analog voltage in the range of 0 to 5 volts. There are several commands provided which allow specific functions (such as temperature and S-meter readings) but there is also a generic command set that allows the user to program their own meter face and scaling factors to each input. This gives the user a great deal of flexibility when using the analog inputs to measure "unusual" variables.

While chapter 3 describes the electrical requirements for the FF-800 analog inputs, the details of such connections have been delayed until this section. Before connecting any signal to the analog inputs, the user must first determine what they desire to measure with each input. If temperature is to be measured, the user simply needs to connect an LM335 temperature sensor as shown in figure 4.9.2. The Read Temperature F and Read Temperature C commands can then be used to interrogate the temperature at the desired input (no configuration is required).

The standard accuracy for the LM335 is about +/- 2C due to the step size of the A/D converter. Each input can be separately configured for a "high resolution" mode and the op-amp circuit of figure 4.9.3 is used to double the temperature voltage and thus halve the A/D converter step size. R may be any value, but 1% low drift resistors are recommended -- R and 2R should be physically close to insure that they maintain the same temperature to minimize the effects of temperature drift. The ultimate effect of this circuit is to increase the resolution of the reading to +/- 1C. When this circuit is utilized, the user must use High Resolution Mode to designate that the input is a high resolution type.

Read Temperature F Access: GENERAL
{#15} (AB2) (input#)
Response: "The Temperature Is" plus temperature in F or custom annunciator plus temperature in F

ead Temperature C Access: GENERAL
{#16} (AB3) (input#)
Response: "The Temperature Is" plus temperature in F or custom annunciator plus temperature in F

Both commands behave in the same fashion and can be used at any time. They are designed to interpret the signal provided by an LM335 temperature sensor I.C.. If these commands specify an input that does not connect to an LM335 temperature sensor, they will return values based on the voltage that is present. The user must insure that the appropriate jumper(s) at JA through JD should be installed when using the LM335 sensors in the low resolution mode. When constructing sensor probes that will be used outdoors, the LM335 should be attached to a heat sink using a suitable thermal epoxy. This will help reduce self-heating effects that are present in the sensor as well as improve the thermal resistance from ambient to junction. Silicone RTV type sealant or other suitable moisture- proofing compound should also be used at the electrical connections. Care should be exercised when applying the sealant -- too much sealant can insulate the LM335 and its heat sink (if used) and introduce potential errors into the sensor mechanism.

If the optional adjustment potentiometer is installed, the user should obtain a thermometer of known accuracy and adjust the pot until the reading from the FF-800 is in good agreement with that of the reference thermometer.

Probe placement is very important. Many probes are installed where they receive a great deal of direct sunlight during all or part of the day which obviously distorts readings. Also, many repeater sites consist of a building in the middle of a gravel or paved area -- the pavement or gravel will absorb and re-radiate a great deal of energy. These factors can cause your sensor to read too high in the afternoon and evening, or too low in the morning. Depending on the surrounding material and its proximity, this error can extend many hours after direct sunlight has ceased because the stored heat can take time to radiate. Any material that is good at storing heat (such as stone, brick, the earth, etc...) can cause any temperature sensor to read too high or low if it is in close proximity to the sensor probe.

To alleviate problems from "heat pollution", the probe should be installed as far away from other obstructions as possible (just as for a radio antenna). If possible, mount the probe ten or twenty feet up the tower with a reflective shield a few inches above to eliminate direct sunlight. Of course, the longer the probe lead, the more susceptible the sensor may become to RFI. Be sure to use shielded cable and install bypass capacitors of 680 pF or 1500 pF across the temperature sensor output. The probe should be placed on the north side of the building or tower.


AB34			read input #4
"In Four Twenty Five C"
AB24			do it in F
"In Four Seventy Three Degrees"
S Meter Peak Access: GENERAL
{#44} (AB7) (input#)
Response: "S" plus reading

S Meter Average Access: GENERAL
{#45} (AB8) (input#)
Response: "S" plus reading

These functions interpret the voltage present on the specified input in an S-meter format.

4.9.4 Digital Potentiometer Interface

The FF-800 provides two ways to allow the user to interface digital potentiometers into their repeater system. One way is on-board user pot via the connections that are provided at P22. This pot can be used just as a standard pot except that the voltage applied to any pin of the device can not exceed +/-5V. The second way that the user can interface digital pots is to add their own external devices using the DPOT communications bus that is also provided at P22. The following describes the various devices available:

Device types:Resistance value:
DS1267-01010K x 2 pots
DS1267-05050K x 2 pots
DS1267-100100K x 2 pots
Manufactured by:
Dallas Semiconductor
4401 South Beltwood Parkway
Dallas, TX 75244-3292
(214) 450-0448
(800) 336-6933

The user may order direct from Dallas, or contact FF Systems to obtain the desired devices. Up to five devices may be daisy chained to provide up to ten external digital pots for user control of any +/- 5V signal. Figure 4.9.5 illustrates a schematic diagram of the POT-EXP interface. The user should exercise care when installing the interface to avoid RFI problems. The DS1267 uses a synchronous data transfer format to set the digital pots -- it requires three control signals: Clock, Data, and Reset. These three signals should always be routed in a good quality shielded cable (even for short runs). In addition to these signals, the interface requires +12V and ground (the +5V and -5V are derived on the POT- EXP card). If the user constructs their own card, they can obtain +/-5V from the power connector P1 (be sure to observe the current limitations). The POT-EXP expansion card is available from FF Systems to facilitate the installation of these external devices -- contact FF Systems for details.

For those signals that exceed the +/- 5V limits for the digital pots, the user may be able to connect the pot to an op-amp circuit to convert the resistance to a voltage of up to +/- 15V. Of course, the resulting signal would only be useful if the control in question responds to voltage rather than resistance. The Spectrum repeater receiver is an example of this solution. The Spectrum receiver squelch control is a potentiometer that provides 0 to 9 volts to the squelch circuit to set the squelch threshold. Of course, the digital pots can only handle signals in the range +/-5V so the op-amp circuit of figure 4.9.4 is used to convert a 0 to 5 volt pot output to a 0 to 10 volt op-amp output which can then be connected to the spectrum squelch input (after disconnecting the existing pot) to allow the user to remotely control the receiver squelch setting. The values for Ri and Rf are selected by the following formula:

Vout = Vpot (Rf/Ri)

Where Vpot is the voltage at the arm of the digital pot for a given pot setting. For the Spectrum example, Rf = 20K and Ri = 10K to obtain a gain of 2. Also, the low pot terminal can connect to -5V or ground depending on the desired output voltage swing. The 100pF capacitor and the 100 ohm resistor are included to enhance the stability of the op- amp. These component values may be varied, or the components eliminated if desired.

External Pot Set Access: CONTROL
(cntl) (460) (pot#) ; (%setting)

The external pot settings are maintained in non-volatile memory, but they are not kept in the state variable area. Thus the settings are maintained during loss of power, but the current state has no affect on the settings.

4.9.5 Local Autopatch Connector -- P24

The local autopatch connector provides direct audio connections to the FF-800 phone line interface. This path is intended for use with a future FF Systems back-bone linking controller. However, The signals provided at P24 are generic in nature and can be used to provide a telephone audio path for any application that the user desires. The 6 pin mini- DIN connector contains the following signals:
P24-2Busy I/O
P24-3Audio TO patch
P24-4Ring detect (active low)
P24-5Audio FROM patch
P24-6Off Hook I/O (active low, 100 mA)
Figure 4.9.6 illustrates the pin layout for the 6 pin mini-DIN connector. The signals at P24-2 and P24-6 (Busy I/O and Off Hook I/O) are bi-directional signals. The user's interface should utilize open collector or open drain logic for these signals so that their interface can monitor the signal outputs when they are not active. The user's interface should not attempt to connect to the phone line when either of these signals are low -- also, both signals should be brought low when the interface is to connect to the phone line. If the FF-800 is connected to a shared phone line, the user's interface will have to provide a busy output to any other service(s) on the shared line.

4.9.6 The FF SPI Bus and Enhancement Interfaces

The FF SPI Bus is a five wire, synchronous communications bus that is designed to communicate with multiple, addressed slaves. In addition to sending status information to external interfaces, the FF SPI bus allows the user to send DTMF commands to any of the connected interfaces using the FF-800 DTMF decoder. This improves system reliability since the user does not have to make sure that multiple DTMF decoders are all functioning at the same audio input level. These commands are interface specific and the FF-800 does not interpret anything that is sent to the FF SPI bus -- the intended device receives, interprets, and responds to all input that it aquires.

Current interface support includes the FF-8070 Digital Voice Recorder (DVR), the FF- 8090 ICOM IC-901 remote base interface, and the FF-899 generic remote base interface. A future release of the "SPI Application note #01" along with the FF-80x0 design kit will allow users with assembly language and microprocessor design experience to design and implement their own interface. The application note describes the bus protocols and bus architecture for the FF SPI bus and will be available free of charge to all FF Systems customers upon publication (contact FF Systems for price and availability of the FF-80x0 design kit).

Each interface comes with a manual which describes the installation and operation of the particular interface. The FF-800 has several commands that are used to send data to the interfaces. These commands are described below, the user should refer to the interface manual for details on configuring and operating any of the FF-800 interfaces.

SPI Command Access: GENERAL
{#32} (AC6) (addr) ; (command digits)
Response: see interface manual(s)

The FF-800 protocol supports up to 9 interface slots ( (addr) = 1 to 9) -- address "0" is reserved for FF-800 telemetry and is not accessible from this command. The (addr) parameter is required, but the (command digits) format is determined by the type of interface and the desired command.

The following list maps the allocation of device addresses:
1FF Systems reserved address
2not allocated
3not allocated
4FF-899 Generic remote base interface
5FF-8090 IC-901 remote base interface
6FF-8070 Digital Voice Recorder (main)
7FF-8070 Digital Voice Recorder (auxiliary)
8not allocated
9not allocated
SPI #4 Command Access: GENERAL
{#34} (AC8) ; (command digits)

SPI #5 Command Access: GENERAL
{#35} (AC9) ; (command digits)

SPI #6 Command Access: GENERAL
{#36} (AB0) ; (command digits)

SPI #7 Command Access: GENERAL
{#37} (AB1) ; (command digits)

Response: see interface manual(s)

These commands are similar to the SPI Command except that the (addr) parameter is fixed for each. This allows the user to have control over who can have access to individual interfaces. For example, it may be desirable to allow all repeater users to have access to the DVR, but the system operator(s) may wish to provide the FF-8090 commands on a "need to know" basis. by reserving the SPI Command for system operators, the interface commands can be kept separate by using SPI #4 through SPI #7.

4.9.7 The FF-8010 Display Interface

The chassis option for the FF-800 repeater controller includes an FF-8010 Display Interface card to display the input and output status of the FF-800 in real time. The font panel ledgend describes each LED. The enable LEDs indicate when a particular TX or RX port is active. COS signals are active ON, and all incoming COS signals are displayed (even if the respective RX port is disabled). In addition, the active COS (ie., the highest priority COS) is indicated by a blinking enable LED. Outputs LEDs are ON when the respective output is conducting to ground. Thus, the COS LEDs indicate active level (based on COSLEV settings) whereas the output LEDs indicate when the FET drivers are conducting to ground (regardless of OUTLEV settings).

The display interface receives its display information via the display connector, P23, of the FF-800 and can be controlled by a DTMF command which allows the brightness to be varied, or the display can be extinguished. The user should refer to the Chassis Suppliment or FF-8010 documentation for installation and maintenance information.

Display Control Access: CONTROL
(cntl) (490) ; (mode)
Response:"L E D High"bright, (mode) = 2
"L E D Low"dim, (mode) = 1
"L E D Off"display off, (mode) = 0
The default status of the display is bright. Also, a lamp test is performed at reset which causes all LEDs on the display to flash on for about 250 milliseconds. The display status is stored in non-volatile memory, but it is not a state variable -- thus, the display mode will be remembered after a reset, but state changes will not effect the display mode.

Since the display communications are one way only (to the display), the FF-800 doesn't know if a display board is connected. Thus, this command will execute in a system that has no display, but it will have no effect.

To: Table of Contents Next Section