4.1 Command details for commands $00 to $10
This is a more detailed list of commands $00 to $10. Each command is presented with an example, it's possible responses from the rig and some remarks. Please note that not all rigs support all commands, where such restrictions apply it has been mentioned. Please refer to the user manual of that rig, it usually has a complete list of supported commands.
General notes on the tables below:
- $E0: is generally used as sender adress in examples, this is the suggested adress for a computer.
- ra: is generally used as symbolic rig adress.
- In examples, command/subcommand bytes are shaded red , data bytes are shaded blue .
$00 Set frequency
| $FE | $FE | ra | $EO | $00 | $00 | $45 | $23 | $21 | $00 | $FD |
Purpose:
Command $00 sets the frequency of a rig.
Read/Write:
Write only
Remarks:
This command is understood by practically all Icom radios. For more info about the frequency format see section 3.2
Reply:
None! Command $00 and $01 are the only ones which do not yield a response, not even OK or NG! This can be used to save transmission time.
$01 Set mode/filter
| $FE | $FE | ra | $EO | $01 | $02 | $01 | $FD |
Purpose:
Command $01 sets the mode and filter width of a rig.
Read/Write:
Write only
Remarks:
This command is understood by practically all Icom radios. For more info about the mode data and filter width format see section 3.3
Reply:
None! Command $00 and $01 are the only ones which do not yield a response, not even OK or NG! This can be used to save transmission time.
$02 Read band edges
| $FE | $FE | ra | $E0 | $02 | $FD |
Purpose:
Read the min and max frequencies of radio.
Read/Write:
Read only
Remarks:
This command is understood by practically all Icom radios. The frequency is in the usual five byte format repeated two times, separated by a dash ($2d). Please note that these frequencies are not necessarily the absolute min and max. I have seen rigs which can be manually tuned beyond these boundaries (perhaps after a modification). For more info about the frequency format see section 3.2.
Reply:
| $FE | $FE | $EO | ra | $02 | $00 | $00 | $10 | $00 | $00 | $2D | $90 | $99 | $99 | $99 | $19 | $FD |
$03 Read operating frequency
| $FE | $FE | ra | $E0 | $03 | $FD |
Purpose:
Read the current (displayed) operating frequency.
Read/Write:
Read only
Remarks:
This command is understood by practically all Icom radios. For more info about the frequency format see section 3.2.
Reply:
| $FE | $FE | $EO | ra | $03 | $00 | $30 | $31 | $14 | $00 | $FD |
$04 Read mode/filter
| $FE | $FE | ra | $E0 | $04 | $FD |
Purpose:
Read the current mode and filter.
Read/Write:
Read only
Remarks:
This command is understood by practically all Icom radios. For more info about the mode and filter data format see section 3.3.
Reply:
| $FE | $FE | $EO | ra | $04 | $03 | $02 | $FD |
$05 Set frequency
| $FE | $FE | ra | $E0 | $05 | $00 | $61 | $54 | $03 | $00 | $FD |
Purpose:
Set the frequency.
Read/Write:
Write only
Remarks:
This command is understood by practically all Icom radios. For more info about the frequency format see section 3.2.
Reply:
OK if frequency within limits accepted by the rig
NG if frequency is not acceptable.
NG if frequency is not acceptable.
$06 Set mode and filter
| $FE | $FE | ra | $E0 | $06 | $01 | $00 | $FD |
Purpose:
Set the mode and filter.
Read/Write:
Write only
Remarks:
This command is understood by practically all Icom radios. For more info about the mode and filter data format see section 3.3.
It is possible to set mode only, without filter, just by omitting the second data byte (filter value). But note that the resulting filter setting might be unexpected. For example the IC-R8500 sets filter to 'wide' if omitted (for applicable modes, e.g. AM).
It is possible to set mode only, without filter, just by omitting the second data byte (filter value). But note that the resulting filter setting might be unexpected. For example the IC-R8500 sets filter to 'wide' if omitted (for applicable modes, e.g. AM).
Reply:
OK if mode and filter are supported by the rig.
NG if data is not acceptable (e.g. narrow filter not installed).
NG if data is not acceptable (e.g. narrow filter not installed).
$07 Select VFO mode
| $FE | $FE | ra | $E0 | $07 | $FD |
Purpose:
Select VFO mode (instead of memory mode).
Read/Write:
Write only
Remarks:
If the rig supports two VFOs (A/B or Main/Sub) the previously selected VFO is activated.
Reply:
OK if successful (rig supports the concept of a VFO, not all do).
NG if command is not acceptable (i.e. rig has no VFO, only memory tuning like IC-R8500).
NG if command is not acceptable (i.e. rig has no VFO, only memory tuning like IC-R8500).
$07 $xx Select VFO A or B
| $FE | $FE | ra | $E0 | $07 | $00 | $FD |
| $FE | $FE | ra | $E0 | $07 | $01 | $FD |
Purpose:
Select VFO A or B.
Read/Write:
Write only
Remarks:
Works only if rigs supports the notion of a VFO, not all rigs do.
Reply:
OK if successful (rig supports the concept of a VFO, not all do).
NG if command is not acceptable (i.e. rig has no VFO, only memory tuning like IC-R8500).
NG if command is not acceptable (i.e. rig has no VFO, only memory tuning like IC-R8500).
$07 $A0 Equalize VFO A/B
| $FE | $FE | ra | $E0 | $07 | $A0 | $FD |
Purpose:
Equalize VFOs A and B (frequency and mode).
Read/Write:
Write only
Remarks:
Works only if rigs supports two VFOs. If rig has Main/Sub VFO see command $07 $B1.
Reply:
OK if successful
NG if not successful, e.g. if VFO has no or only one VFO.
NG if not successful, e.g. if VFO has no or only one VFO.
$07 $B0 Exchange VFO
| $FE | $FE | ra | $E0 | $07 | $B0 | $FD |
Purpose:
Exchange VFOs A/B (or Main/Sub) contents (frequency and mode).
Read/Write:
Write only
Remarks:
Works only if rigs supports two VFOs.
Reply:
OK if successful
NG if not successful, e.g. if VFO has no or only one VFO.
NG if not successful, e.g. if VFO has no or only one VFO.
$07 $B1 Equalize VFO Main/Sub
| $FE | $FE | ra | $E0 | $07 | $B1 | $FD |
Purpose:
Equalizes VFOs Main/Sub contents (frequency and mode).
Read/Write:
Write only
Remarks:
Works only if rigs supports Main/Sub VFOs.
Reply:
OK if successful
NG if not successful, e.g. if VFO has no or only one VFO.
NG if not successful, e.g. if VFO has no or only one VFO.
$07 $xx Dual Watch
| $FE | $FE | ra | $E0 | $07 | $C0 | $FD |
| $FE | $FE | ra | $E0 | $07 | $C1 | $FD |
Purpose:
Turns Dual Watch Off/On (receive on both VFO frequencies, transmit on one VFO).
Read/Write:
Write only
Remarks:
Works only if rigs supports Dual Watch.
Reply:
OK if successful
NG if not successful, e.g. Dual Watch not supported.
NG if not successful, e.g. Dual Watch not supported.
$07 $xx Select VFO Main/Sub
| $FE | $FE | ra | $E0 | $07 | $D0 | $FD |
| $FE | $FE | ra | $E0 | $07 | $D1 | $FD |
Purpose:
Select VFO Main or Sub.
Read/Write:
Write only
Remarks:
Works only if rigs supports the notion of Main/Sub VFO, not all rigs do. If rigs has VFOs A/B see command $07 $00/$01.
Reply:
OK if successful.
NG if command is not acceptable.
NG if command is not acceptable.
$07 $E0 Select Front Window
| $FE | $FE | ra | $E0 | $07 | $E0 | $01 | $FD |
Purpose:
Selects front window on IC-R7100, i.e. tuning range.
Read/Write:
Write only
Remarks:
Supported only by IC-R7100, details unknown
Reply:
OK if successful.
NG if command is not acceptable.
NG if command is not acceptable.
$08 Select Memory Mode
| $FE | $FE | ra | $E0 | $08 | $FD |
Purpose:
Selects memory mode (as opposed to VFO mode).
Read/Write:
Write only
Remarks:
Switches to previously selected memory channel.
Reply:
OK if successful.
NG if command is not acceptable.
Note: When manually switching to memory mode, the rig sends out two frames: frequency and mode/filter of selected memory (if CI-V Transceive is enabled). This does not happen when remotely switching to memory with this command, so usually you just get an OK.
NG if command is not acceptable.
Note: When manually switching to memory mode, the rig sends out two frames: frequency and mode/filter of selected memory (if CI-V Transceive is enabled). This does not happen when remotely switching to memory with this command, so usually you just get an OK.
$08 Select Memory Channel
| $FE | $FE | ra | $E0 | $08 | $00 | $99 | $FD |
Purpose:
Selects a memory channel.
Read/Write:
Write only
Remarks:
Only selects the memory channel, does not switch to memory mode. Memory numbers are coded as BCD, if the first byte is $00 it can be omitted.
Reply:
OK if successful, even if an empty memory is selected.
NG if command is not acceptable (i.e. memory number out of range).
Note: When in memory mode and when manually switching to another memory, the rig sends out two frames: frequency and mode/filter of selected memory (if CI-V Transceive is enabled). This does not happen when remotely switching to another memory with this command, so usually you just get an OK.
NG if command is not acceptable (i.e. memory number out of range).
Note: When in memory mode and when manually switching to another memory, the rig sends out two frames: frequency and mode/filter of selected memory (if CI-V Transceive is enabled). This does not happen when remotely switching to another memory with this command, so usually you just get an OK.
$08 $A0 Select Memory Bank
| $FE | $FE | ra | $E0 | $08 | $A0 | $05 | $FD |
Purpose:
Selects a Memory Bank.
Read/Write:
Write only
Remarks:
Supported only by IC-R8500 and IC-7000.
IC-R8500 valid bank numbers range from 0 to 24.
IC-7000: valid bank numbers range from 1 to 5.
IC-R8500 valid bank numbers range from 0 to 24.
IC-7000: valid bank numbers range from 1 to 5.
Reply:
OK if successful.
NG if command is not acceptable (i.e. bank number out of range).
NG if command is not acceptable (i.e. bank number out of range).
$09 Write Memory
| $FE | $FE | ra | $E0 | $09 | $FD |
Purpose:
Stores the currently displayed frequency, mode and filter setting into the currently selected memory.
Read/Write:
Write only
Remarks:
Supported by nearly all rigs. If currently selected memory is not empty, the contents is overwritten.
Reply:
OK if successful.
NG if command is not acceptable.
NG if command is not acceptable.
$0A Transfer memory to VFO
| $FE | $FE | ra | $E0 | $0A | $FD |
Purpose:
Transfers the contents of the currently selected memory to the currently selected VFO.
Read/Write:
Write only
Remarks:
This command works whether the rig is in VFO or Memory mode, but behaves diffrently on some rigs.
IC-706, IC-703: When in VFO mode prior to issuing this command, only the currently selected VFO (A or B) is transferred. When in Memory mode prior to issuing this command, and memory contains a split frequency, both VFOs A and B and split status are transferred.
IC-756: As the IC-756Pro does not store split frequencies in the memory, the behaviour is just transfer of memory contents to VFO, regardless whether the rig is in VFO or Memory mode.
Other rigs: not tested, but it can be assumed that if the rig supports split memories (e.g. IC-746Pro) the behaviour is like the IC-706, otherwise not.
IC-706, IC-703: When in VFO mode prior to issuing this command, only the currently selected VFO (A or B) is transferred. When in Memory mode prior to issuing this command, and memory contains a split frequency, both VFOs A and B and split status are transferred.
IC-756: As the IC-756Pro does not store split frequencies in the memory, the behaviour is just transfer of memory contents to VFO, regardless whether the rig is in VFO or Memory mode.
Other rigs: not tested, but it can be assumed that if the rig supports split memories (e.g. IC-746Pro) the behaviour is like the IC-706, otherwise not.
Reply:
OK if successful.
NG if command is not acceptable.
NG if command is not acceptable.
$0B Clear Memory
| $FE | $FE | ra | $E0 | $0B | $FD |
Purpose:
Clears (erases) the content of the currently selected memory.
Read/Write:
Write only
Remarks:
Some (all?) rigs have to be in memory mode for this command to work. The display is blanked after erase.
Reply:
OK if successful.
NG if command is not acceptable (rig in VFO mode).
NG if command is not acceptable (rig in VFO mode).
$0C Read Duplex Offset
| $FE | $FE | ra | $E0 | $0C | $FD |
Purpose:
Reads the default duplex offset of a rig (if supported).
Read/Write:
Read only
Remarks:
Works only on rigs with repeater settings, i.e. VHF/UHF rigs. Reply is frequency with only three BCD bytes. The value is always positive, actual offset direction is selected with DUP- or DUP+ setting and cannot be determined here. The valid range for offset varies from rig to rig.
Reply:
| $FE | $FE | $E0 | ra | $0C | $00 | $60 | $07 | $FD |
NG if command is not accepted (not supported or offset frequency invalid).
$0D Write Duplex Offset
| $FE | $FE | ra | $E0 | $0D | $00 | $06 | $00 | $FD |
Purpose:
Writes the default duplex offset of a rig (if supported).
Read/Write:
Read only
Remarks:
Works only on rigs with repeater settings, i.e. VHF/UHF rigs. Reply is frequency with only three BCD bytes. The value is always positive, actual offset direction is selected with DUP- or DUP+ setting and cannot be determined here. The valid range for offset varies from rig to rig.
Reply:
OK if successful.
NG if command is not accepted (not supported or offset out of range).
NG if command is not accepted (not supported or offset out of range).
$0E Scan functions
| $FE | $FE | ra | $E0 | $0E | $xx | $FD |
| $FE | $FE | ra | $E0 | $0E | $00 | Stop scan |
| $FE | $FE | ra | $E0 | $0E | $01 | Start programmed or memory scan |
| $FE | $FE | ra | $E0 | $0E | $02 | Start programmed scan |
| $FE | $FE | ra | $E0 | $0E | $03 | Start Δf scan |
| $FE | $FE | ra | $E0 | $0E | $12 | Start fine programmed scan |
| $FE | $FE | ra | $E0 | $0E | $13 | Start fine Δf scan |
| $FE | $FE | ra | $E0 | $0E | $22 | Start memory scan |
| $FE | $FE | ra | $E0 | $0E | $23 | Start selected number memory scan |
| $FE | $FE | ra | $E0 | $0E | $24 | Start selected mode memory scan |
| $FE | $FE | ra | $E0 | $0E | $42 | Start priority/window scan |
| $FE | $FE | ra | $E0 | $0E | $A0 | Unfix center for Δf scan |
| $FE | $FE | ra | $E0 | $0E | $AA | Fix center for Δf scan |
| $FE | $FE | ra | $E0 | $0E | $A1 | Set Δf to ±2.5kHz |
| $FE | $FE | ra | $E0 | $0E | $A2 | Set Δf to ±5kHz |
| $FE | $FE | ra | $E0 | $0E | $A3 | Set Δf to ±10kHz |
| $FE | $FE | ra | $E0 | $0E | $A4 | Set Δf to ±20kHz |
| $FE | $FE | ra | $E0 | $0E | $A5 | Set Δf to ±50kHz |
| $FE | $FE | ra | $E0 | $0E | $A6 | Set Δf to ±500kHz (IC-756Pro1/2/3) |
| $FE | $FE | ra | $E0 | $0E | $A7 | Set Δf to ±1000kHz (IC-756Pro1/2/3) |
| $FE | $FE | ra | $E0 | $0E | $B0 | Include memory for scan |
| $FE | $FE | ra | $E0 | $0E | $B1 | Exclude memory from scan |
| $FE | $FE | ra | $E0 | $0E | $B2 | Set scan number |
| $FE | $FE | ra | $E0 | $0E | $C0 | VSC off |
| $FE | $FE | ra | $E0 | $0E | $C1 | VSC on |
| $FE | $FE | ra | $E0 | $0E | $D0 | IC-R9000, IC-R8500: Scan resume indefinetely IC-910: Scan resume off |
| $FE | $FE | ra | $E0 | $0E | $D1 | IC-R9000, IC-R8500: Scan resume off |
| $FE | $FE | ra | $E0 | $0E | $D2 | IC-R9000: Scan resume 'B' |
| $FE | $FE | ra | $E0 | $0E | $D3 | IC-R9000: Scan resume 'A' IC-R8500: Scan resume delay IC-910: Scan resume on |
Purpose:
Starts/Stops and selects a whole lot of scan related functions.
Read/Write:
Write only
Remarks:
Scan capabilities varies greatly with each rig.
Reply:
OK if successful.
NG if command is not accepted (not supported or data out of range).
NG if command is not accepted (not supported or data out of range).
$0F Split and Duplex functions
| $FE | $FE | ra | $E0 | $0F | $xx | $FD |
| $FE | $FE | ra | $E0 | $0F | $00 | Cancel Split function |
| $FE | $FE | ra | $E0 | $0F | $01 | Start Split function |
| $FE | $FE | ra | $E0 | $0F | $10 | Cancel Duplex function |
| $FE | $FE | ra | $E0 | $0F | $11 | Select DUP- (duplex) function |
| $FE | $FE | ra | $E0 | $0F | $12 | Select DUP+ (duplex) function |
Purpose:
Enables/Disables split and duplex functions.
Read/Write:
Write only
Remarks:
Split function is supported by any rig with two VFOs, Duplex function is supported by most VHF/UHF rigs. Unfortunately it is not possible to read the current split or duplex status.
Reply:
OK if successful.
NG if command is not supported.
NG if command is not supported.
$10 Select Tuning Steps
| $FE | $FE | ra | $E0 | $10 | $02 | $FD |
Purpose:
Sets the tuning step.
Read/Write:
Write only
Remarks:
Not supported by all rigs. Which tuning steps are available vary with each rig (see table).
Reply:
OK if successful.
NG if command is not supported or data out of range.
NG if command is not supported or data out of range.
| Sub | IC-737 IC-R72 |
IC-R7100 | IC-R9000 | IC-756 | IC-756Pro1/2/3 IC-7800 |
IC-R-75 | IC-706MkII IC-703 |
IC-R8500 | IC-7000 |
|---|---|---|---|---|---|---|---|---|---|
| $00 | 10 Hz | 100 Hz | 10 Hz | 10 or 1 Hz | 10 or 1 Hz | 10 or 1 Hz | 10 Hz | 10 Hz | AM/FM/WFM:10Hz SSB/RTTY:TS off (10 or 1Hz) |
| $01 | 1 kHz | 1 kHz | 100 Hz | 1 kHz | 100 Hz | 100 Hz | 100 Hz | 50 Hz | 100 Hz |
| $02 | 2 kHz | 5 kHz | 1 kHz | 5 kHz | 1 kHz | 1 kHz | 1 kHz | 100 Hz | 1 kHz |
| $03 | 3 kHz | 10 kHz | 5 kHz | 9 kHz | 5 kHz | 5 kHz | 5 kHz | 1 kHz | 5 kHz |
| $04 | 4 kHz | 12.5 kHz | 9 kHz | 10 kHz | 9 kHz | 6.25 kHz | 9 kHz | 2.5 kHz | 9 kHz |
| $05 | 5 kHz | 20 kHz | 10 kHz | - | 10 kHz | 9 kHz | 10 kHz | 5 kHz | 10 kHz |
| $06 | 6 kHz | 25 kHz | 12.5 kHz | - | 12.5 kHz | 10 kHz | 12.5 kHz | 9 kHz | 12.5 kHz |
| $07 | 7 kHz | 100 kHz | 20 kHz | - | 20 kHz | 12.5 kHz | 20 kHz | 10 kHz | 20 kHz |
| $08 | 8 kHz | - | 25 kHz | - | 25 kHz | 20 kHz | 25 kHz | 12.5 kHz | 25 kHz |
| $09 | 9 kHz | - | 100 kHz | - | - | 25 kHz | 100 kHz | 20 kHz | 100 kHz |
| $10 | 10 kHz | - | - | - | - | 100 kHz | - | 25 kHz | AM/FM/WFM: 1MHz SSB/RTTY: invalid |
| $11 | - | - | - | - | - | 1 MHz | - | 100 kHz | - |
| $12 | - | - | - | - | - | - | - | 1 MHz | - |
| $13 | - | - | - | - | - | - | - | programmable | - |