I have released the first version of a chrome extension that watches for clicks on the sotawatch page and tunes a CAT rig via serial commands. It currently supports kenwood commands but others can be added. I’d be interested to hear what works and what doesn’t, and hopefully you find it useful. Happy chasing!
I’ve downloaded the extension and got it installed.
Currently trying to rejig the connection class for an Icom 9700.
It does seem to connect to the rig as it puts it straight into transmit on connection so at least I know something is working.
I’ll see if I can work out the commands and if so I’ll post the connection class here. If not I may ask for help ![]()
Knowing the serial connection seems to be doing something is a good start though.
From a quick search, icom uses a very different cat command set (binary vs ascii). I’ll take a stab at it but wouldn’t be able to test it myself ![]()
I keep picking it up and playing around usually when watching the Curling or Cricket
so not spending huge lenght of time on it but it is an interesting project so I will carry on.
I’ve got the Icom ci-v manual and have the commands worked out and can see them being sent in the console, just not getting them to work at the moment at the rig side. I think I might try a simpler approach by connecting to the rig using Putty and seeing what gets sent and received.
If I make any breakthroughs I’ll post here ![]()
Hello Andy,
Very good idea.
I have an IC-7600, an IC-7000, and an FT-857. I can help you test the extension.
73 José
I’m actually getting somewhere with the actual command structure for Cat control on the Icom.
There are a couple of issues though.
- On opening the serial port the RTS seems to be asserted high (as a default) which switches the radio into transmit and with seemingly no way to force it low again either before connection of afterwards.
This behaviour was also seen when using realterm (even setting flow control to none leaves RTS high) , however I figured a method to switch it low then select flowcontrol non which then leaves RTS low and allows the commands to be sent.
- Another issue, is that icom intended multiple pieces of hardware to be connect over one serial line. Each piece of hardware has a hex address that is part of the command sequence - for the 9700 the adress is A2 , a 7300 has 94 has its default address. I did try the universal address of 00 but had no success and wouldnt help with people with multiple pieces of hardware.
I have all the commands nailed down other than that and can control the radio through realterm, so its just a case of altering the textencoder to send the sequence in binary (I have a thought on that) and a routine to convert the frquency from/to human readable to icom readable.
Take the frequency 144.300 Mhz = 0144300000 (padded to 10 digits)
split the above into 5 pairs :- 01 44 30 00 00
Reverse the order of the pairs :- 00 00 30 44 01
These are the hex values required (no need to convert from decimal).
The revers is the case on reading the frequency - you would receive 00 00 30 44 01 froom the radio and then reverse the hex pairs to get the decimal frequency in hz.
The main command sequence is based on sending a chain of numbers to the rig.
In hex someting like:-
FE FE A2 E0 06 00 FD - set mode LSB
the FE FE beginings and the FD ending are constant in all commands
A2 is the rig adress
E0 is the computer address (can be anything but E0 seems to be the standard to not confliuct with other things)
06 - main command - this is for setting the mode
00 - mode 00 is LSB, 01 is USB, 03 - CW , 05- FM , 02- AM
The command
FE FE A2 E0 03 FD is the read frequency command and you would get back
FE FE E0 A2 03 00 00 30 44 01 FD - here you can see the return of the frequency as outlined above.
To set the frequency the command is
FE FE E0 A2 05 00 00 30 44 01 FD
While I was playing with all this , not only did GB beat Canada at curling, England also won in the cricket, so I’ve had a bit of a good morning ![]()
So whether anything comes of this, I’ve learned quite a bit myself , so thankyou for sharing.
I was wondering though, whether this concept might be adpted to use hamlib and rigctl rather than having to write a sperate serial connector for each radio.
Ian
Yes, hamlib could be the layer between this and the rig (probably should be!) I just went ultra-light since I had only one rig to deal with (and it’s really only setting mode and frequency). I naively assumed fundamental command architecture wouldn’t change much rig to rig ![]()
That said, it sounds like you are close, and if there are really only kenwood and icom cat sets, it may be easy enough to implement both.