home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
- 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
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- 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 transmission. Thus a "receiver" isn't necessarily an
- R7000; it's any device receiving data from the CI-V bus. I
- will use the word "rig" to mean an ICOM product using the
- CI-V interface.
-
-
-
- Data Format
-
-
- 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 <RX>
- 4 <TX>
- 5 <Code>
- 6-n <BCD data of variable length>
- n+1 hex 'FD'
-
- The two hexadecimal FE bytes signal the beginning of a
- packet, and the FD byte signals the end. <Code> 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. <TX> is the address of the device sending the data,
- and <RX> is the address to which the data is being sent.
- When a rig responds to a data packet, it addresses that
- response to the <TX> in the packet. Thus, if your computer
- requests a rig to report its frequency, it will address that
- report to the computer and other rigs will ignore the data.
- (Of course, the computer can lie about its address and trick
- one rig into talking to another!) Your computer should use
- its own unique, non-zero address on the network. I will
- assume in the examples that the computer is at address 02.
- There are two control codes that can cause any rig on the
- network to respond when sent with <RX>=0; I discuss these
-
-
-
-
-
-
-
-
- - 3 -
-
-
-
- below.
-
- Bytes #6 through #n contain any data required by the
- control code, in BCD format with 2 decimal digits per byte.
- Frequency data is sent starting with the byte containing 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
- resolution. For example, consider the frequency 25.13244
- 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.
- The decimal values of these BCD digit groups are 2x16+5=37,
- 1x16+3=19, 2x16+4=36, and 4x16+0=64. Now send these groups,
- starting with the least significant. The complete data
- packet will be, in hexadecimal,
-
- FE FE <RX> <TX> <Code> 40 24 13 25 FD
-
-
- If you have more than one rig on the network you may
- occasionally receive a sequence of 5 bytes of hex 'FC'.
- This is the "jammer code" used by a rig to indicate that a
- collision has occurred. Each rig, when sending, monitors
- the interface. If it does not receive exactly what it sent,
- then a collision occurred, i.e., another rig was sending
- data at the same time. If a rig detects a collision when
- 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
- previously received packet. Because the ICOM remote control
- ports are bi-directional, your computer will receive every-
- thing it sends, so you can check for collisions from your
- computer, too.
-
-
-
- Control Codes and Responses
-
-
- Most of the following codes are addressed to a specific
- rig, which addresses an acknowledgement packet to the <TX>
- contained in the control packet. The first two codes, 00
- and 01, can be sent to the "group call address" of 00, in
- which case any rig will receive them without sending an ack-
- nowledgement. These two codes are sent in this way by any
- rig when its mode or frequency is changed by manual control,
- and are received by any rig on the network. This allows a
- number of rigs to track each other in frequency and mode
- without computer intervention. Rigs can be inhibited from
- sending and receiving group call packets by an internal
-
-
-
-
-
-
-
-
- - 4 -
-
-
-
- jumper. See Appendix 2 for more details. These codes can
- also be sent with a specific, non-zero <RX>, in which case
- they will be received by the addressed rig even if the group
- call function is disabled.
-
- 00 Set frequency. See above for format of frequency data.
- See code 05 below for more details.
-
- 01 Set modulation mode. One or two data bytes are
- required to indicate the mode desired.
-
- Data Mode
-
- 00 LSB
- 01 USB
- 02 AM
- 03 CW
- 04 RTTY
- 05 FM
- 05 00 SSB (R7000)
-
-
- 02 Report tuning range. No data required. The rig will
- report its frequency limits in the format
-
- FE FE <RX> <TX> 02 <upper limit> 2D <lower limit> FD
-
- (Hex 2D is the ASCII hyphen.) According to ICOM, some
- rigs report the lower limit first.
-
- 03 Report frequency. No data required. The addressed rig
- returns its displayed frequency to the sender in the
- format
-
- FE FE <RX> <TX> 03 <Frequency> FD
-
-
- 04 Report modulation mode. No data required. The
- addressed rig returns its mode to the sender using the
- codes listed above. Rigs with selectable bandwidth
- return an additional byte indicating the bandwidth.
- The format of the response is
-
- FE FE <RX> <TX> 04 <Mode> <Bandwidth> FD
-
- The bandwidth codes are:
-
- Data Bandwidth
-
- 01 Width 1 (widest)
- 02 Width 2 (narrower)
- 03 Width 3 (narrowest)
-
-
-
-
-
-
-
-
-
-
- - 5 -
-
-
-
- 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
- the same. If the rig receives valid frequency data
- within its tuning range, it responds with a packet con-
- taining the data "FB":
-
- FE FE <RX> <TX> FB FD
-
- If it didn't like the data, it responds with the data
- "FA":
-
- FE FE <RX> <TX> FA FD
-
- These acknowledgement codes are used by all following
- commands.
-
- The 735 responds to out-of-range frequency data by
- sending the "FA" acknowledgement and: 1) If the fre-
- quency it receives is less than 0.1 MHz, it sets its
- frequency to 0.1 MHz, 2) If it received 4 bytes of fre-
- quency data that is more than 30 MHz, it sets itself to
- 30 MHz, and 3) If it received more than 4 bytes of fre-
- quency data, the data is ignored.
-
- 06 Set modulation mode. If one byte is sent, it sets the
- mode per the above table. If two bytes are sent, the
- second is the IF bandwidth.
-
- 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 rig sets VFO A or VFO B respectively.
-
- 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 data required.
-
- 0A Write frequency and mode from displayed memory channel
- to a VFO. No data required.
-
-
-
- Examples
-
-
- I will give a few examples of codes and responses for
- the 735. The 735 is at address 04 and the computer is at
- 02. First, let's find out what's in memory channel 1 (code
- 08 to set the channel, and code 03 to read the frequency).
- Assume the 735 has the frequency 7.12750 MHz stored in
- memory #1.
-
-
-
-
-
-
-
-
- - 6 -
-
-
-
- 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
-
- Computer to 735:
-
- FE FE 04 02 06 01 FD
-
- 735 to computer:
-
- FE FE 02 04 FB FD
-
- Now store the changed result back into memory #1. This
- channel is already displayed, so we need only the store com-
- mand, code 09.
-
- Computer to 735:
-
- FE FE 04 02 09 FD
-
- 735 to computer:
-
- FE FE 02 04 FB FD
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 7 -
-
-
-
-
- Appendix 1 -- RS232 to TTL converter
-
-
- This is an easily built converter that will run your
- ICOM gear from a standard RS232 line. It can be built in an
- hour or two for about $10. The converter uses two inexpen-
- sive, widely-available chips -- the Motorola MC1488 line
- driver and MC1489 line receiver. The only other components
- needed are a box, connectors, a power switch, and a couple
- .01 or .1 capacitors to bypass the power supply leads. I
- used two 9V batteries for power. Power for the 1488 can be
- +-9 to +-15 volts, and the 1489 requires +5 to +10 volts.
- With a suitable DC-DC converter chip and a 78L05 or 78L08,
- you could power the circuit off of your 13.8-V supply. Or,
- if you're clever, figure out a way to trickle charge two 9V
- nicads off of your RS232 line.
-
- The pinouts are as follows:
-
- For the 1488 -
-
- Pin Connect to
-
- 1 -V
- 2 ICOM remote jack center conductor
- 3 RS232 pin 3 (RD)
- 7 Ground
- 14 +V
-
-
- For the 1489 -
-
- Pin Connect to
-
- 1 RS232 pin 2 (TD)
- 3 ICOM remote jack center conductor
- 7 Ground
- 14 +V
-
- Ground pin 7 of the RS232 line and the outer conductor of
- the ICOM remote jack, and you're on line.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 8 -
-
-
-
-
- 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 group call feature is called the "transceive" bit
- by ICOM, and may be labeled with "TRV" on the schematic.
- The others are labeled "DBn" on the 735 and R7000; look for
- something similar. The rigs are factory-set to 1200 baud,
- transceive enabled.
-
- I have specific information from ICOM on the 735
- jumpers, and for the R7000 I have a likely guess based on
- the 735 codes and the schematic.
-
- For the 735 -
-
- The jumpers use lines labeled DB0 through DB5 at con-
- nector J22 on the PL board. Lines DB0 through DB2 set the
- device address. Line DB3 is the transceive enable. The
- baud rate is controlled by DB4 and DB5 according to
-
- DB4 DB5 Baud
-
- 0 0 undefined
- 1 0 9600
- 0 1 1200
- 1 1 300
-
- The 735 is set at the factory to address 04.
-
- For the R7000 -
-
- The jumpers use lines DB0 through DB7 at connector J17
- on the logic board. The address is set by DB0 through DB4,
- DB5 is the transceive enable, and the baud rate is set by
- DB6 and DB7. The factory address is 08.
-
- If you have any other rig, you can determine its
- address by hooking it up to your computer and changing the
- frequency or modulation mode manually. You will receive a
- group call packet that contains as its 4th byte the address
- of the rig.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-