This page describes my home-built ICOM CI-V interface. In order to connect most all ICOM radios to a computer, an additional interface is required. The interface bridges the gap between the RS-232 electrical levels used by the computer serial port, and the open collector shared bus used by the ICOM radios. The interface, therefore, is not much more than a level converter.
For additional background information, please read my general comments on the CI-V interface located on another page. For a number of designs and comments, please consult the CI-V web pages of Ekki, DF4OR. Yet another simpler alternative is provided by Perry, K4PWO.
The interface is inexpensive in parts, and easy to construct. Since the interface I built is not my own design, I initially was not going to present it on a web page, other than to refer to it. But, I realized that if for no other reason than my own documentation I wanted to capture what I did before I forgot it all. So, this page is really for my own use (for maintenance), but you may find something of value on it.
Here is the schematic diagram for the interface I built.
|CI-V Interface Schematic Diagram|
Notes, in no particular order.
The 5 volt regulator is shown as a LM7805. It takes an input voltage usually greater than 7 volts, and regulates it down to 5 volts. 5 volts are needed to power the TTL integrated circuits (IC's). The 7805 is available in a number of packages. The package type is directly related to the current capacity of the regulator. Since this application uses very little power, I actually used what is marked as a 78L05 regulator, in a TO-92 package. It looks like a small transistor, and with a 3-lead package, can be easily confused with one. The 78L05 is rated to provide up to 100 mA of output current. The pin-out of the package is a function of the package. Be sure to reference your actual package, not my schematic. The Motorola literature for this part suggests the use of capacitors on the input and output side (C1, C2), although their example value is 3.33 uF. The 10 uF electrolytic capacitors specified here are a very common part, often used for DC voltage stability.
In my implementation, I used 0.001 uF capacitors for RF filtering on the RS-232 data lines and the radio data line (C3, C4, C5). Obviously if RF interference is a problem, bypassing and filtering will be an important issue. The original schematic shows a value of 0.01 uF for these 3 capacitors. In order to evaluate the effect of the capacitor on the line, the impedance of the capacitor at some given frequency must be computed. The idea is that at the lower data frequency, the bypass capacitor will have a high impedance, allowing the data to pass without effect. As the frequency goes up, where RF interference energy might exist, the impedance will drop. At these higher frequencies, the low impedance will cause the RF energy to be shunted to ground. In this case, the maximum data rate will probably never exceed 100 KHz. That is near the limit of serial communication ports, and at this point in time, I don't believe that any ICOM radio can go faster than 19.2 KHz. The frequency of RF interference is not going to be fixed, but will be in the MHz range. The impedance of a capacitor is computed by the classic formula, X = 1 / (2 * PI * F * C). For a 0.01 uF capacitor, the impedance at 100 KHz is 159.2 ohms. At 5 MHz, the impedance is 3.184 ohms. For a 0.001 uF capacitor, the impedance at 100 KHz is 1592 ohms. At 5 MHz, the impedance is 31.84 ohms. My own experience has been that 0.01 uF bypass capacitors can overly distort RS-232 digital signals. At 100 KHz, the 0.01 uF bypass capacitor provides approximately 160 ohms of impedance aimed at ground. I feel a bit more comfortable with 0.001 uF, although 0.005 uF might be a good compromise. I also had many 0.001 uF parts on hand, and they are usually a little smaller than 0.01 uF parts. If you have problems with RF interference, you might consider going with the 0.01 uF part. 0.01 uF will provide better bypassing, but has a lower impedance at the desired frequency range. Additional filtering information is contained in the next note.
The claimed ICOM CT-17 (ICOM's CI-V Interface) schematic is shown on another web page. This design is interesting in that it filters the power and radio data line with common mode two-wire inductors. I assume that the implementation consists of some number of turns of wire around a ferrite core. Perhaps something like 20 turns on a 1/2 inch type 75 or 43 core. This sort of design is often times used in telephone line filters. In cases of stubborn RF interference, perhaps this type of filter could be included. Another common RF interference solution is the addition of ferrite beads to the lines coming into and out of a box. Yet another approach is to add RF chokes to the power supply line. An RF choke is a high reactance inductor that is intended to pass DC, but block AC. A common part is the 100 uH choke. Radio Shack sells that part, and it could be used in series in the power supply line, if that line was considered to be part of the interference problem.
My implementation uses the most common Maxim 232 level converter IC. This chip requires the use of 4 external capacitors which are part of the internal charge pump that generates plus and minus 10 volts from the single +5 volt supply. For a few more dollars, a chip version (the Maxim 233) is available that does not require the external capacitors. If space is at a premium, you can use that alternative. While it does not require the 4 external capacitors, the package does have a few more pins. Go figure....
Most of the designs that use external charge pump capacitors (C6, C7, C8, C9) specify values between 10 and 22 uF. I used 10 uF since that is a common value, and I had a large supply in my junk box. What's interesting about these parts is that the Maxim data sheet calls for a values of 1 uF. I don't really understand the difference, unless the integrated circuit has evolved over time to require less capacitance, but designs still quote old values. I suspect that a wide range of values will work, and the only difference will be how long it takes for the chip to reach operating levels.
I measured the current draw of my implementation. The interface was active at the time of these measurements, constantly transferring data between the computer and the radio. The measured current draw was 50 mA (0.05 A). At a supply voltage of 12 volts, the power consumption is 12 volts X 0.05 amps = 0.6 watts. Much of the power consumed will be consumed by the 78L05 voltage regulator, as it drops the voltage from 12 down to 5, at the operating current. The 78L05 is rated for 100 mA of current, so we are operating at no more than 50% of its rating (less because the output of the 78L05 is at 5 volts, not 0 volts). Even after operating constantly for several days, the interface case feels to be at room temperature. Heat dissipation is not a problem.
One of the goals of my implementation was to make sure that I could use a garden variety RS-232 data cable with standard 9-pin connectors on each end. The cable will be a straight-through extension cable with one male and one female connector. A proper computer should have a male RS-232 serial port connector. That means that the CI-V interface should have the opposite, or female DB-9 connector. If necessary, a 9 to 25 pin adapter can be used for the other common connector style. The signals shown on the DB-9 connector on the schematic are defined relative to the computer serial port.
One important point not indicated on most similar designs is the proper termination of unused inputs on the two ICs. Inputs to digital ICs should not be allowed to float, unless there is some sort of internal pull-up resistor. Floating inputs can create undesirable oscillations. Pins that should be grounded include pins 9 and 11 on the 7417, and pins 10 and 13 on the Maxim 232. In some cases unused inputs should be tied to the supply voltage, not ground. It depends upon the function of the input pin.
The ARRL Handbook states that this interface can be used for certain older Yaesu radios if the transmit and receive data lines are not connected together to form a single open collector bus. Consult the handbook for more details.
If you examine the DB-9 female connector which connects to the computer serial port, you will see that the DTR pin is connected to the DSR pin, and that the RTS pin is connected to the CTS pin. This signal return is done so that a computer program that demands to see certain control signals on the COM (serial) port will indeed see them. This web page is not the right place to go into the (endless) history and definition of all of the signals on a serial interface line, so I won't. But, in addition to the transmit and receive data lines, there exists a number of control signals that primarily date back to the days of telephone lines and modems. Some of these lines are so-called handshaking lines that orderly control the flow of data between the two sides of the connection. Problems occur because there are many different ways that software can expect these lines to operate. What matters is that the hardware is wired to work together with the software. They must agree. This circuit takes a very conservative position, trying to allow for the largest number of software scenarios. The potential problem is that a software serial port driver will refuse to communicate over the port because it does not see some signal asserted which it believes is necessary in order to enable data transfer. If the hardware does not assert that signal, then the interface will appear nonfunctional. Connecting DTR to DSR and RTS to CTS is a common practice used to force the DSR line to follow the state of the DTR line, and the CTS line to follow the state of the RTS line. If the software is designed to assert certain control signals and to expect others, these are the connections that should indicate that the other side of the connection is always ready to exchange data.
The 7417 TTL IC is an open collector hex buffer. This means that it contains six individual buffers. On the transmit side (computer to radio), an open collector buffer is required to implement the CI-V standard. That leaves five unused buffers. Most designs will use a buffer coming back in the other direction. This provides some electrical isolation for the Maxim 232 IC. Of course since the 7417 IC is an open collector buffer, pull-up resistor R1, 470 ohms, is required between the 7417 and the Maxim 232. In my implementation, I decided to use two more of the remaining four buffers to work in parallel with the first two buffers. This is another common technique used to increase the amount of current that can be sinked. It may also provide some additional protection against damage due to external overloads on the radio data line. Regardless of how many buffer stages you use, be sure to ground all unused inputs in order to prevent self oscillation. Note that the radio data line is exclusively connected to the 7417 IC. If the interface fails, it is probably due to a blown 7417. If replacing that component does not fix the problem, then replace the Maxim 232. An alternate to the 7417 is the 7407. This IC can sink more current, and tolerate a higher output voltage. Thanks to Art, VE3SQG, for bringing this alternative to my attention.
It should be noted that the open collector radio data output does not include a pull-up resistor as part of the CI-V interface. This implies that the pull-up resistor must be included in the radio itself. Open collector circuits will not function correctly unless there is a pull-up resistor.
If you examine pin 4 of J2, the DB-9 female connector, labeled DTR, you will see that it connects to the incoming DC power line through diode D2. The intent of this portion of the circuit is to provide power to the interface through the DTR line. A clever designer once observed that a modem control line on the serial interface, can, in some cases, be used to supply a small amount of power to drive an external device. Some people have successfully built CI-V interfaces that are powered by the serial port itself. Of course this requires, at the least, that the software which will drive the port assert the DTR line so that a positive voltage is present on the line. In most cases, the CI-V interfaces that can be powered by the DTR line are the ones built out of discrete transistors. I have heard, however, of some interfaces built around the Maxim chip which can be powered from the DTR line. So, when I built my interface, I decided to include this feature. Diodes D1 and D2 keep the two different power sources separate. So far, I have not been able to power my interface from the DTR line. I suspect that with the use of two ICs, the voltage regulator, and the RTS transistor, I simply draw too much current. I cannot get excited about this circuit, and would probably not add it again. In any case, return DTR to DSR for the reasons previously mentioned. Even if you can build an interface that is powered from the DTR line, please note that there will be a short delay between asserting DTR and being able to transmit data through the interface. Personally, I do not get too excited about powering the interface from the computer serial port since I know that a source of 12 volts must be nearby to power the radio. While I have not tested it, my implementation might well work if powered with 12 volts AC (not just DC). The diode D1 and 10 uF capacitor form a classic half-wave rectifier. In this case, removing diode D2 would be a good idea.
The serial port RTS line (pin 7) is connected to a circuit composed of R2, D3, and Q1. The collector of Q1 exits the interface as the push to talk (PTT) control signal (on J4). Some software uses the RTS control line to signal that the radio transmitter should be turned on. This is not part of the standard CI-V interface, but an additional circuit to squeeze a little more functionality out of the serial port. Serial ports tend to be precious resources on a computer, and if you are going to plug in a cable, you should get the most out of it. In order to reduce the chances of confusing the PTT output with the CI-V bus, I used a 3/32" jack for the PTT signal. The CI-V bus is provided on a 1/8" jack (J3). Note that my schematic shows stereo jacks for both J3 and J4. Mono jacks would work just fine, as the ring terminal is not used. Q1 is shown as a 2N2222. Some sources, such as Radio Shack, seem to be favoring the 2N3904 over the 2N2222 as their generic NPN switching transistor. In this application, most any NPN transistor should work, since the circuit is operated as a simple binary switch. The only functional difference (in this application) between the transistors will be their power dissipation rating. The 2N2222 can dissipate far more power than the 2N3904. In this case, however, it probably does not matter - any NPN will work. I should mention that my target ICOM radio for this interface is the 706MKIIG. This PTT output can be directly connected to the PTT signal on the 706MKIIG microphone cable, or the HSEND signal on the Acc1 jack, or the CW key input . When the RTS signal is asserted by the computer, the radio will switch to transmit. The active state of RTS is the +12 volt level. When inactive, the signal is at -12 volts. In practice the true absolute voltage is probably between 9 and 12 volts, depending upon the computer. Diode D3 protects the transistor when the base input would otherwise be dragged to a negative voltage level. When the RTS line is active (+12 volts), the transistor (Q1) will turn on, and any collector voltage will be pulled towards ground. When RTS is inactive, the transistor will turn off, and the collector will float. NOTE: while you may have software that knows how to control RTS to put the radio into transmit, the state of RTS when you are not executing the software can be an issue. In some cases, the default behavior of COM ports on versions of Windows is to assert RTS. This means that the transmitter will be turned on unless you are in the radio software (which is correctly controlling RTS). In this case, you can either remove the RTS cable when the software is not running, or, you can attempt to change the default state of the RTS line. On some versions of Windows, you can use the mode command to set the RTS state for a COM port. This command is a DOS command, and must be executed from a command prompt window. Please consult the system documentation for more information.
It is interesting to observe that the open collector transmitter data output (7417, pins 2, 12) is directly wired to the receiver data input (7417 pins 3, 5). This is part of the design of the CI-V bus, where all data is carried on a single line, regardless of the data direction (computer to radio, radio to computer, or even radio to radio). This creates several implications for the software writer. The primary implication is that every data byte you send from the computer will be immediately returned to the computer. The program must be prepared to accept this returned data. ICOM radios can usually be placed in what is called transceive mode, where the radio can send status information without a specific request from the computer. This means that data can collide on the CI-V bus, when both the radio and the computer are transmitting at the same time. This same sort of collision is possible (and common) on computer-only networks. From a software perspective, a program must be robust enough to allow commands to fail (due to collisions), and to retry them if needed. Some of the other radio brands, with direct radio to computer connections, allow much simpler software driver architectures. On the other hand, you can connect several ICOM radios to a single computer, and even directly connect a radio to a radio.
If you examine the standard ICOM CT-17 interface, you will notice that it has 4 jacks for radio connections. Since the CI-V signal is a shared bus, more than one radio can be connected to a computer. My design and implementation (as well as most other ones) shows a single radio connection. This is not a limitation as compared to the ICOM interface. If you want to connect additional radios to my circuit, simply connect all of their CI-V bus cables in parallel (not serial). In fact, you can probably connect far more than 4 radios. The practical limit will be determined by the number of radios and the length of connecting cables between them. If you desire, install more than one connector on your case, and connect them in parallel inside the case.
My connector labeled J1 is the external power connector. It is a 2.5 mm power connector. It is the common connector used by many wall wart power supplies. Other popular sizes are 2.1 mm and 3.5 mm. Any connector can be used, but it should be one that does not short out when the connector is removed. Use what you prefer.
Although I have used the DTR control line for power, and the RTS control line for PTT, these functions can be swapped. In other words, DTR and RTS are just two modem control lines that can be used for whatever purposes you desire. Of course if you use DTR or RTS you must be sure that the software you use knows how to set the lines appropriately. I have seen these lines used for other functions such as CW keying. And although in this case I have returned the modem control lines to the computer, there is no reason why one cannot consider DTR, DSR, RTS, and CTS to by general purpose control lines, two being inputs and two being outputs. So long as you can get your software to go along with your hardware, create whatever you want.
Johnathan, AE6HO, pointed out a clever circuit modification. He noted that the PTT control circuit consisting of the resistor (R2) and diode (D3) and transistor (Q1) can be replaced with components already in the basic level translator circuit! An alternative implementation is to use the unused RS-232 to TTL section of the MAX232 (U1) chip to drive an unused buffer section of the 7417. The output of the 7417 replaces the output of the transistor. Functionally, the result is the same, and the only difference is that the individual transistor can probably sink more current than the IC section, but in many cases, the PTT input to a radio is at a digital logic level, and current sinking requirements are quite low, and within the range of the hex buffer IC. To be specific about it, the RTS/CTS pins from the DB-9 connector would go to pin 13 of the MAX232 chip, and pin 12 out of that chip would go to pin 11 of the hex buffer. Pin 10 of the buffer is the output, replacing the transistor output. You could even double up the sixth and final section of the hex buffer to get a little more current sinking capability.
Robert Soubie has put together a PCB that is based on this schematic. This work is available on this page. He did an excellent job with laying out the circuit, and the integration with the enclosure. Very professional work.
On November 2, 2008, I received an email from a ham who noticed that my schematic was incorrect! I had the negative side of capacitor C9 connected to ground. It should have been connected to the +5 VDC supply. The current schematic has been corrected. Thanks to Roger, VK3ADE, for pointing this out. I do know that many units have been constructed with this error, but yet they work. My guess is that the error lowered the positive side voltage swing of the RS-232 level, but perhaps not enough to make the communication with the computer port fail.
A good source for all of the parts in this design is Jameco. I built the circuit on a small perf board, using the wire wrap technique, combined with a certain amount of point to point rat's nest. I had to shorten (by cutting) all of the pins on the bottom side in order to fit the board into the small case. The perf board is housed in a die-cast aluminum case made by Hammond Manufacturing (the 1590G). The case is very strong, and the wall thickness is not the typical aluminum box thickness. This means that it takes a little extra work to make the holes for the four external connectors. Three of the four connectors are round, which means that a drill will do the job. The DB-9 connector, however, has a cutout hole which is in the shape of a trapezoid. I made this hole by starting with several round holes, then using a combination of hand files and a Dremel tool I slowly arrived at the final shape. When using such a thick-walled case, expect to spend some time in getting the holes prepared.
The aluminum case can be painted, but as is usually the situation with metal, a primer should be used to obtain a good bond between the case and the paint. The usual advice is to apply many light coats as opposed to fewer thick coats. I covered the paint with a few coats of clear Krylon acrylic paint, which gives the finish more of a sense of depth. On the other hand, this is an electrical interface, not a piece of furniture. Actually, I applied a label to the lid of the case right on top of the color coats. The clear coats are designed to help keep the label from peeling off. I find that I can make very acceptable labels using the small label machines sold at office supply stores. I print onto a clear tape, which leads to a good result.
The following pictures illustrate various aspects of the implementation. Please click on a picture for a larger view.
The board top picture shows the tie points where connections are made to the cables going to the jacks mounted on the case. In fact, the tie points are labeled in the picture.
The board is held firmly in the case by two 4-40 bolts that come up from the bottom of the case. Nylon-insert locking nuts are used to fix the bolt to the bottom of the case, and to make a sandwich around the board to hold it securely. The nuts are adjusted to provide the correct stand-off from the bottom of the case. The ribbon cables that connect the jacks to the board are simply folded over the top of the board before the lid is attached.
The following color coded ribbon cable segments were used to attach the connectors mounted on the case to the perf board.
|CI-V Radio Data||GND||GRAY|
Internal Cable Color Codes
The interface case has four external connectors.
The computer connects to the interface via a serial communications extension cable with a male DB-9 connector on one end and a female DB-9 connector on the other. The wiring is straight through, that is, pin 1 connects to pin 1, pin 2 connects to pin 2, etc..
The connection between the interface and the radio is made with a cable with 1/8" mono plugs on each end. More than one radio can be connected if they are connected in parallel.
The third connector is the power connector. Any DC voltage between 7 and 12 volts will work just fine. The current draw is approximately 50 mA. A 2.5 mm power plug is used.
The fourth connector is the PTT connector. This connector accepts a 3/32" mono plug. The line will be pulled low if RTS is asserted. Else, it floats. This connection is not needed for normal CI-V operation.
In order to reduce RF interference, shielded cable should be used.
Here is a picture of my portable station centered around the ICOM IC-706MKIIG and a laptop computer, connected via this CI-V interface. I obtain power for the interface from the Acc1 breakout box connected to the 706MKIIG accessory jack. The PTT jack on the interface is connected to the HSEND jack on my breakout box.
Back to my Experimentation Page
Back to my Amateur Radio Page