ACC Serial Converter
INTRODUCTION
Advanced Computer Controls was the leader in repeater controllers during the 1980's and thousands are still in use today. ACC pioneered the use of synthesized speech and remote programming in Amateur repeater controllers, along with remote programming of synthesized remote bases. But there was a catch - you needed a remote transceiver that was Binary Coded Decimal (BCD) programmable in order to work with the ACC series of controllers. During the 1980's, these were easy enough to find but today, it's becoming more and more difficult to find one, unless you're lucky enough to stumble across one. Or, you need to settle on using an older style handheld transceiver (such as the Icom 2A series) which is not truly happy in a high RF environment, such as a hilltop location.
I've used an ACC RC-850 controller in my repeater system for more than 15 years and was fortunate to have found an Icom IC-22U as my 2 meter remote base back when I built the system. But like many older radios, certain repair parts are next to impossible to find and, should the venerable 22U fail, I could be hard-pressed to find the needed parts. This was the inspiration for the design of the Serial Converter.
The converter uses an inexpensive, user-programmable BASIC Stamp to do the necessary data conversion, and a handful of support parts. Note that you don't need an expensive level converter in order to drive your radio of choice, as it's output doesn't drive the data port of the controller radio, but rather the microphone input.
CONCEPTS
The ACC series of controllers output a synchronous serial stream, which simply means that they provide a data stream output, along with a clock signal to synchronize the bits. You could then recover this data by using shift registers to capture the data in parallel form for driving the programmable dividers of the radio you used for your remote base. In the case of the RC-850, this stream also provided PL programming bits, so you could remotely change sub-audible tones as needed.
What was needed was a way to convert the serial stream from these series of controllers to allow frequency control of today's radios. In my case, I have several Kenwood mobiles laying around, which allow for limited control of frequency and some other functions by the use of DTMF tones applied to their microphone audio lines. So we take the ACC supplied serial stream and convert it to the proper DTMF tones needed to control the radio. The use of a BASIC Stamp makes this a piece of cake.
WHAT ARE BASIC STAMPS?
Stamps are complete microcomputers, with RAM, ROM, a serial interface (for programming and debugging) and a Basic interpreter all in a small package. They are manufactured by Parallax, Inc. and come in two 'models' - a type 1 and a type 2 and are extremely compact (the type 2 is self-contained in a 24 pin DIP size package). For this project, I chose a type 2, as it provides for some commands in the Basic interpreter that the type 1 doesn't. And these commands are exactly what we need for our task. Some may ask why I didn't use a PIC for this project instead of the slower and more expensive Stamp. The answer is simple - no special programmer is necessary for a Stamp and the manufacturer even provides free development and programming software. And since Stamps are programmed in a form of BASIC, this makes for easier program development. Stamps also store their programs in flash prom, so they are easily and rapidly re-programmable (a blessing during program development) and can be done so tens of thousands of times.
Programming a BASIC Stamp simply requires a Windows PC with a free serial port. Be sure to look here for the details on hooking it up to your computer (although it's simplicity itself !).
CIRCUIT DESCRIPTION
Looking at the schematic , the first thing you notice is the use of shift registers which at first glance, seem unnecessary. But the serial stream from the ACC series of controllers are approximately 1 to 2 ms in length, which is too fast for the BASIC Stamp to deal with properly (remember, the Stamp is an interpreted language device which imposes some overhead on execution speed).
U1 is a hex Schmidt trigger, used to insure the data and clock signals from the ACC controller are clean and have rapid rise times. U2, U3 and U4 store the data from the serial stream, allowing the Stamp to read it after the controller has sent it. Each register stores 16 bits of data and are cascaded to allow for recovery of the full 48 bits that the RC-850 sends. If you plan to only use the converter with other ACC controllers (such as the ITC-32, RC-85 or RC-96), you can delete U3 and U4, as only 16 bits are provided by these particular controllers. For the RC-850, all three registers are needed in order to recover the complete serial stream.
D1 and D2 are used to OR the clock signals - one from the ACC controller while it's sending its data, and the other from the Stamp, when it's reading the data stored in the shift register chain.
The output of the Stamp (used to drive the radio microphone input) is capacitively coupled, so we don't need to worry about any voltage on the MIC IN line of the controlled radio. I haven't made provisions for mixing transmit audio with the output of the Stamp, but a simple resistor (around 10K) should be fine. There is no need adjust output level of the Stamp in this application. Since the RC-850 supports two frequency agile remote bases, I've included outputs for each. Of course, you don't need to use the second one if your applications doesn't require it.
SOFTWARE
The program can best be described as a polled loop, where the Stamp continuously looks for activity on the ACC clock signal line. Once it detects such activity, it delays for 10 milliseconds to allow the ACC controller to completely store its data in the shift register chain then jumps to the appropriate routine to read the data in from the registers, depending on the state of the SELECT line.
The BASIC Stamp determines which shift register to use as its source for data depending on the state of the SELECT line. If the SELECT line is not grounded, the Stamp assumes it will be dealing with a 16 bit data stream and ignores the data currently stored in U3 and U4. If the SELECT line is grounded, the full shift register set it used to recover the full 48 bits of the RC-850 data stream for processing.
The functions I have included are:
RC-850
I didn't include the direction control bits available from the '850, but they're recovered in the shift register chain and you could add this feature if you're handy with PBASIC (the programming language for the BASIC Stamp).
Other ACC controllers
SOFTWARE MODIFICATIONS
The source code for the ACC Serial Data Converter is not in the public domain and it is not shareware. However, it is available, free of charge to individual Amateurs for their own personal use. As there is plenty of room left in the ROM of the BASIC Stamp, you may want to add some features (although about the only thing left to add is rotor control). Feel free to use my source code as a starting point.
CONSTRUCTION NOTES
Although I designed a circuit board for this project (placement and trace layout) , it's actually simple enough to use wire wrapping techniques or simply point-to-point wiring on a piece of perfboard.
There is nothing critical about construction of the converter, other than to observe polarities of the electrolitic capacitors, diodes and IC orientation. Connection to the outside world is made via JP1, a 12 pin single inline header.
Applied power can be anything from 6 VDC to 35 VDC and only 10 ma of current is needed, so you can easily rob power from the controlled radio, or the ACC controller itself. I leave it up to you as to where you mount the converter, but it's small enough to easily fit within the ACC enclosure.
You will need to install some resistance between the output of the converter and the MIC input of the radio you plan to use. A good starting point is around 10K, but this isn't critical. As long as your radio reliably accepts the data, you're in good shape.
OPERATION
Operation of the converter requires nothing more than hooking up power, the data and clock outputs of your ACC controller, and the output(s) to your radio(s). Don't forget a ground between the controller, converter and radio!
If you're using the converter with an RC-850, you'll need to ground the SELECT line so the converter knows you want to recover the full 48 bit stream. For all other ACC controllers (ITC-32, RC-85/96), leave the SELECT line unconnected.
When the converter powers up, it will initialize itself and also initialize your radios by setting them to a known frequency, with PL off. This is necessary in order to make sure your radio(s) and the controller are initially synchronized. Once they are, they will remain so.
A NOTE ABOUT THE REMOTE BASE RADIOS
Most Kenwood Mobile radios support being controlled by touchtones, injected into their MIC lines. Although I wrote the software for the radio I had in mind (TM-732A), it should work with any radio that supports this method of control. Of course, you may have to make some minor changes to the commands used by the particular radio(s) you plan to use.