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".
Examples: 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"
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).
Set BCD Mode Access: CONFIGURATION
(cnfg) (505) ; (mode)
Response: "B C D" plus (mode) number
| (mode) | Description |
| 0 | BCD Off, only external outputs supported |
| 1 | 1 BCD channel supported |
| 2 | 2 BCD channels supported |
| 3 | RBI-1 interface supported |
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) | |
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.
RBI-1:
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 | |
| (mode) | Description |
| "0" | CTCSS encode and decode off |
| "1" | only enable encode option |
| "2" | enable both encode and decode |
Examples: 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"
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 +/- 2¡C 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 +/- 1¡C. 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.
Examples: AB34 read input #4 "In Four Twenty Five C" AB24 do it in ¡F "In Four Seventy Three Degrees"S Meter Peak Access: GENERAL
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-010 | 10K x 2 pots |
| DS1267-050 | 50K x 2 pots |
| DS1267-100 | 100K x 2 pots |
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)
Response:
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-1 | GND |
| P24-2 | Busy I/O |
| P24-3 | Audio TO patch |
| P24-4 | Ring detect (active low) |
| P24-5 | Audio FROM patch |
| P24-6 | Off Hook I/O (active low, 100 mA) |
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.
| Address | Device |
| 1 | FF Systems reserved address |
| 2 | not allocated |
| 3 | not allocated |
| 4 | FF-899 Generic remote base interface |
| 5 | FF-8090 IC-901 remote base interface |
| 6 | FF-8070 Digital Voice Recorder (main) |
| 7 | FF-8070 Digital Voice Recorder (auxiliary) |
| 8 | not allocated |
| 9 | not allocated |
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.
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: CONTROL4.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).
(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 | |
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.