Lets TALK CI-V, an INTRO!


VE2DX
 

Ok, ICOMs CI-V it a very usefull and very simple protocol.

In this posting we will look at how we can figure out if the radio is in RX or TX and switch it to RX or TX.

First the CI-V protocol is a handshake protocol, someone must initiate the conversation and then who ever he is talking to will respond (sorry about the BAD english sometimes I am a frenchy and from the GREAT WHITE NORTH :P ) if available.

The structure of a CI-V exchange is simple enough;

Header (Two FE)
address of the destination
address of the sender
command
sub command
Data (optional)
Trailer

So if I want to know what is the radio doing (RX or TX) I would use the 1C command (see table below) and send;

FE FE (HEADER) 94 (Address for a 7300) E9 (address I chose for my applications also known as Controller) 1C (Command to reques/control tranceiver, tuner and other functions (see table attached)) 00 (Subcommand for RX/TX status/Control) FD (Trailer, notice NO DATA! very important)

Thus;

FE FE 94 E9 1C 00 FD

Note that E9 is just an address I use to make it easier for locate my stuff, E0 is more common, this can be anything that is not aready assigned on your CI-V buss.

the 7300 will respond like this;

FE FE E9 94 1C 00 00 FD

Note that now DATA is present aka our resonse; a 00 means (see table) I am in Receive, 01 TX.  Also you noticed that the addresses are reversed, E9 94 thus 94 (7300) is responding to E9 (application).

Ok what if I want to remotly put the radio in TX.

you remember the DATA wasnt used in my command above, thats because I was doing a query, well what if I use it! if I were to put a 01 in there then I would be requesting the radio to transmit, thus;

FE FE 94 E9 1C 00 01 FD

so now instead of asking a status I am sending a command!

The response changes when you do this, the radio will now ACKNOLEDGE (ACK or ICOMs FB I like to remember this as FINE BUSINESS!) or return a NEGATIVE ACKNOLEDGE (NACK or FA) to the command.

in the second table below you see the format of these.

so if I send a GO TO TX command

FE FE 94 E9 1C 00 01 FD

if it does it will respond with ACK (FB) ;

FE FE E9 94 FB FD 

But if for ANY reason it can not it will respond with a NACK (FA);

FE FE E9 94 FA FD 

That was an INTRO,  I will try to go into more advance commands later.

Hope this helped :-P

Image preview
1C command set
Image preview
ICOMs CI-V handshake protocol,

73

Richard VE2DX
--
Only the Best ICOM, ERC and HRD 
https://groups.io/g/CIV
Follow my projects on www.facebook.com/VE2DX/
73
 
Richard VE2DX, Jesus Island, PQ-014


VE2DX
 

Yes, my understanding is that it is 'See-EYE-FIVE' one of the variations of the definition is Computer Interface release 5, there are others even ICOM changed this over the years.

Hope this helps 😋

73

Richard VE2DX


From: Michael WA7SKG <wa7skg@...>
Sent: April 23, 2020 21:47
To: CIV@groups.io <CIV@groups.io>
Subject: Re: [CIV] Lets TALK CI-V, an INTRO!
 
Trivia note:
I had always pronounced CI-V as "See-Eye-Vee", as did everybody I've
ever heard discuss it. I had occasion to talk to an Icom guy a while
back and he politely informed me it was properly pronounced "See-Eye-FIVE".

One of those FWIW things.

Michael WA7SKG


