A $60 Programmable Talking Repeater Controller

34
1 A $60 Programmable Talking Repeater Controller This inexpensive programmable controller features stored voice, simplex or duplex repeater control, and low power consumption. Jeff Otterson, N1KDO 3543 Tritt Springs Way Marietta, GA 30062 [email protected] Peter Gailunas, KA1OKQ 444 Micol Road Pembroke, NH 03275 [email protected] Rich Cox, N1LTL 452 Brown Rd. Candia, NH 03034 [email protected] Several recent repeater projects involving the construction of portable repeaters for disaster site use and building a repeater system with voted remote receivers indicated the need for a low-cost, easy-to-build repeater controller. The projects required a controller that could be built for less than $60, with enough features to be used as a duplex repeater controller, a link controller, or a simplex repeater controller. Other required features included remote control and programming via DTMF, a hang timer, time-out and ID timers, CW ID, and stored voice messages for all applications except link control. This article describes the product of our work: the $60 Repeater Controller. Repeater Controller Mode The controller has an ID timer which can trigger 1 of 2 stored voice IDs, or the CW ID. The IDs are controlled by a user-programmable ID timer, which can be set from 10 seconds to 2550 seconds. Normally this will be set to a value less than 600 seconds (the FCC-mandated 10 minute ID time.) The controller will play the "initial ID" if it has been quiet for one entire ID cycle (that is, the time specified by the ID timer has elapsed since the repeater's last transmission.) The initial ID might contain a message such as "Welcome to N1KDO repeater." The "normal ID" will play after the ID timer expires. The normal ID would typically contain a short ID message like "N1KDO repeater." The controller tries to be "polite" about when it IDs; if a user unkeys and the ID timer has 60 seconds or less remaining before playing an ID message, the controller will ID immediately in an attempt to keep the ID from playing on top of another user. If a user keys up while a stored voice ID is playing, the controller will cancel the stored voice ID and play the CW id. Also, if a user keys the repeater, and the controller plays the initial ID, the controller will not play the normal ID after the ID timer expires unless the repeater is keyed again. This prevents unnecessary IDing by the repeater. The controller provides a hang timer and a courtesy tone. The hang timer keeps the repeater's transmitter on for a short time after a user unkeys. This reduces cycling of the repeater transmitter and can eliminate some of the squelch crashes on the user's that are caused by the repeater's transmitted signal dropping. The hang timer can be programmed for a delay from .1 second to 25.5 seconds. The courtesy tone is a short beep that sounds after a user's transmission has ended and the time-out timer has been reset. (Note that the time-out timer is reset before the courtesy tone is heard.) The controller has a user-programmable time-out timer, which can be set from 1 second to 255 seconds. The time-out timer prevents damage to the repeater's transmitter in the event of a user

Transcript of A $60 Programmable Talking Repeater Controller

Page 1: A $60 Programmable Talking Repeater Controller

1

A $60 Programmable Talking Repeater ControllerThis inexpensive programmable controller features stored voice, simplex or duplex repeater

control, and low power consumption.

Jeff Otterson, N1KDO3543 Tritt Springs WayMarietta, GA [email protected]

Peter Gailunas, KA1OKQ444 Micol RoadPembroke, NH [email protected]

Rich Cox, N1LTL452 Brown Rd.Candia, NH [email protected]

Several recent repeater projects involving the construction of portable repeaters for disaster siteuse and building a repeater system with voted remote receivers indicated the need for a low-cost,easy-to-build repeater controller. The projects required a controller that could be built for lessthan $60, with enough features to be used as a duplex repeater controller, a link controller, or asimplex repeater controller. Other required features included remote control and programmingvia DTMF, a hang timer, time-out and ID timers, CW ID, and stored voice messages for allapplications except link control. This article describes the product of our work: the $60 RepeaterController.

Repeater Controller Mode

The controller has an ID timer which can trigger 1 of 2 stored voice IDs, or the CW ID. The IDsare controlled by a user-programmable ID timer, which can be set from 10 seconds to 2550seconds. Normally this will be set to a value less than 600 seconds (the FCC-mandated 10minute ID time.) The controller will play the "initial ID" if it has been quiet for one entire IDcycle (that is, the time specified by the ID timer has elapsed since the repeater's lasttransmission.) The initial ID might contain a message such as "Welcome to N1KDO repeater."The "normal ID" will play after the ID timer expires. The normal ID would typically contain ashort ID message like "N1KDO repeater." The controller tries to be "polite" about when it IDs; ifa user unkeys and the ID timer has 60 seconds or less remaining before playing an ID message,the controller will ID immediately in an attempt to keep the ID from playing on top of anotheruser. If a user keys up while a stored voice ID is playing, the controller will cancel the storedvoice ID and play the CW id. Also, if a user keys the repeater, and the controller plays the initialID, the controller will not play the normal ID after the ID timer expires unless the repeater iskeyed again. This prevents unnecessary IDing by the repeater.

The controller provides a hang timer and a courtesy tone. The hang timer keeps the repeater'stransmitter on for a short time after a user unkeys. This reduces cycling of the repeatertransmitter and can eliminate some of the squelch crashes on the user's that are caused by therepeater's transmitted signal dropping. The hang timer can be programmed for a delay from .1second to 25.5 seconds. The courtesy tone is a short beep that sounds after a user's transmissionhas ended and the time-out timer has been reset. (Note that the time-out timer is reset before thecourtesy tone is heard.)

The controller has a user-programmable time-out timer, which can be set from 1 second to 255seconds. The time-out timer prevents damage to the repeater's transmitter in the event of a user

Page 2: A $60 Programmable Talking Repeater Controller

2

sitting down on his microphone before starting a long ride, or the repeater's receiver becomingunsquelched for some reason. The time-out message plays when the time-out timer expires andwhen the time-out condition ends, so people listening to the repeater are aware of the time-outcondition as soon as it happens, and the offending operator knows that he timed out the repeaterwhen the time-out condition ends.

A tail message can be selected to play after a programmed number of expirations of the hangtimer. This message can be used to advertise a net or club meeting, to warn of inclement weather,etc.

Link Controller Mode

The controller can be used to control link radios for remote receivers or split-site repeaters. Inlink controller mode, the controller does not use any stored voice messages; it only will ID inCW. This allows the controller to be built without the ISD1420 and associated support circuitry,lowering the cost for link support. In most link controller modes, the hang time would be set tozero.

Simplex Repeater Controller Mode

The controller can also be used to run a "simplex repeater". A simplex repeater records up totwenty seconds of audio from the receiver, then plays the recorded audio back out thetransmitter. In this mode, the controller will ID in CW when the ID timer expires.

Power Consumption

The controller is ideal for remote solar and battery powered applications. In standby mode, lessthen 10 mA of current is drawn. Worst case current consumption occurs when messages arerecorded into the ISD1420 chip, and that is under 30 mA. Normal repeater operation requiresless than 20 mA.

Circuit Description

The controller consists of a Microchip PIC 16C84 microcontroller IC, a Mitel/Teltone M8870DTMF decoder IC, a ISD 1420 voice record/playback IC, and a CMOS operational amplifier IC.

The heart of the controller is the Microchip PIC 16C84 microcontroller (U1). The 16C84features 13 I/O leads, 1024 word of program storage, 36 bytes of RAM, and 64 bytes ofEEPROM (non-volatile memory) in a 18-pin DIP. It is a RISC-like (reduced instruction setcomputer) Harvard architecture computer (it has separate program and data stores), and isextremely fast. In the repeater controller application, the PIC 16C84 executes over 800,000instructions per second (.8 MIP!). The 16C84 provides all the timers, CW generation, DTMFvalidation, and other digital I/O requirements of the controller. The 16C84 uses the 3.58 MHzclock generated by the DTMF decoder.

DTMF tones are decoded by the Mitel/Teltone M8870 (U3). The M8870 decodes DTMF byfiltering the received audio signal into its high and low components, and counting the frequency

Page 3: A $60 Programmable Talking Repeater Controller

3

of each component. Because it uses this approach, it is much less likely to detect voice as aDTMF digit and generate a false decode. When a valid digit is decoded, the M8870 raises theStD (delayed steering) lead, which informs the 16C84 microcontroller that a valid touch tone hasbeen received.

Speech messages are stored in the ISD 1420 (U2). This device stores speech by recording analoglevels into flash EEPROM cells, rather than storing digital values. The ISD1420 can address upto 160 different messages of 125 ms each, but in the controller application, we chose toimplement 4 messages of approximately 5 seconds each. The device's address lines areconfigured to allow messages to start at the 0-, 5-, 10-, and 15-second addresses. Device address,playback and record are controlled by the PIC 16C84.

Audio processing uses an optional de-emphasis circuit that provides a -6dB/octave slope to de-emphasize receiver audio, which allows the controller to be fed with the receiver's discriminatoroutput, rather than an already deemphasized source of audio, such as a line or speaker output. AFET(Q1) mutes the audio when the receiver is squelched or DTMF tones are present. A simpleaudio mixer combines receiver audio, ISD 1420 audio, and beep tone audio into the transmitterinput.

Software Description

The controller's PIC 16C84 microcontroller chip would do absolutely nothing without software.The controller's software handles all DTMF validation, beep generation, timing, CW sending andcontrol required by the ISD1420 and the repeater itself. The source code is nearly 1500 lines ofassembler, and uses 85% of the available program storage on the PIC. The program uses 32 of 36bytes of RAM on the PIC, and more than half of the EEPROM. The operation of the softwarecan be loosely described as a polled loop, with interrupt-based timing. The source code is heavilycommented for easy modification within the remaining space on the PIC.

The controller's software was assembled with Microchip's MPASM. The source and object codeare available for unlimited non-commercial use by amateurs worldwide, and can be downloadedfrom the Internet. Development tools for the PIC microcontroller (MPASM and MPSIM) arealso available on the Internet. Several sources exist on the Internet that describe the constructionof a programmer for the PIC 16C84. (See "Sources", below.)

Radio Interfacing

The controller uses a female DB9 connector for all signals. It requires receiver audio and a signalpresent indication (CAS) from the receiver, Transmit audio and PTT for the transmitter, and 13.8volts DC for power. Be very careful when wiring DC power to the controller, reverse polaritywill destroy the ICs.

Page 4: A $60 Programmable Talking Repeater Controller

4

Table 1:DB9 Connector Pinout

Pin Signal

1 Ground

2 13.8 Volts

3 PTT (active low)

4 TX Audio

5 RX Audio

6 CAS +

7 CAS -

8 Ground/TX Audio Return

9 Ground/RX Audio Return

Receiver audio can typically be taken from the high side of the squelch control. This audio mustbe de-emphasized with the controller's optional de-emphasis circuit, which provides a -6dB/octave slope. Optionally, audio can be taken from later in the receiver's audio chain, whereit is already de-emphasized. Care must be taken that this source of audio is not subject toadjustment by the radio's volume control. If the receiver audio has not been properly de-emphasized, either in the receiver itself, or on the controller board, the repeater will have a very"tinny", unnatural sound to it.

To de-emphasize the receiver audio on the controller board, install a .0068 F capacitor inposition C3, change R3 to 51K, and change R4 to 510K. These values should be considered agood starting point; you may want to experiment with the values of C3 and R4 to get bettersounding audio. We have had consistently good results with this de-emphasis network.

The receiver must provide a signal present indication (also called COR, RUS, CAS) to thecontroller. Because of the varieties of polarity and state that this signal can take, we have chosento implement the controller's signal present input with an opto-isolator (ISO1). The anode andcathode of the LED in the opto-isolator are exposed through a current limiting resistor (R30).This allows easy interfacing to active-high, active-low, and combinations of both to indicate thepresence of a received signal to the controller. Clever wiring can allow the user to create CTCSSand COR, CTCSS or COR, etc. configurations.

Page 5: A $60 Programmable Talking Repeater Controller

5

Transmitter audio can be fed directly into the microphone input of the transmitter. VR2 is themaster level control, used to set the audio level into the transmitter. Transmit audio should beadjusted with a service monitor or deviation meter.

Transmitter keying is provided by a power MOSFET (Q6) configured in an open-drain circuit.This can be used to key many transmitters directly. The MOSFET essentially provides a closureto ground for PTT. For other transmitters, the MOSFET can drive a small relay to key the radio.Although this MOSFET can handle several amps, we recommend that no more than 100 mA ofcurrent be drawn through it, since the trace on the PC board is rather thin.

Adjusting the Audio Levels

Preset all potentiometers to midrange. Connect an oscilloscope probe or DVM to pin 15 of U3.(Use the power supply ground for the 'scope's ground or the DVM's return.) Key a radio on theinput frequency, send some touch-tones, and adjust VR1 (the main receive level) until DTMFdecoding is reliably indicated by a 5 volt level on U3 pin 15. Disconnect the oscilloscope orDVM. Adjust VR2 (the master level) to adjust transmitter deviation, ideally measured with adeviation meter or service monitor. Adjust VR6 (the beep level) to set the courtesy tone and CWtone level.

The easiest way to adjust the ISD1420 input and output levels is to select the simplex repeatermode and record messages until the audio sounds right. VR3 adjusts the record audio level intothe ISD1420. Adjust this control for the best sounding record audio. VR5 sets the ISD1420playback level. Adjust this control for best acceptable transmitter deviation. VR4 is used to setthe receiver audio level, and may not need to be adjusted from midpoint.

Initializing the Controller

To initially program your secret code into the controller, you must apply power to the controllerwith the pins on the Init jumper, (SW1) shorted, putting the controller into the initialize mode.Remove the jumper a few seconds after power is applied. All of the values stored in theEEPROM will be reset to defaults, and the controller will be ready to accept the 4-digit secretaccess code. This will reset the CW ID to the default value "DE NHRC/2" as well. When thecontroller is in the initialize mode the courtesy tone is 1/2 second long, instead of the usual 1/5second. Key up and enter your 4-digit access code. The controller should respond with thenormal (1/5 second) courtesy beep. The secret access code is stored in non-volatile memory inthe 16C84 microcontroller. You will use this code as the prefix for all commands you send to thecontroller.

About Hexadecimal

To save space and reduce software complexity, the controller is programmed using hexadecimal,or hex for short. Hex is a base-16 notation that is particularly convenient for use in digitalcomputer systems because each hex digit represents 4 bits of a value. The controller uses pairs ofhex digits to represent 8-bit values for the address and data of programming information. Anydecimal number from 0 to 255 may be represented by two hex digits. Hex digits are 0, 1, 2, 3, 4,

Page 6: A $60 Programmable Talking Repeater Controller

6

5, 6, 7, 8, 9, A, B, C, D, E, F, where A through F represent values from 10 to 15. To convert adecimal number from 0 to 255 to hex, divide the decimal number by 16. The quotient (number ofwhole 16s) forms the left (high) digit, and the remainder forms the right (low) digit. Thus, 60decimal = 3 x 16 + 12 = 3C hex.

Programming the Controller

All programming data is entered into the controller as DTMF strings of 4 hex digits immediatelyafter the access code is entered. The * tone is translated to hex "E", and the # code is translated tohex "F". The first two hex digits represent a memory location, and the second two digitsrepresent a value to store in that location. This probably sounds more complicated than it is. Forexample, to program the hang timer (address 04) with 5 seconds (50 decimal = 32 hex),assuming your secret code is 1234, you would key your radio, enter 1, 2, 3, 4, 0, 4, 3, 2, thenunkey. If the OK message had been programmed, the controller will respond with the CWmessage "OK". The if the NG message has been programmed, and the address entered was notvalid, the controller will respond with the CW message "NG". The range of valid addresses is00-3F. The controller uses 40 and 41 for message play and record commands as described inTable 2:

Table 2: Message Play/Record Commands

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

Timers in the controller are of three different resolutions, depending on the application. Alltimers are stored in 8-bit values, and can hold any value from 0 to 255. The hang timer is in one-tenth second increments. To program a hang time of 5 seconds, the value 50 decimal must bestored in the hang timer preset location. To store the value, it must first be converted tohexadecimal. 50 decimal translates to 32 hex. Therefore, the command sent to then controllerwould be "cccc0232" to set the hang time to 5.0 seconds, where "cccc" is your secret accesscode. The hang time can be adjusted from 0 to 25.5 seconds.

The time-out timer is in whole second increments. 60 seconds would be stored as 60 decimal (3chex). The time-out timer can be adjusted from 0 to 255 seconds.

The ID timer is in ten-second increments. To store 570 seconds (9.5 minutes) you would store 57decimal (39 hex). The ID timer can be set from 0 to 2550 seconds!

Page 7: A $60 Programmable Talking Repeater Controller

7

Messages

Stored voice messages up to 4.8 seconds each can be recorded. The controller will not play thelast 100 ms of stored messages to avoid playing squelch crashes that may have been recorded atthe end of the messages. CW messages play at 12 WPM. There are 4 messages for voice, and 4messages for CW, as shown in Table 3:

Table 3: Message Numbers

MessageNumber 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")

Recording the Voice Messages

To record the voice message, enter your secret code, then 410x, where X is the number of thevoice message you wish to program. Unkey after the command sequence, then key up, speakyour message, and unkey. The controller will remove about 100 ms from the end of yourmessage to remove any squelch crash that might have been recorded. You can play your messageby using command 401x, where x is the number of the voice message you want to play. The tailmessage is recorded like any other message, but it will not play until you program the tailmessage counter (address 05) to a non-zero value N. Programming the tail message counter to 0will disable the tail message.

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 amateurwho's callsign is recorded in the controller after the ID message plays!

Programming CW Messages

CW messages are stored in the controller's non-volatile memory, and programmed in the samemanner as the timers. Each message has a fixed base address, and maximum number ofcharacters. Refer to Table 4, the programming memory map to determine where each symbol ina message belongs. CW symbols are stored in a binary-encoded form, from right to left, with a 1representing a dah, and a 0 representing a dit. The leftmost 1 indicates the width of the symbol.Table 5 has been provided as a quick lookup of the CW symbols to their encoded hexadecimalform. To program the first letter of the ID message ("D"), you would enter your secret code, thenthe address (0E), then the encoded form of the letter D (09): "cccc0909" (where cccc represents

Page 8: A $60 Programmable Talking Repeater Controller

8

your secret access code). To program the second letter ("E") enter "cccc0F02". The ID messagecan be up to 39 characters long, and must end with the End-Of-Message character, hex FF.

About the IDs

The controller will normally play the initial ID when the repeater is first accessed after one IDperiod of inactivity. If no further activity occurs after the initial ID plays, then no ID will be sentafter the ID timer expires. If any activity occurs after the initial ID is sent, the first occurrencewill set the ID timer. If a user unkeys within 60 seconds of the expiration of the ID timer, therepeater will play the normal ID message immediately, hopefully to prevent it from playingduring another user's transmission. If a user keys up the repeater when a voice ID is playing, thecontroller will cancel the playing voice ID and start to play the CW ID. The CW ID cannot becanceled.

Selecting Controller Modes

The controller mode is selected by programming values into the configuration flags (address 01).Multiple modes can be simultaneously selected by adding their values together to set multiplebits in the configuration byte. To select "normal" (full-duplex) controller mode, program theconfiguration flags with 00. To select link controller mode (no ISD1420, only CW messages),program the configuration flags byte with 01, and optionally program the hang timer (address02) to 00. When in link controller mode, you may wish to have the controller pass DTMF tonesto a "downstream" controller. Program the configuration flags byte with 21 in this case. To selectthe simplex repeater controller mode, program the configuration flags byte with 02. In normal orlink control mode, the courtesy tone can be suppressed by adding hex 10 to the configurationflags. For instance, to use link controller mode with no courtesy tone, program the configurationflags with 11. Note that in either normal or link control mode, setting the hang time to 0 will alsosuppress the courtesy tone. The tail message stored in position 3 can be used instead of thecourtesy beep by adding hex 40 to the controller mode byte. See Table 6 for a description of thevarious bits in the configuration flags byte.

Table 6: Configuration Flag Bits

Bit HexWeight Feature

0 (LSB) 01 ISD Absent

1 02 Simplex repeater mode

2 04 N/A

3 08 N/A

4 10 suppress courtesy tone

Page 9: A $60 Programmable Talking Repeater Controller

9

5 20 suppress DTMF muting

6 40 use Tail Message forcourtesy tone

7 (MSB) 80 N/A

RFI

Radio Frequency Interference (RFI) is everywhere, but is particularly troublesome at a repeatersite. This controller, like any microprocessor-based device, can generate a significant amount ofRFI. It is important to install the controller into a grounded RF-tight box.

Conclusion

We found that the low cost, variety of features, and low power consumption of this controllermade it a winner for several of our repeater projects. We wanted to share our results with theamateur community at large, and hope that many of you will find this controller useful andfunctional in your own repeater projects.

Table 4: Programming Memory Map

Address DefaultData 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'

Page 10: A $60 Programmable Talking Repeater Controller

10

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 10 'H'

14 0a 'R'

15 15 'C'

16 29 '/'

17 3c '2'

18 ff EOM

19 ff EOM

1a ff EOM

1b-37 not used, room for long CW ID

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

Page 11: A $60 Programmable Talking Repeater Controller

11

3e n/a passcode digit 3

3f n/a passcode digit 4

Morse Code Encoding.

Morse code characters are encoded in a single byte, bit-wise, LSB to MSB. A 0 represents a ditand a 1 represents a dah. The byte is shifted out to the right, until only a 1 remains. Characterswith more than 7 elements (like error) cannot be sent. Special cases are made for space (hex 00)and end-of-message (hex ff).

Table 5: Morse Code Character Encoding

Character MorseCode

BinaryEncoding

HexEncoding

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

Page 12: A $60 Programmable Talking Repeater Controller

12

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

Page 13: A $60 Programmable Talking Repeater Controller

13

x -..- 00011001 19

y -.-- 00011101 1d

z --.. 00010011 13

space 00000000 00

EOM 11111111 ff

References

• PIC 16/17 Microcontroller Data Book. Microchip Corporation, Chandler AZ.( http://www.microchip.com)

• ISD Data Book, Voice Record and Playback ICs, 1995. Information Storage Devices, SanJose, CA. (http://www.isd.com)

• Telecom Design Solutions, Component Data Book. Teltone Corporation, Bothell, WA(or see http://www.semicon.mitel.com/Products.html)

• Application Note MSAN-108, "Applications of the MT8870 Integrated DTMFReceiver". Mitel Semiconductor, Kanata, Ontario, Canada( http://www.semicon.mitel.com)

• Linear Circuits Data Book 1992, Volume 1, Operational Amplifiers. Texas Instruments,Dallas, TX. (or see http://www.st.com)

Sources

• The source code for the repeater controller is available on the Internet from the followinglocation: http://www.nhrc.net. The source code is also available from N1KDO, send ablank diskette and a stamped, self-addressed diskette mailer.

• A partial parts kit, containing a programmed PIC16C84, M8870, and the PC board (theparts that are not available from Digi-Key) is available for $25, plus $5 for shipping(international shipping extra), from NHRC.

• PIC16C84 device programmer information is available on the Internet at the followinglocations:

• http://digiserve.com/takdesign/pic-faq/hardware.html

• http://www.paranoia.com/~filipg/HTML/LINK/ELE/F_PIC_faq.html

Page 14: A $60 Programmable Talking Repeater Controller

14

• http://hertz.njit.edu/~rxy5310/picb

Acknowledgments

The authors want to thank Mike Martin at Prototype America in Manchester, NH for his extra-speedy work in the rapid turnaround of our prototype boards.

Copyright © 1996, 1997, Jeff Otterson, all rights reserved.Copyright © 1998, NHRC LLC, all rights reserved.Mail comments to [email protected]

Page 15: A $60 Programmable Talking Repeater Controller

1

NHRC-2 Repeater ControllerUser Guide

Contents1. Installation

1. Electrical Connections

2. Adjusting the Audio Levels

3. Initializing the Controller

2. Programming1. Controller Modes

2. Programming the Controller

1. Programming the Timers

2. Programming the CW Messages

3. Programming the Flag Bits

4. Recording the Voice Messages

3. Enabling/Disabling the Repeater

3. Operating1. About the IDs

2. The Tail Message

3. Using the Tail Message as the Courtesy Tone

Index of Tables• Configuration Flag Bits

Page 16: A $60 Programmable Talking Repeater Controller

2

• Electrical Connections

• Message Commands

• Morse Code Character Encoding

• Programming Memory Map

• Timer Address and Resolution

1. Installation

1. Electrical Connections

The controller uses a female DB9 connector for all signals. It requires receiveraudio and a signal present indication (CAS) from the receiver, supplies transmitaudio and PTT to the transmitter, and requires 13.8 volts DC for power. Be verycareful when wiring DC power to the controller, reverse polarity will destroy theICs. The connector pinout is shown in the table below.

Electrical Connections

Pin Use

1 Ground

2 +13.8 Volts

3 PTT (active low)

4 TX Audio

5 RX Audio

6 CAS +

7 CAS -

8 Ground/TX Audio Return

9 Ground/RX Audio Return

Page 17: A $60 Programmable Talking Repeater Controller

3

Receiver audio can typically be taken from the high side of the squelch control.This audio must be de-emphasized with the controller's optional de-emphasiscircuit, which provides a -6dB/octave slope. Optionally, audio can be taken fromlater in the receiver's audio chain, where it is already de-emphasized. Care mustbe taken that this source of audio is not subject to adjustment by the radio'svolume control. If the receiver audio has not been properly de-emphasized, eitherin the receiver itself or on the controller board, the repeater will have a very"tinny", unnatural sound to it.

To de-emphasize the receiver audio on the controller board, install a .0068 Fcapacitor in position C3, change R3 to 51K, and change R4 to 510K. These valuesshould be considered a good starting point. You may want to experiment with thevalues of C3 and R4 to get better sounding audio. We have had consistently goodresults with this de-emphasis network.

The receiver must provide a signal present indication (also called COR, RUS,CAS) to the controller. Because of the varieties of polarity and state that thissignal can take, we have chosen to implement the controller's signal present inputwith an opto-isolator (ISO1). The anode and cathode of the LED in the opto-isolator are exposed through a current limiting resistor (R30). This allows easyinterfacing to active-high, active-low, and combinations of both to indicate thepresence of a received signal to the controller. Clever wiring can allow the user tocreate CTCSS and COR, CTCSS or COR, etc. configurations. Note that both theCAS+ and CAS- terminals must be connected to something in order for thecontroller to detect the signal present indication.

Transmitter audio can be fed directly into the microphone input of the transmitter.VR2 is the master level control, used to set the audio level into the transmitter.The transmitter's deviation limiter (sometimes called IDC) should be set such thatthe transmitter cannot overdeviate, regardless of input signal level. One way toadjust transmitter deviation is to set the transmitter deviation limiter wide open(unlimited), adjust the controller's master output until the transmitter is slightlyoverdeviating, then set the transmitter's deviation limiter to limit just below 5KHz deviation. Then reduce the controller's master output until the transmittedaudio does not sound compressed or clipped. Transmitter deviation should beadjusted with a service monitor or deviation meter.

Transmitter keying is provided by a power MOSFET (Q6) configured in an open-drain circuit. This can be used to key many transmitters directly. The MOSFETessentially provides a closure to ground for PTT. For other transmitters, theMOSFET can drive a small relay to key the radio. Although this MOSFET canhandle several amps, we recommend that no more than 100 mA of current bedrawn through it, because the trace on the PC board is rather narrow.

Page 18: A $60 Programmable Talking Repeater Controller

4

2. Adjusting the Audio Levels

Preset all potentiometers to midrange. Connect an oscilloscope probe or DVM topin 15 of U3 (the M8870 DTMF decoder). (Use the power supply ground for the'scope's ground or the DVM's return.) Key a radio on the input frequency, sendsome touch-tones, and adjust VR1 (the main receive level) until DTMF decodingis reliably indicated by a 5-volt level on U3 pin 15. Disconnect the oscilloscope orDVM. Adjust VR2 (the master level) to adjust transmitter deviation, ideallymeasured with a deviation meter or service monitor. Adjust VR6 (the beep level)to set the courtesy tone and CW tone level.

The easiest way to adjust the ISD1420 input and output levels is to select thesimplex repeater mode and record messages until the audio sounds right. VR3adjusts the record audio level into the ISD1420. Adjust this control for the bestsounding record audio. VR5 sets the ISD1420 playback level. Adjust this controlfor best acceptable transmitter deviation. VR4 is used to set the receiver audiolevel, and may not need to be adjusted from midpoint.

3. Initializing the Controller

To initially program your secret code into the controller, you must apply power tothe controller with the pins on the init jumper, (SW1) shorted, putting thecontroller into the initialize mode. Remove the jumper a few seconds after poweris applied. All of the values stored in the EEPROM will be reset to defaults, andthe controller will be ready to accept the 4-digit secret access code. This will resetthe CW ID to the default value "DE NHRC/2" as well. When the controller is inthe initialize mode the courtesy tone is 1/2 second long, instead of the usual 1/5second. Key up and enter your 4-digit access code. The controller should respondwith the normal (1/5 second) courtesy beep. The secret access code is stored innon-volatile memory in the 16C84 microcontroller. You will use this code as theprefix for all commands you send to the controller.

2. Programming

1. Controller Modes

The controller can operate in 3 different modes:

• Repeater Controller ModeThe controller operates a full-duplex repeater, with a courtesy tone andstored voice messages.

Page 19: A $60 Programmable Talking Repeater Controller

5

• Link Controller ModeThis is a variation of Repeater Controller Mode where the ISD1420 voicestorage chip is deleted to lower the cost of the controller. This mode isintended to control remote receivers that are essentially crossbandrepeaters. Normally, when using link controller mode, the hang time is setto 0 seconds, and the controller is programmed to suppress DTMF muting,so the user's DTMF commands will appear on the input of a "downstream"controller. The controller adds remote control, a timeout timer and CW IDcapability to remote or link receivers.

• Simplex Repeater Controller ModeThis mode allows simplex (as opposed to duplex) radios to be used asrepeaters. Up to 20 seconds of received audio is stored in the ISD1420voice storage chip, and is "parroted" back when the user unkeys. The IDmessage is played in CW.

2. Programming the Controller

All programming is done by entering 8-digit DTMF sequences. The first 4 digitsare the passcode chosen at initialization. The next 2 digits are an address or afunction code. The last 2 digits are the data for address or function. To enterprogramming information, you must key your radio, enter the 8 digits, thenunkey. If the controller understands your sequence, it will respond with "OK" inCW. If there is an error in your sequence, but the passcode is good, the controllerwill respond with "NG". If the controller does not understand your command atall, it will not respond with anything other than a courtesy beep, and then only ifthe courtesy beep is enabled.

Responses to Commands

Response Meaning

"OK" Command Accepted

"NG" Command address or data is bad

courtesy beepor nothing Command/password not accepted

If you enter an incorrect sequence, you can unkey before all 8 digits are entered,and the sequence will be ignored. If you enter an incorrect address or incorrectdata, just re-program the location affected with the correct data.

Page 20: A $60 Programmable Talking Repeater Controller

6

In order to save space, reduce keystrokes, and eliminate some softwarecomplexity, all programming addresses and data are entered as hexadecimalnumbers. Hexadecimal (or hex, for short) is a base-16 notation that is particularlyconvenient for use in digital computer systems because each hex digit represents 4bits of a value. The controller uses pairs of hex digits to represent 8-bit values forthe address and data of programming information. Any decimal number from 0 to255 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 adecimal number from 0 to 255 to hex, divide the decimal number by 16. Thequotient (number of whole 16s) forms the left (high) digit, and the remainderforms 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 requiredto program the controller.

1. Programming the Timers

Timer Resolution. The timer values are stored as an 8-bit value, whichallows a range of 0 to 255. Some of the timers require high-resolutiontiming of short durations, and others require lower resolution timing oflonger durations. Therefore, timers values are scaled by either 1/10, 1, or10 seconds, depending on the application.

Timer Address and Resolution

Timer Address ResolutionSeconds

Max. ValueSeconds

Hang Timer 02 1/10 25.5

Timeout Timer 03 1 255

ID Timer 04 10 2550

Enter the 4 digit passcode, the timer address, and the timer value, scaledappropriately. For example, to program the Hang Timer for 10 seconds,enter pppp0264, where pppp is your secret passcode, 02 is the hang timeraddress, and 64 is the hexadecimal value for 100, which would be 10.0seconds.

Page 21: A $60 Programmable Talking Repeater Controller

7

2. Programming the CW Messages

CW messages are programmed by storing encoded CW characters intospecific addresses in the controller. Use the Morse Code CharacterEncoding table and the Programming Memory Map to determine the dataand address for the CW message characters. For example, to program "DEN1KDO/R" for the CW ID, you would use the following commands:

DTMFCommand 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 40characters.

3. Programming the Flag Bits

Controller features can be enabled of disabled with the use of theConfiguration Flag Bits. These bits are encoded into a single byte, whichis programmed into the controller at address 01. Multiple flag bits can beselected by summing their hex weights. For instance, to set up a linkcontroller with no ISD1420, no courtesy tone, and suppress the DTMF

Page 22: A $60 Programmable Talking Repeater Controller

8

muting, you would add 01, 10, and 20 to produce hex 31, which youwould then program into address 01 in the controller as pppp0131.

Configuration Flag Bits

Bit HexWeight Feature

0 01 ISD Absent

1 02 Simplex repeater mode

2 04 n/a

3 08 n/a

4 10 suppress courtesy tone

5 20 suppress DTMF muting

6 40 use tail message for courtesy tone

7 80 n/a

4. Recording the Voice Messages

Stored voice messages can be played and recorded, and CW messages canbe played by using the message commands. Command 40 is used to playstored voice or CW messages, and command 41 is used to record storedvoice messages.

To record stored voice messages, use command pppp410x, where x is thenumber of the message you want to record, found in the message contentstable. Unkey after the command sequence, then key up, speak yourmessage, and unkey. The controller will remove about 100 ms from theend of your message to remove any squelch crash that might have beenrecorded.

To play stored voice messages, use command pppp401x, where x is thenumber of the stored voice message you want to play. To play CWmessages, use command pppp401x, where x is the number of the CWmessage you want to play.

You may wish to have a family member or member of the opposite sex

Page 23: A $60 Programmable Talking Repeater Controller

9

record your ID messages. The recorded audio sounds natural enough thatpeople have actually tried to call the amateur whose callsign is recorded inthe controller after the ID message plays!

3. Enabling/Disabling the Repeater

The repeater can be disabled or enabled by remote control by setting the value inlocation 00. Set this location to zero to disable, or non-zero to enable. Forinstance, to disable the repeater, send command pppp0000. To enable therepeater, send command pppp0001.

3. Operating

1. About the IDs

When the repeater is first keyed the controller will play the "initial ID". If therepeater is keyed again before the ID timer expires, the controller will play the"normal ID" when the ID timer expires. If the repeater is not keyed again, and theID timer expires, the controller will reset and play the "initial ID" the next timethe repeater is keyed. If the repeater is keyed while the controller is playing astored voice message ID, the controller will cancel the stored voice message IDand play the CW ID.

The idea behind this IDing logic is to prevent unnecessary IDing. For instance, ifa 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 therepeater is keyed again. If users commence with a QSO, keying the repeater atleast once more, the controller will play the normal ID and reset the ID timerwhen the ID timer expires. If the repeater becomes idle for one ID timer periodafter the last ID, then the next time it is keyed it will play the initial ID. The intentis that the repeater users only hear the initial ID the first time that they key therepeater.

2. The Tail Message

The controller supports a "Tail Message" that plays the nth time the hang timerexpires. The number of times the hang timer must expire before the tail messageplays (n) is the "tail message counter" at address 5. The tail message counter canbe set from 1 to 255. The tail message is disabled if the tail message counter is setto 0. Program the tail message counter value into address 05.

Page 24: A $60 Programmable Talking Repeater Controller

10

3. Using the Tail Message as the Courtesy Tone

The tail message can be used as the courtesy tone if bit 6 is set in theconfiguration flags. In this case, you will likely want to set the tail messagecounter value to 0 to keep the message from playing twice occasionally. Themessage could store the sound of a bell, a dog's bark, or the repeater trusteesaying "what?"!

Tables

Message Commands

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 Contents

MessageNumber 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")

Page 25: A $60 Programmable Talking Repeater Controller

11

Programming Memory Map

Address DefaultData 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'

Page 26: A $60 Programmable Talking Repeater Controller

12

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

Morse Code Character Encoding

Character MorseCode

BinaryEncoding

HexEncoding

sk ...-.- 01101000 68

ar .-.-. 00101010 2a

bt -...- 00110001 31

/ -..-. 00101001 29

Page 27: A $60 Programmable Talking Repeater Controller

13

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

Page 28: A $60 Programmable Talking Repeater Controller

14

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

Page 29: A $60 Programmable Talking Repeater Controller

NHRC-2 Repeater Controller BOM

Item Qty. Ref. Value Description Pkg. Mfg. Mfg. P/N Digi-Key P/N Unit Cost Notes1 11 C1 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$

C4 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C5 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C6 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C18 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C19 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C21 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C22 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C23 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C24 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$ C25 0.1uF 0.1uF 50V Z5U Ceramic Capacitor Panasonic ECU-S1H104MEA P4924-ND 0.21$

2 8 C2 1uF 1.0uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE105K P2105-ND 0.24$ C14 1uF 1.0uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE105K P2105-ND 0.24$ C17 1uF 1.0uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE105K P2105-ND 0.24$ C7 1uF 1.0uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE105K P2105-ND 0.24$ C8 1uF 1.0uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE105K P2105-ND 0.24$ C9 1uF 1.0uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE105K P2105-ND 0.24$ C10 1uF 1.0uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE105K P2105-ND 0.24$ C11 1uF 1.0uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE105K P2105-ND 0.24$

3 1 C3 0.0068uF 0.0068uF 50V X7R Ceramic Capacitor Panasonic ECU-S1H682KBA P4951-ND 0.18$ *4 1 C12 4.7uF 4.7uF 16V Solid Tantalum Capacitor Panasonic ECS-F1CE475K P2036-ND 0.39$ 5 1 C13 220uF 220uF 25V Aluminum Electrolytic Cap Panasonic ECE-A1EU221 P6240-ND 0.21$ 6 2 C15 22uF 22uF 25V Aluminum Electrolytic Cap Panasonic ECE-A1EU220 P6236-ND 0.09$

C16 22uF 22uF 25V Aluminum Electrolytic Cap Panasonic ECE-A1EU220 P6236-ND 0.09$ 7 1 C20 33pF 33pF 100V C0G Ceramic Capacitor Panasonic ECU-S2A330JCA P4843-ND 0.18$ 8 1 D1 1N5226B 3.3V 500mW Zener Diode DO-35 Diodes Inc. 1N5226B 1N5226BCT-ND 0.22$ 9 1 D2 1N5240B 10V 500mW Zener Diode DO-35 Diodes Inc. 1N5240B 1N5240BCT-ND 0.22$

10 1 ISO1 4N36 Opto Isolator w/Photo Transistor Output 6DIP300 Quality Tech 4N36 4N36QT-ND 0.40$ 11 1 P1 CONN. DB9 9 Pin D-Sub Right Angle Connector AMP 745781-4 A2100-ND 1.70$ 12 1 PCB1 NHRC-2 Repeater Controller PCB NHRC NHRC-2 PCB rev. B N/A **13 1 Q1 MPF102 N-Channel JFET TO-92 Nat'l Semi MPF102 MPF102-ND 0.74$ 14 3 Q2 2N2222 NPN Transistor TO-92 Nat'l Semi PN2222 PN2222-ND 0.32$

Q3 2N2222 NPN Transistor TO-92 Nat'l Semi PN2222 PN2222-ND 0.32$ Q4 2N2222 NPN Transistor TO-92 Nat'l Semi PN2222 PN2222-ND 0.32$

15 1 Q5 2N3906 PNP Transistor TO-92 Nat'l Semi 2N3906 2N3906-ND 0.31$ 16 1 Q6 IRL530 N-Channel Logic Level MOSFET TO-220 IRF IRF510 IRF510-ND 0.77$ 17 8 R1 10K 10K 5% 1/4W Carbon Film Resistor RN55 Yaego 10K CR-1/4W-B 5% 10KQBK-ND 0.02$

R2 10K 10K 5% 1/4W Carbon Film Resistor RN55 Yaego 10K CR-1/4W-B 5% 10KQBK-ND 0.02$ R8 10K 10K 5% 1/4W Carbon Film Resistor RN55 Yaego 10K CR-1/4W-B 5% 10KQBK-ND 0.02$ R15 10K 10K 5% 1/4W Carbon Film Resistor RN55 Yaego 10K CR-1/4W-B 5% 10KQBK-ND 0.02$ R17 10K 10K 5% 1/4W Carbon Film Resistor RN55 Yaego 10K CR-1/4W-B 5% 10KQBK-ND 0.02$ R26 10K 10K 5% 1/4W Carbon Film Resistor RN55 Yaego 10K CR-1/4W-B 5% 10KQBK-ND 0.02$ R28 10K 10K 5% 1/4W Carbon Film Resistor RN55 Yaego 10K CR-1/4W-B 5% 10KQBK-ND 0.02$ R31 10K 10K 5% 1/4W Carbon Film Resistor RN55 Yaego 10K CR-1/4W-B 5% 10KQBK-ND 0.02$

18 1 R3 51K 51K 5% 1/4W Carbon Film Resistor RN55 Yaego 51K CR-1/4W-B 5% 51KQBK-ND 0.02$ *

Page 30: A $60 Programmable Talking Repeater Controller

NHRC-2 Repeater Controller BOM

Item Qty. Ref. Value Description Pkg. Mfg. Mfg. P/N Digi-Key P/N Unit Cost Notes19 1 R4 510K 510K 5% 1/4W Carbon Film Resistor RN55 Yaego 510K CR-1/4W-B 5% 510KQBK-ND 0.02$ *20 7 R5 100K 100K 5% 1/4W Carbon Film Resistor RN55 Yaego 100K CR-1/4W-B 5% 100KQBK-ND 0.02$

R6 100K 100K 5% 1/4W Carbon Film Resistor RN55 Yaego 100K CR-1/4W-B 5% 100KQBK-ND 0.02$ R16 100K 100K 5% 1/4W Carbon Film Resistor RN55 Yaego 100K CR-1/4W-B 5% 100KQBK-ND 0.02$ R20 100K 100K 5% 1/4W Carbon Film Resistor RN55 Yaego 100K CR-1/4W-B 5% 100KQBK-ND 0.02$ R23 100K 100K 5% 1/4W Carbon Film Resistor RN55 Yaego 100K CR-1/4W-B 5% 100KQBK-ND 0.02$ R25 100K 100K 5% 1/4W Carbon Film Resistor RN55 Yaego 100K CR-1/4W-B 5% 100KQBK-ND 0.02$ R27 100K 100K 5% 1/4W Carbon Film Resistor RN55 Yaego 100K CR-1/4W-B 5% 100KQBK-ND 0.02$

21 2 R7 1K 1K 5% 1/4W Carbon Film Resistor RN55 Yaego 1K0 CR-1/4W-B 5% 1KQBK-ND 0.02$ R10 1K 1K 5% 1/4W Carbon Film Resistor RN55 Yaego 1K0 CR-1/4W-B 5% 1KQBK-ND 0.02$

22 4 R9 22K 22K 5% 1/4W Carbon Film Resistor RN55 Yaego 22K CR-1/4W-B 5% 22KQBK-ND 0.02$ R12 22K 22K 5% 1/4W Carbon Film Resistor RN55 Yaego 22K CR-1/4W-B 5% 22KQBK-ND 0.02$ R13 22K 22K 5% 1/4W Carbon Film Resistor RN55 Yaego 22K CR-1/4W-B 5% 22KQBK-ND 0.02$ R14 22K 22K 5% 1/4W Carbon Film Resistor RN55 Yaego 22K CR-1/4W-B 5% 22KQBK-ND 0.02$

23 2 R11 33K 33K 5% 1/4W Carbon Film Resistor RN55 Yaego 33K CR-1/4W-B 5% 33KQBK-ND 0.02$ R19 33K 33K 5% 1/4W Carbon Film Resistor RN55 Yaego 33K CR-1/4W-B 5% 33KQBK-ND 0.02$

24 1 R18 39K 39K 5% 1/4W Carbon Film Resistor RN55 Yaego 39K CR-1/4W-B 5% 39KQBK-ND 0.02$ 25 1 R21 470K 470K 5% 1/4W Carbon Film Resistor RN55 Yaego 470K CR-1/4W-B 5% 470KQBK-ND 0.02$ 26 1 R22 300K 300K 5% 1/4W Carbon Film Resistor RN55 Yaego 300K CR-1/4W-B 5% 300KQBK-ND 0.02$ 27 1 R24 5.1K 5.1K 5% 1/4W Carbon Film Resistor RN55 Yaego 5K1 CR-1/4W-B 5% 5.1KQBK-ND 0.02$ 28 1 R29 100 100 5% 1/4W Carbon Film Resistor RN55 Yaego 100E CR-1/4W-B 5% 100QBK-ND 0.02$ 29 1 R30 1.5K 1.5K 5% 1/4W Carbon Film Resistor RN55 Yaego 1K5 CR-1/4W-B 5% 1.5KQBK-ND 0.02$ 30 1 SKT1 8 pin DIP socket AMP 2-640463-3 A9308-ND 0.05$ 31 2 SKT2 18 pin DIP socket AMP 2-640359-3 A9318-ND 0.10$

SKT3 18 pin DIP socket AMP 2-640359-3 A9318-ND 0.10$ 32 1 SKT4 28 pin DIP socket AMP 2-640362-3 A9328-ND 0.19$ 33 1 SKT5 6 pin DIP socket AMP 2-641296-3 A9306-ND 0.04$ 34 1 SW1 SW PB 2 Pin 0.100" Center Header Molex 22-03-2021 WM4000-ND 0.20$ 35 1 U1 PIC16C84-04/P 8 Bit RISC Microcontroller 18DIP300 Microchip PIC16C84-04/P PIC16C84-04/P-ND 6.88$ **/***36 1 U2 ISD1420P Single-Chip Voice Record/Playback 28DIP600 ISD ISD1420P ISD1420P-ND 8.75$ **37 1 U3 M-8870-01 DTMF Decoder 18DIP300 Holtek HT9170 HT-9170-ND 2.63$ **38 1 U4 LM7805CT 5V 1.5A Voltage Regulator TO-220 Nat'l Semi LM340T-5 LM340T-5.0-ND 0.70$ 39 1 U5 LM358 Dual Low Power Op-Amp 8DIP300 Nat'l Semi LM358AN LM358N-ND 0.46$ 40 5 VR1 10K 10K 6mm Single Turn Cermet Pot Panasonic EVN-36CA00B14 36C14-ND 0.52$

VR3 10K 10K 6mm Single Turn Cermet Pot Panasonic EVN-36CA00B14 36C14-ND 0.52$ VR4 10K 10K 6mm Single Turn Cermet Pot Panasonic EVN-36CA00B14 36C14-ND 0.52$ VR5 10K 10K 6mm Single Turn Cermet Pot Panasonic EVN-36CA00B14 36C14-ND 0.52$ VR6 10K 10K 6mm Single Turn Cermet Pot Panasonic EVN-36CA00B14 36C14-ND 0.52$

41 1 VR2 500K 500K 6mm Single Turn Cermet Pot Panasonic EVN-36CA00B55 36C55-ND 0.52$ 42 1 Y1 3.579MHz 3.579545MHz Color Burst Crystal HC49 CTS MP036S CTX049-ND 1.27$

NOTES: * BOM shown is for version with optional de-emphasis circuit installed. Remove C3 and change R3 & R4 to 100K to disable de-emphasis.** Items included with partial kit.*** May be substitiuted with Digi-Key P/N: PIC16F84-04/P (upgraded version)Digi-Key pricing based on Catalog Q991. Pricing may vary.

Page 31: A $60 Programmable Talking Repeater Controller

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

A A

B B

C C

D D

uP RESET

DTMF DECODER

SPEECH REC/PLAY

PIC uP

CAS/COR ISOLATION

PTT DRIVER

SPEECH PLAY/RECORD DRIVERS

VCC GENERATION BYPASS CAPS

NOTES:1. ALL RESISTORS ARE1/4W 5% TOL. UNLESSOTHERWISE STATED.2. ALL CAPACITORS ARE16V ELECTROLYIC / 50VCERAMIC UNLESSOTHERWISE STATED.

DRAWN BY: N1LTL

INTERFACECONNECTOR

A

NHRC

NHRC-2 Digital

Monday, March 17, 1997 2 3

B

NHRC-2 Repeater Controller (DIGITAL)

Size

Scale

CAGE Code DWG NO Rev

Sheetof

RB4 PLAYL\RB5RB4RB5 PLAYL_EN

Q1Q2 PLAYL\Q3 PLAYE\Q4 REC\MUTE

STDPTT_ENPLAYL_ENREC_ENRB4RB5 REC\BEEPCOR

PICCLK REC_EN

Q1Q2Q3Q4

STD PTT

PTT_EN

CAS+

CAS-PTT

PICCLK

CAS+ COR

CAS-

VCC

VCC

VCC

VCC

VCC

VCC

VCC

VDD VCC

VDDVCC

VDD

VCC

VCC

VCCVCC

VCC

VCC

VDD

R1839K

12

R1933K

12

R20100K

12

C180.1uF

12

R21470K

12

R22300K

12

C190.1uF

12

R23

100K

1 2

C20

33pF

1 2

C210.1uF

12

C220.1uF

12

C230.1uF

12

C240.1uF

12

C25

0.1uF

1 2R24

5.1K

1 2

R25100K

12

R26

10K

1 2

R27100K

12

R28

10K

1 2

R29

100

1 2

R30

1.5K

1 2

R3110K

12

P1CONNECTOR DB9

594837261

D21N5240B10V

12

ISO14N36

12

5

4

6

Q32N22221

23

Q42N22221

23

Q52N39063

21

U1

PIC16C84-04/P

171812

678910111213

14

5

3

1516

4

RA0RA1RA2RA3

INT/RB0RB1RB2RB3RB4RB5RB6RB7

VDD

VSS

TOCKI/RA4

OSC2/CLKOOSC1/CLKI

MCLR/VPP

U2

ISD1420P

1234569

10

232427

25

26

2816

1213

14

15

2021

1817

19

A0A1A2A3A4A5A6A7

PLAYLPLAYEREC

RECLED

XCLK

VCCDVCCA

VSSDVSSA

SP+

SP-

ANAIANAO

MICREFMIC

AGC

U3

M-8870-01

18

987

12

4

311121314

16

151710

56

VDD

VSSOSC2OSC1

IN+IN-

VREF

GSQ1Q2Q3Q4

EST

STDST/GTOE

ICIC

U4LM7805CT

1 3

2

IN OUT

GN

D

R17

10K

1 2

+ C1522uF

12

+ C1622uF25V

12

+ C13220uF25V

12

Y1

3.579MHz

1 2

+ C124.7uF

12

D11N5226B3.3V

12

+ C171uF

12

+ C141uF

12

Q6IRL5301

23

ISD_AUDIO

REC_AUDIO

BEEP

MUTE

AUDIO_OUT

DISC_AUDIO

DECODE_AUDIO

VDD

VCC

GND

Page 32: A $60 Programmable Talking Repeater Controller

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

A A

B B

C C

D D

DRAWN BY: N1LTL

SPEECHAUDIO

AUDIO

AUDIORECORD

RECEIVE

BEEPAUDIO

FOR FLAT AUDIORESPONSE

FC=1/6.28R*CR=510K

RECEIVE AUDIO

RECEIVEAUDIO MUTE

NOTES:1. ALL RESISTORS ARE1/4W 5% TOL. UNLESSOTHERWISE STATED.2. ALL CAPACITORS ARE16V ELECTROLYIC / 50VCERAMIC UNLESSOTHERWISE STATED.

VREF GENERATION

BUFFER

MAINRECEIVELEVEL

LEVEL

LEVEL

LEVEL

LEVEL

INIT

MASTER LEVEL

AUDIO OUTPUT BUFFER

C=0.0068uF

CHANGE R3AND R4 TO 100K

C3 IS REMOVED,

NOTE:

A

NHRC

NHRC-2 Audio

Thursday, April 24, 1997 2 2

B

NHRC-2 Repeater Controller (AUDIO)

Size

Scale

CAGE Code DWG NO Rev

Sheetof

VCC

VDD

VREF

VDD

VREF

VREF

VREF

VCC

VDD

R5

100K

1 2

R6100K

12

R71K

12

R8

10K

1 2

R9

22K

1 2

R101K

12

R11

33K

1 2R12

22K

1 2

R13

22K

1 2

R14

22K

1 2

R1510K

12

R16

100K

1 2

C4

0.1uF

1 2

C5

0.1uF

1 2

C60.1uF

12

Q1MPF102

31

2

Q22N22221

23

-

+ U5ALM358

3

21

84

-

+ U5BLM358

5

67

R210K

12

R110K

12

+ C111uF

12

+

C9

1uF

1 2

+

C10

1uF

1 2

VR610K1

3

2

VR510K1

3

2

VR410K1

3

2

VR310K1

3

2

VR2500K

1 3

2

VR110K1

3

2 +

C7

1uF

12

+

C8

1uF

12

C1

0.1uF

1 2

SW1JUMPER

12

C3

0.0068uF

1 2

R4

510K

1 2

R3

51K

1 2

+ C21uF

12

BEEP

ISD_AUDIO

DISC_AUDIO

DECODE_AUDIO

REC_AUDIO

AUDIO_OUT

MUTE

VDD

GND

VCC

Page 33: A $60 Programmable Talking Repeater Controller
Page 34: A $60 Programmable Talking Repeater Controller

NHRC LLC Limited WarrantyNHRC LLC warrants that it’s assembled and tested products will be free from defects in materialsand workmanship for a period of NINETY DAYS from the date of shipment. During this period,NHRC LLC will repair or replace, at our option, any of our products that fail as a result of defectsin materials or workmanship. NHRC LLC’s liability will be limited to parts, labor, and returnshipping for this period.

NHRC LLC warrants that it’s kit products will contain components that are free from defects inmaterials and workmanship for a period of THIRTY DAYS from the date of shipment. During thisperiod, NHRC will replace any of the components in a kit ONCE. Subsequent replacement of anycomponent any subsequent times is completely at the discretion of NHRC LLC, and may requirethe complete return of the kit.

In no case will NHRC LLC be liable for products damaged by improper wiring (including, but notlimited to, over-voltage or application of reverse polarity), physical damage resulting from misuseand/or abuse of the product, neglect, or acts of God (lightning, floods, etc.).

Unauthorized modification of a NHRC product will void the warranty on the modified product.

In no case will NHRC LLC be liable for any direct, consequential, or incidental loss or damageresulting from the use or inability to use any of it’s products.

Some states or countries do not allow the limitation of incidental or consequential damages, so theparagraph above may not apply to you.

This warranty applies only to the original purchaser of the product; proof of purchase must bepresented to receive warranty service.

Copyright © 1997, Jeff Otterson, all rights reserved.Copyright © 1998, NHRC LLC, all rights reserved.Mail comments to [email protected]