Computer Control of ICOM Amateur Gear Carl Clawson, N7KBV General Description Several ICOM products feature a built-in computer interface connected to a 1/8" phone jack on the rear panel. However, ICOM gives no information about this interface in the instruction manuals that I've seen. The information exists within ICOM, and my dealer managed to get it for me. This interface, called the "CI-V" by ICOM, is standard on the following models: 735, 761, 275, 375, 475, and R7000. Earlier models used the CI-IV parallel interface, which can be connected to CI-V by ICOM's UX-14 converter. Models using the CI-IV are the 751, 271, 471, 1271, and R71. The information I got from ICOM was written with the 735 in mind, but a listing of a BASIC program to control the R7000 was appended. I believe it will help with the other models, too. The control codes and data format should be the same for all of them. The computer interface allows you to do such things as: - Set and read the frequency and modulation mode - Set VFO A, VFO B, or memory mode - Select memory channel - Store displayed frequency into memory - Transfer displayed memory-mode frequency to a VFO Even without a computer, you can run a cable between the remote control jacks of two rigs, and whenever the fre- quency or modulation mode of either is changed, the other will track it if possible. (If the rigs have incompatible frequency coverages, like the 735 and R7000, funny things can happen.) The interface is bi-directional, using TTL levels on a single line for sending and receiving serial ASCII data. You may need an appropriate hardware interface to convert, for example, RS232 to TTL. (I understand that Commodore computers have TTL inputs and outputs so that no interface is needed with them.) I used the Motorola MC1488 and MC1489 chips powered by two 9-volt batteries to interface to my RS232 line. Appendix 1 lists the pinouts used for this interface. If you'd rather buy something, ICOM sells the model CT-17 level converter for RS232. The interface uses a "carrier-sense, multiple-access with collision detection" local area network protocol, so that multiple rigs can be connected in parallel without dif- ficulty. Thus, you can use the same RS232 line and level- converter interface to control many rigs. Each rig must have a unique address, which is set by internal jumpers. Each model comes factory preset to its own address, which is 04 for the 735 and 08 for the R7000. Appendix 2 has infor- mation on the jumper settings. I will use the words "receive" and "send" to refer to data transmissionhe word "rig" to mean an ICOM product using the CI-V interface. The rigs send and receive data in variable length pack- ets, which are formatted as follows: Byte # Contents 1 hex 'FE' (i.e. 11111110 binary, 254 decimal) 2 hex 'FE' 3 4 5 6-n n+1 hex 'FD' The two hexadecimal FE bytes signal the beginning of a packet, and the FD byte signals the end. is the con- trol code sent by the computer to the rig, which determines the action that the rig will take. In some cases, the receiving rig will include a control code in its response to the sender; see the section "Control Codes and Responses" below. is the address of thng sent. When a rig responds to a data packet, it addresses that response to the in the packet. Thus, if your computer (Of course, the computer can lie about its address and trick one rig into talking to another!) Your computer should use its own uniqu There are two control codes that can cause any rig on the network to respond when sent with =0; I discuss these below. Bytes #6 through #n contain any data required by the control code, in BCD format with 2 decimal digits per byte. ing the 1-Hz and 10-Hz digits. These digits are sent even if they are not used by the rig, so that the data format is the same for all rigs regardless of their frequency coverage and MHz. This is broken up into two-digit groups: 25 13 24 40 It is then coded in BCD. In other words, consider each digit group to be a hexadecimal number instead of decimal. , FE FE If you have more than one rig on the network you may collision has occurred. Each rig, when sending, monitors the interface. If it does not receive exactly what it sent, then a collision occurred, sending a packet, it will wait until the network is idle, then send the jammer code. A rig that receives this code will realize that a collision has occurred and ignore the previouontrol ports are bi-directional, your computer wi Control Codes and Responses Most of the following codes are adesses an acknowledgement packet to the contained in the control packet. The first two codes, 00 and 01, can be sent to the "group call addres nowledgement. without computer intervention. Rigs can be inhibited from sending and receiving group call packets by an internal jumper. See Appendix 2 for more details. These codes can also be sent with a specific, non-zero , in which case they will be recei 00 Set frequency. See above foode desired. Data Mode 0 02 Report tuning range. No data required. The rig will report its frequency limits in the format FE FE 02 2D FD (Hex 2D is the ASCII hyphen.) According to ICOM, some rig format 04 Report modulation mode. No data required. The return an additional byte indicating the bandwidth. h> FD The bandwidth codes are: Data Bandwidth 01 Width 1 (widest) 02 Width 2 (narr 05 Set frequency. The data format is given above. If the data contains fewer digits than the rig uses, the digits sent will be changed and the rest will remain within its tuning range, it responds with a packet con- taining the d If it didn't like the data, it responds with the data "FA": These acknowledgement codes are used by all following commands. cy data by sending the "FA" acknowledgement and: 1) If the quency data that is more than 30 MHzne byte is sent, it sets the mode per the above table. If tw 07 Set VFO status. If no data is sent, the rig changes from MEMORY mode to VFO mode. If data 00 or 01 is sent, the 08 Set memory channel. If no data is sent, the rig changes from VFO mode to MEMORY mode. If BCD channel data is sent, the rig changes to that memory channel. 09 Store displayed frequency and mode into displayed memory channel. No dat to a VFO. No data required. I will give a few examples of codes and responses for the 735. The 735 is at address 04 and the computer nnel, and code 03 to read the frequency). Assume the 735 has the frequency 7.12750 MHz stored in memory #1. Computer to 735: FE FE 04 02 08 01 FD 735 to computer: FE FE 02 04 FB FD Computer to 735: FE FE 04 02 03 FD 735 to computer: FE FE 02 04 03 00 75 12 07 FD Now let's change the frequency and mode to 14.02500 MHz USB (codes 05 and 06). Computer to 735: FE FE 04 02 05 00 50 02 14 FD 735 to computer: FE FE 02 04 FB FD 735 to computer: hanged result back into memory #1. This channel is already displa FE FE 02 04 FB FD This is an easily built converter that will run hour or two for about $10. The converter uses two inexpen- sive, needed are a box, connectors, a power nicads off of your RS232 line. The pinouts are as follows: For e 1488 - Pin Connect to 1 ICOM remote jack center conductor 3 RS232 pin 3 (RD) For the 1489 - 3 ICOM remote jack center conductor 7 Ground 14 +V Ground pin Appendix 2 -- Jumper Selections There are jumpers in the ICOM rigs to set the device address, baud rate, and to enable the group call feature. You must look on the schematic to find them. The jumper to enable the gr transceive enabled. I have specific information the 735 codes and the schematic. For the 735 - The jumpers use lines labeled DB0 through DB5 a nector J22 on the PL board. Lines DB0 through DB2 set the device address. Line DB3 is the transceive enable. The DB4 DB5 Baud 0 1 1 300 The 735 is set at the factory to add frequency or modulation mode manually. You will receive a group call packet that contains as its 4th byte the address of the rig.