VE2DX wrote on 4/23/20 2:24 PM:
> Ok,*ICOMs CI-V* it a very usefull and very simple protocol.
>
> In this posting we will look at how we can figure out if the radio is in
> *RX or TX* and switch it to RX or TX.
>
> First the CI-V protocol is a *handshake* protocol, someone must initiate
> the conversation and then who ever he is talking to will respond (sorry
> about the BAD english sometimes I am a frenchy and from the GREAT WHITE
> NORTH :P ) if available.
>
> The structure of a CI-V exchange is simple enough;
>
> *Header (Two FE)*
> *address of the destination*
> *address of the sender*
> *command*
> *sub command*
> *Data (optional)*
> *Trailer*
>
> So if I want to know what is the radio doing (RX or TX) I would use the
> 1C command (see table below) and send;
>
> *FE FE* (HEADER) *94* (Address for a 7300) *E9* (address I chose for my
> applications also known as Controller) *1C* (Command to reques/control
> tranceiver, tuner and other functions (see table attached)) 00
> (Subcommand for RX/TX status/Control) *FD* (Trailer, notice NO DATA!
> very important)
>
> Thus;
>
> *FE FE 94 E9 1C 00 FD*
>
> Note that *E9* is just an address I use to make it easier for locate my
> stuff, *E0* is more common, this can be anything that is not aready
> assigned on your CI-V buss.
>
> the 7300 will respond like this;
>
> *FE FE E9 94 1C 00 00 FD*
>
> Note that now *DATA* is present aka our resonse; a *00* means (see
> table) I am in *Receive*, *01 TX*.  Also you noticed that the addresses
> are reversed, E9 94 thus 94 (7300) is responding to E9 (application).
>
> *Ok what if I want to remotly put the radio in TX.*
>
> you remember the *DATA* wasnt used in my command above, thats because I
> was doing a query, well what if I use it! if I were to put a *01* in
> there then I would be requesting the radio to transmit, thus;
>
> *FE FE 94 E9 1C 00 01 FD*
>
> so now instead of asking a status I am sending a command!
>
> The response changes when you do this, the radio will now ACKNOLEDGE
> (*ACK* or ICOMs *FB* I like to remember this as FINE BUSINESS!) or
> return a NEGATIVE ACKNOLEDGE (*NACK or FA)* to the command.
>
> in the second table below you see the format of these.
>
> so if I send a GO TO TX command
>
> *FE FE 94 E9 1C 00 01 FD*
>
> if it does it will respond with ACK (FB) ;
>
> FE FE E9 94*FB* FD
>
> But if for ANY reason it can not it will respond with a *NACK (FA)*;
>
> FE FE E9 94 *FA* FD
>
> That was an *INTRO*,  I will try to go into more advance commands later.
>
> *Hope this helped :-P*
>
> Image preview
> 1C command set
> Image preview
> ICOMs CI-V handshake protocol,
>
> *73*
>
> *Richard VE2DX*
> --
> Only the Best ICOM, ERC and HRD
> https://groups.io/g/CIV
> Follow my projects on www.facebook.com/VE2DX/
> <http://www.facebook.com/VE2DX/>
> 73
> Richard VE2DX, Jesus Island, PQ-014
> _._,_._,_

--
Only the Best ICOM, ERC and HRD 
https://groups.io/g/CIV
Follow my projects on www.facebook.com/VE2DX/
73
 
Richard VE2DX, Jesus Island, PQ-014


Michael WA7SKG
 

Trivia note:
I had always pronounced CI-V as "See-Eye-Vee", as did everybody I've ever heard discuss it. I had occasion to talk to an Icom guy a while back and he politely informed me it was properly pronounced "See-Eye-FIVE".

One of those FWIW things.

Michael WA7SKG


VE2DX wrote on 4/23/20 2:24 PM:

Ok,*ICOMs CI-V* it a very usefull and very simple protocol.
In this posting we will look at how we can figure out if the radio is in *RX or TX* and switch it to RX or TX.
First the CI-V protocol is a *handshake* protocol, someone must initiate the conversation and then who ever he is talking to will respond (sorry about the BAD english sometimes I am a frenchy and from the GREAT WHITE NORTH :P ) if available.
The structure of a CI-V exchange is simple enough;
*Header (Two FE)*
*address of the destination*
*address of the sender*
*command*
*sub command*
*Data (optional)*
*Trailer*
So if I want to know what is the radio doing (RX or TX) I would use the 1C command (see table below) and send;
*FE FE* (HEADER) *94* (Address for a 7300) *E9* (address I chose for my applications also known as Controller) *1C* (Command to reques/control tranceiver, tuner and other functions (see table attached)) 00 (Subcommand for RX/TX status/Control) *FD* (Trailer, notice NO DATA! very important)
Thus;
*FE FE 94 E9 1C 00 FD*
Note that *E9* is just an address I use to make it easier for locate my stuff, *E0* is more common, this can be anything that is not aready assigned on your CI-V buss.
the 7300 will respond like this;
*FE FE E9 94 1C 00 00 FD*
Note that now *DATA* is present aka our resonse; a *00* means (see table) I am in *Receive*, *01 TX*.  Also you noticed that the addresses are reversed, E9 94 thus 94 (7300) is responding to E9 (application).
*Ok what if I want to remotly put the radio in TX.*
you remember the *DATA* wasnt used in my command above, thats because I was doing a query, well what if I use it! if I were to put a *01* in there then I would be requesting the radio to transmit, thus;
*FE FE 94 E9 1C 00 01 FD*
so now instead of asking a status I am sending a command!
The response changes when you do this, the radio will now ACKNOLEDGE (*ACK* or ICOMs *FB* I like to remember this as FINE BUSINESS!) or return a NEGATIVE ACKNOLEDGE (*NACK or FA)* to the command.
in the second table below you see the format of these.
so if I send a GO TO TX command
*FE FE 94 E9 1C 00 01 FD*
if it does it will respond with ACK (FB) ;
FE FE E9 94*FB* FD
But if for ANY reason it can not it will respond with a *NACK (FA)*;
FE FE E9 94 *FA* FD
That was an *INTRO*,  I will try to go into more advance commands later.
*Hope this helped :-P*
Image preview
1C command set
Image preview
ICOMs CI-V handshake protocol,
*73*
*Richard VE2DX*
--
Only the Best ICOM, ERC and HRD
https://groups.io/g/CIV
Follow my projects on www.facebook.com/VE2DX/ <http://www.facebook.com/VE2DX/>
73
Richard VE2DX, Jesus Island, PQ-014
_._,_._,_