xCAT - Icom CI-V configuration
Icom CI-V uses CAT byte sequences are that specified in hexadecimal:
- Hexadecimal command codes, eg: 1A hex
- Decimal data values represented in Binary Coded Decimal format (BCD)
Hexadecimal bytes are represented in this document with the prefix 0x. ( as used C and PHP languages)
eg: 0x2A is hexadecimal 2A = 2 x16 + 10 = decimal 42.
BCD format represents two decimal digits as a single hexadecimal byte.
eg: decimal 37 is 0x37 ... easy to read (but on hex to dec conversion = 3 x16 +7 = 55 decimal)
EncoderCAT software does the decimal to BCD conversion for you.
This allows you to enter command 050014 as such in decimal
(EncoderCAT then transmits this as three bytes: 0x50 0x00 0x14 )
Icom's command system is complicated by what would appear to be historical / evolutionary features.
The range of formats includes:
- single hex command byte
- hex command byte + hex sub-command
- hex command byte + hex sub-command byte + bcd data bytes. (read only - but read/write in later rigs)
- hex command byte + two bcd data byes ( read/write). The bcd bytes referred to as sub-command
- hex command byte + three bcd data bytes. ( read/write). The bcd bytes referred to as sub-command
EncoderCAT provides a CI-V user configuration system that supports these formats.
Most read - modify -- write commands would use the last option.
Below is a development IC7000 configuration. Editing is performed directly on the grid.
This display is obtained by either Read from EncoderCAT or Load from file.
Note that hexadecimal values are shown in green.

Icom CI-V - configuration field details
Fields: subcom type, send / read, and encoder mode are option selectors. eg: subcom type as shown here. The selectors are drop down lists located in the grid.
A full explanation of these fields is on the following page.
|

|
CI-V command byte sequence is as below ( rig addr and EncoderCAT addr swap place in data from the radio);
byte 0
|
byte1
|
byte 2
|
byte 3
|
byte 4
|
0 - 3 bytes
|
0 to 5 bytes
|
end (oblig)
|
0xFE
|
0xFE
|
rig addr
|
EncoderCAT addr
|
com
|
sub com
|
data bytes
|
0xFD
|
Note that subcom, if present is specified as a single hex byte or two or three bcd bytes.
Summary of configuration data fields;
( CAT value is the numeric read from and written back to the radio. It may differ from the OLED display)
- active - Check this to make the encoder active.
- encoder - Encoder number 0 - 7. (Encoders are referenced to connections on the schematic)
- description - Descriptive text. Identifies the encoder in configuration, disc file and OLED display.
- units - Optional units for the OLED display.
- step - The increment (or decrement) to the CAT value for each encoder notch,
(eg: RF power 0 - 100w in steps of 5w)
- max value - The maximum CAT value. ( Keeps EncoderCAT in the radio's CAT range)
- min value - The minimum CAT value. ( Keeps EncoderCAT in the radio's CAT range)
- mult - Mult and div default to 1 but can be used to scale the OLED displayed value.
- div - the displayed value is: (CAT value x mult) / div (Only affects the display)
- decp - Number of decimal places. Default = 0. eg: decp = 3 changes 75 to 0.075.
- lookup - If checked, then CAT value is used as a lookup index for the encoder's lookup list.
- rig addr - The hexadecimal address of the radio (IC7000 defaults to 0x70 )
- EncoderCAT addr - An address transmitted with the command and received with responses.
- subcom type - Options: none, Single HEX , HEX + LEVEL, BCD 4 digit, BCD 6 digit.
- read / send - Options: READ & SEND, SEND ONLY,
- encoder mode - Action on the rig parameter value : no data, ON /OFF, UP /DOWN, TOGGLE.
- data digits - Number of decimal data digits sent and returned in a read - modify - write command
eg: RFpower 0-255 is 3 digits (resulting in 2 BCD bytes (eg: 215 coded as 0x02 0x15)
This is command= 0x1A subcommand = 050001 (subcom type = BCD 3 digit)
Note that 0-255 may represent 0 -100w .... so convert for display using mult=100, div=255
- com (hex) - Hexadecimal command byte (always the 5th byte)
- subcom (hex) - Hexadecimal subcommand if present
(Set to 0 for BCD 6 digit because the resulting 3 bcd digits are the subcommand)
- level data - Data byte specifically for HEX + LEVEL ... (which is Icom CAT manual terminology)
- subcom 4 or 6 bcd - Decimal value EncoderCAT converts to bcd for BCD 4 digit / BCD 6 digit.
eg; 500114 decimal ... transmitted as hex bytes 0x05 0x01 0x14
RS232 parameters: Baudrate, bits/char, stop bits and parity must match the settings on the radio.
Display panel is left unchecked if there is no OLED display.
Display contrast for SSD1306 display drivers has range 0-255.
Title is used to identify the configuration. ( 27 chars max. Lookups have a separate title.)