Using RS-232 with Icom
Radios
Interface Unit: CT-17
(converts 5V TTL to RS-232 polar) Note: Using the
CT-17, up to 4 CI-V radios can be connected to one CT-17 at the same time and
controlled independently.
Standard Connections Used:
TXD, RXD, GND
Flow Control: None (for the
equipment featured here); Carrier Sense Multiple Access with Collision
Detection (CSMA/CD)
Type of RS-232 Command Set:
Binary; variable length with binary delimiters and specific address
byte value for each radio;
Data Parameters: 1200 bps
(standard, but can be increased with some radios), 1 start, 8 data + 1 stop
bit
Overview of RS-232 Command
Set
The RS-232 command set used by the Icom
range of radios is not ASCII text, so it is not possible to use a text-based
terminal to type commands directly into the radio. Instead, variable length
binary command format is used of the following format:
Generic
format of Icom RS-232 commands
The data bytes must be
sent from left to right (the preamble codes sent first).
A selection of
default address values by model
Consult your radio's
manual if you do not see the model number of your radio listed
here.
| ra |
Model |
|
ra |
Model |
| 04 |
IC-735 |
|
22 |
IC-471 |
| 08 |
IC-R7000 |
|
24 |
IC-1271 |
| 10 |
IC-275 |
|
26 |
IC-781 |
| 12 |
IC-375 |
|
28 |
IC-725 |
| 14 |
IC-475 |
|
2A |
IC-R9000 |
| 16 |
IC-575 |
|
2C |
IC-765 |
| 18 |
IC-1275 |
|
2E |
IC-970 |
| 1A |
IC-R71 (CI-V) |
|
30 |
IC-726 |
| 1C |
IC-751 (CI-V) |
|
32 |
IC-R72 |
| 1E |
IC-761 |
|
34 |
IC-R7100 |
| 20 |
IC-271 |
|
E0 |
Controller |
Sending data to the radio (via the
controller)
Byte
value |
Function |
Comment |
| FE |
Preamble code |
FE must be sent twice for
data |
| ra |
Receive Address |
Specifies the target radio's
address |
| E0 |
Transmit Address |
Specifies the controllers adress
(E0 is the standard address for the controller) |
| cn |
Command Number |
Specifies a command
number |
| sc |
Sub-command Number |
Specifies a sub command number
(used in association with cn) |
| dt |
Data Area |
Optional data area |
| FD |
End of message code |
FD must be sent once to terminate
the command |
Receiving data from the radio (via the
controller)
Byte
value |
Function |
Comment |
| FE |
Preamble code |
FE must be sent twice for
data |
| E0 |
Transmit Address |
Specifies the controllers adress
(E0 is the standard address for the controller) |
| ra |
Receive Address |
Specifies the target radio's
address |
| cn |
Command Number |
Specifies a command
number |
| sc |
Sub-command Number |
Specifies a sub command number
(used in association with cn) |
| dt |
Data Area |
Optional data area |
| FD |
End of message code |
FD must be sent once to terminate
the command |
Data sent from the radio has the position of
the address bytes reversed when compared with data sent to the radio. This
makes logocal sense.
In addition to these formats, the following
acknowledgement messages may also be sent from the radio in response to
commands
OK message
Command acknowledgment
(FB=OK)
NG message
Command was received but could not be
executed (usually owing to an error or incorrect specification)
(FA=NG)
Eample conditions that can generate an NG
message:
- Command 00 or 01 has been
received
- Undefined command or subcommand is
received
- Specified frequency or mode is not
supported by the radio
- The radio is not equiped with the
specified function
- The radio is not equiped with the
specified memory function
- A blank channel has been specified for
command message 0A
Frequency data format
(BCD)
Frequency data must be formatted in binary
coded decimal (BCD) format. Five bytes are used to represent the frequency
value.
For Example: If the
operating frequency is 145.123450 MHz, the following data bytes represent this
frequency
|
|
= |
| 50 |
34 |
12 |
45 |
01 |
| 1's Hz |
1's kHz |
10's kHz |
1's MHz |
100's MHz |
|
Note: not all radios support
tuning resolutions down to 1's Hz - consult your radio's
manual
Mode values
| Mode |
Mode byte
value |
| LSB |
00 |
| USB |
01 |
| AM |
02 |
| CW |
03 |
| FSK |
04 |
| FM |
05 |
| Wide FM |
06 |
| SSB (R-7000 only) |
0500 |
Common Commands
The following commands are
commonly used
| cn |
sc |
Operation |
Comment |
| 00 |
- |
Transfers operating frequency
data |
Transfer the operating frequency
among several radios |
| 01 |
|
Transfers operating mode
data |
md = mode number
pd = passband data |
| 02 |
- |
Reads upper/lower frequency
data |
|
| 03 |
- |
Reads operating frequency
data |
Frequency is in BCD format (5
bytes) |
| 04 |
- |
Reads operating mode data |
See mode table for valid
values |
| 05 |
- |
Writes operating frequency
data |
Frequency is in BCD format (5
bytes) |
| 06 |
|
Writes operating mode data |
md = mode number
pd = passband data |
| 07 |
| - |
Selects VFO Mode |
| 00 |
Selects VFO A |
| 01 |
Selects VFO B |
| A0 |
VFO A = VFO B |
| B0 |
VFO A <-> VFO B |
| C0 |
Turns off dual watch |
| C1 |
Turns on dual watch |
| D0 |
Accesses main band |
| D1 |
Accesses SUB band |
|
|
Selects the front
window |
|
VFO operations |
wn = window no. |
| 08 |
- |
Selects memory mode |
|
| 08 |
mc |
Selects memory channel |
mc = channel number (in
BCD) |
| 09 |
- |
Memory write |
Write displayed contents into
selected memory channel |
| 0A |
- |
Memory channel -> VFO |
Copy the selected memory contents
into a VFO |
| 0B |
- |
Memory clear |
Clears selected memory channel
contents |
| 0C |
- |
Reads offset frequency |
Frequency is in BCD format (3
bytes) |
| 0D |
- |
Writes offset frequency |
Frequency is in BCD format (3
bytes) |
| 0E |
| 00 |
Stops scan or window
scan |
| 01 |
Start programmed scan or
memory scan |
| 02 |
Start programmed scan |
| 03 |
Delta-f scan starts |
| 04 |
Start auto memory-write
scan |
| 12 |
Start fine programed
scan |
| 13 |
Start fine delta-f
scan |
| 22 |
Start memory scan |
| 23 |
Start selected memory
scan |
| 24 |
Start selected mode
scan |
| 42 |
Start priority or window
scan |
| A0 |
Unfix centre frequency for
delta-f scan |
| AA |
Fix centre frequency for
delta-f scan |
| A1 |
Sets delta-f = +/-
2.5kHz |
| A2 |
Sets delta-f = +/-
5kHz |
| A3 |
Sets delta-f = +/-
10kHz |
| A4 |
Sets delta-f = +/-
20kHz |
| A5 |
Sets delta-f = +/-
50kHz |
| B0 |
Set the selected memory
number as non-effective |
| B1 |
Set the selected memory
number as effective |
| B2 |
Set the scan number for the
selected memory channel |
| C0 |
Turns off VSC |
| C2 |
Turns on VSC |
| D0 |
Select scan resume
(infinite) |
| D1 |
Select scan resume
(off) |
| D2 |
Select scan resume
(condition A) |
| D3 |
Selects scan resume
(condition B) |
|
Scan operations |
Start or stop a scan
function |
| 0F |
| 00 |
Cancel split frequency
operation |
| 01 |
Select split frequency
operation |
| 10 |
Cancel duplex
operation |
| 11 |
Select -ve duplex
operation |
| 12 |
Select +ve duplex
operation |
|
Split frequency and duplex
operations |
|
| 10 |
| 00 |
Select minimum tuning
step |
| 01 |
Select tuning step 1 |
| 02 |
Select tuning step 2 |
| 03 |
Select tuning step 3 |
| 04 |
Select tuning step 4 |
| 05 |
Select tuning step 5 |
| 06 |
Select tuning step 6 |
| 07 |
Select tuning step 7 |
| 08 |
Select tuning step 8 |
| 09 |
Select tuning step 9 |
| 10 |
Select tuning step 10 |
|
Step operations |
Select a tuning step (TS) |
| 11 |
| 00 |
Attenuator off |
| 10 |
Select 10dB
attenuator |
| 20 |
Select 20dB
attenuator |
| 30 |
Select 30dB
attenuator |
|
Attenuator operations |
Select an attenuator level |
| 12 |
| 00 |
Turn off antenna
input |
| 01 |
Turn on antenna input |
|
Antenna operation |
Turns the antenna switch
on/off |
| 13 |
| 00 |
Announce all data |
| 01 |
Announce frequency
data |
|
Voice unit operation |
Requires optiona voice unit |
| 14 |
|
Selects the AF, RF gain and
squelch |
| sc |
Operation |
| 01 |
Select AF gain |
| 02 |
Select RF gain |
| 03 |
Select squelch |
gd is a BCD
value |
| 15 |
| 01 |
Reads squelch status |
| 02 |
Read signal level |
|
S-meter and squelch reading |
Value returned is in BCD
format |
Specific details of the
commands listed here are in the manual for your radio (if a recent model),
otherwise the commands are described in the Icom publication: Icom
Communication Interface -V Reference Manual, which is available from Icom.
You must consult the relevant manual for your radio for the extra detail needed
to implement your software.
Here are some comments on the
IC-756 from:
> From:
Ekkehard Plicht <100315.3351@compuserve.com> > To: Simon Collings
<simon.collings@cableinet.co.uk> > Subject: ICOM CI-V on IC756
> Date: 24 December 1997 22:33 > > Hello Simon, >
> recently i found your webpage when looking for the CI-V protocol.
Thanks > for providing this information on the web. I used to have the
written doc > from ICOM but borrowed it to someone and never got it back
:-( > > To provide you with more information on this topic here
is something from > my new IC-756 rig: > > Default adress
is $50 > > Command $12 is extended. To understand this: the
IC756 has two anntenna > connectors for transmit/receive and a third
(aux) one for receive only. You > can select four combinations
> TX/RX on ant1 (cmd $12 $00; $12 $00 $00 is also valid) > TX/RX on
ant2 (cmd $12 $01; $12 $01 $00 is also valid) > TX on ant1, RX on aux-rx
(cmd $12 $00 $01) > TX on ant2, RX on aux-rx (cmd $12 $01 $01) >
> Cmds $11, $14 and 15$ don't work on the IC756. > > I
have written some software for the ICOM rigs, just for the fun of it. In
> my opinion the CI-V protocol is the best there is, my othere
experiences > are with the AR3030A and a Kenwood rig. > >
That's all for now, thanks again and have a great holiday. > >
73, Ekkehard, DF4OR > :
|