Programming the Timers
Programming the CW Messages
Programming the Flag Bits
Recording the Voice Messages
The controller can operate in 3 different modes:
All programming is done by entering 8-digit DTMF sequences. The first 4
digits are the passcode chosen at initialization. The next 2
digits are an address or a function code. The last 2 digits
are the data for address or function. To enter programming
information, you must key your radio, enter the 8 digits, then unkey. If
the controller understands your sequence, it will respond with "OK" in CW.
If there is an error in your sequence, but the passcode is good, the
controller will respond with "NG". If the controller does not understand
your command at all, it will not respond with anything other than a
courtesy beep, and then only if the courtesy beep is enabled. If the
controller is disabled, and an unrecognized command is entered,
no response will be transmitted at all.
| Response | Meaning |
|---|---|
| "OK" | Command Accepted |
| "NG" | Command address or data is bad |
| courtesy beep or nothing |
Command/password not accepted |
In order to save space, reduce keystrokes, and eliminate some software complexity, all programming addresses and data are entered as hexadecimal numbers. Hexadecimal (or hex, for short) is a base-16 notation that is particularly convenient for use in digital computer systems because each hex digit represents 4 bits of a value. The controller uses pairs of hex digits to represent 8-bit values for the address and data of programming information. Any decimal number from 0 to 255 may be represented by two hex digits. Hex digits are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, where A through F represent values from 10 to 15. To convert a decimal number from 0 to 255 to hex, divide the decimal number by 16. The quotient (number of whole 16s) forms the left (high) digit, and the remainder forms the right (low) digit. Thus, 60 decimal = 3 x 16 + 12 = 3C hex.
The DTMF keys 0-9 and A-D map directly to their corresponding digits. Use the * key for digit E and the # key for digit F. A 16-key DTMF generator is required to program the controller.
Enter the 4 digit passcode, the timer address, and the timer value,
scaled appropriately. For example, to program the Hang Timer for 10
seconds, enter pppp0264, where pppp is your secret
passcode, 02 is the hang timer address, and 64 is the hexadecimal value
for 100, which would be 10.0 seconds.
To record stored voice messages, use command pppp410x,
where x is the number of the message you want to record, found
in the message contents table. Unkey
after the command sequence, then key up, speak your message, and unkey.
The controller will remove about 100 ms from the end of your message to
remove any squelch crash that might have been recorded.
To play stored voice messages, use command pppp401x, where
x is the number of the stored voice message you want to play.
To play CW messages, use command pppp401x, where x
is the number of the CW message you want to play.
You may wish to have a family member or member of the opposite sex record
your ID messages. The recorded audio sounds natural enough that people
have actually tried to call the amateur whose callsign is recorded in the
controller after the ID message plays!
Timer
Address
Resolution
SecondsMax. Value
SecondsHang Timer 02 1/10 25.5 Timeout Timer 03 1 255 ID Timer 04 10 2550
CW messages are programmed by storing encoded CW characters into specific
addresses in the controller. Use the
Morse Code Character Encoding
table and the Programming Memory Map
to determine the data and address for the CW message characters. For
example, to program "DE N1KDO/R" for the CW ID, you would use the
following commands:
DTMF Command
Address
Data
Description/Purpose
pppp0#09 0F 09 D pppp1002 10 02 E pppp1100 11 00 space pppp1205 12 05 N pppp133* 13 3E 1 pppp140D 14 0D K pppp1509 15 09 D pppp160# 16 0F O pppp1729 17 29 / pppp180A 18 0A R
pppp19##
19 FF
End of message marker
The CW ID can store a message of up to 40 characters. Do not exceed 40
characters.
Controller features can be enabled of disabled with the use of the
Configuration Flag Bits.
These bits are encoded into a single byte, which is programmed into
the controller at address 01. Multiple flag bits can be selected by
summing their hex weights. For instance, to set up a link controller
with no ISD2590, no courtesy tone, and suppress the DTMF muting, you
would add 01, 10, and 20 to produce hex 31, which you would then
program into address 01 in the controller as pppp0131.
Stored voice messages can be played and recorded, and CW messages can be
played by using the message commands.
Command 40 is used to play stored voice or CW messages, and command 41
is used to record stored voice messages.
The idea behind this IDing logic is to prevent unnecessary IDing. For instance, if a repeater user keys the machine and announces "This is N1KDO, monitoring", the controller will play the initial ID, and no further IDing will occur unless the repeater is keyed again. If users commence with a QSO, keying the repeater at least once more, the controller will play the normal ID and reset the ID timer when the ID timer expires. If the repeater becomes idle for one ID timer period after the last ID, then the next time it is keyed it will play the initial ID. The intent is that the repeater users only hear the initial ID the first time that they key the repeater.
The controller supports a "Tail Message" that plays the nth time
the hang timer expires. The number of times the hang timer must expire
before the tail message plays (n) is the "tail message counter"
at address 05. The tail message counter can be set from 1 to 255. The
tail message is disabled if the tail message counter is set to 0.
Program the tail message counter value into address 05.
The tail message can be used as the courtesy tone if bit 6 is set in
the configuration flags. In this case, you will likely want to set
the tail message counter value to 0 to keep the message from playing
twice occasionally. The message could store the sound of a bell,
a dog's bark, or the repeater trustee saying "what?"!
| Command | Description |
|---|---|
| 400x | 0 <= x <= 3, play CW message x |
| 401x | 0 <= x <= 3, play voice message x |
| 410x | 0 <= x <= 3, record voice message x |
| Message Number | Stored Voice | CW |
|---|---|---|
| 0 | Initial ID | ID message |
| 1 | Normal ID message | timeout message ("TO") |
| 2 | Time-out Message | confirm message ("OK") |
| 3 | Tail Message | invalid message ("NG") |
| Address | Default Data | Comment |
|---|---|---|
| 00 | 01 | enable flag |
| 01 | 00 | configuration flags |
| 02 | 32 | hang timer preset, in tenths |
| 03 | 1e | time-out timer preset, in seconds |
| 04 | 36 | id timer preset, in 10 seconds |
| 05 | 00 | tail message counter |
| 06 | 0f | 'O' OK Message |
| 07 | 0d | 'K' |
| 08 | ff | EOM |
| 09 | 05 | 'N' NG Message |
| 0a | 0b | 'G' |
| 0b | ff | EOM |
| 0c | 03 | 'T' TO Message |
| 0d | 0f | 'O' |
| 0e | ff | EOM |
| 0f | 09 | 'D' CW ID starts here |
| 10 | 02 | 'E' |
| 11 | 00 | space |
| 12 | 05 | 'N' |
| 13 | 3e | '1' |
| 14 | 0d | 'K' |
| 15 | 09 | 'D' |
| 16 | 0f | 'O' |
| 17 | 29 | '/' |
| 18 | 0a | 'R' |
| 19 | ff | EOM |
| 1a | 00 | can fit 6 letter ID.... |
| 1b-37 | not used | |
| 38 | n/a | isd message 0 length, in tenths |
| 39 | n/a | isd message 1 length, in tenths |
| 3a | n/a | isd message 2 length, in tenths |
| 3b | n/a | isd message 3 length, in tenths |
| 3c | n/a | passcode digit 1 |
| 3d | n/a | passcode digit 2 |
| 3e | n/a | passcode digit 3 |
| 3f | n/a | passcode digit 4 |
| Character | Morse Code |
Binary Encoding |
Hex Encoding |
|---|---|---|---|
| sk | ...-.- | 01101000 | 68 |
| ar | .-.-. | 00101010 | 2a |
| bt | -...- | 00110001 | 31 |
| / | -..-. | 00101001 | 29 |
| 0 | ----- | 00111111 | 3f |
| 1 | .---- | 00111110 | 3e |
| 2 | ..--- | 00111100 | 3c |
| 3 | ...-- | 00111000 | 38 |
| 4 | ....- | 00110000 | 30 |
| 5 | ..... | 00100000 | 20 |
| 6 | -.... | 00100001 | 21 |
| 7 | --... | 00100011 | 23 |
| 8 | ---.. | 00100111 | 27 |
| 9 | ----. | 00101111 | 2f |
| a | .- | 00000110 | 06 |
| b | -... | 00010001 | 11 |
| c | -.-. | 00010101 | 15 |
| d | -.. | 00001001 | 09 |
| e | . | 00000010 | 02 |
| f | ..-. | 00010100 | 14 |
| g | --. | 00001011 | 0b |
| h | .... | 00010000 | 10 |
| i | .. | 00000100 | 04 |
| j | .--- | 00011110 | 1e |
| k | -.- | 00001101 | 0d |
| l | .-.. | 00010010 | 12 |
| m | -- | 00000111 | 07 |
| n | -. | 00000101 | 05 |
| o | --- | 00001111 | 0f |
| p | .--. | 00010110 | 16 |
| q | --.- | 00011011 | 1b |
| r | .-. | 00001010 | 0a |
| s | ... | 00001000 | 08 |
| t | - | 00000011 | 03 |
| u | ..- | 00001100 | 0c |
| v | ...- | 00011000 | 18 |
| w | .-- | 00001110 | 0e |
| x | -..- | 00011001 | 19 |
| y | -.-- | 00011101 | 1d |
| z | --.. | 00010011 | 13 |
| space | 00000000 | 00 | |
| EOM | 11111111 | ff |