Hello,
I have an Icom IC-R8600 and worked over the weekend to get chirp to work with it. I have done some python and communications programming in the past. I was pretty successful given that I had to start from ground zero. I used the IC-7000 as a template and derived a couple of classes. I got the basic memory read and write in live mode to work. The receiver can do variable tuning steps and several modes not covered by CHIRP.
The receiver has groups which appear like banks. The channels go
from 00 to 99 so it is possible to treat the receiver like it has
memory channels 0000 to 9999 plus the other special channels. I
see "special channels" is a selection and wonder if the Band Edge
is consider special. I also noticed a Band Edge location was used
as a template for the memory write. It seems like on the IC-7000
that each bank has a set of Band Edge memories above channel 99.
The IC-R8600 Band Edge locations are group 102, so the template
had to use memory 10202 instead of 102. Maybe that is a clue that
the receiver does not have the typical Icom Banks.
I want to go beyond basic settings and have run into a limitation. CHIRP seems to want a fixed structure for memory data. Icom decided to return different length data with the mode dependent data at the end, like FM tone data. I can see why they did it as one fixed length string with everything would be long. It is possible to set memories without the added mode data, but you can not set memories for non-FM modes if the FM tone data is at the end. The only method I have come up with is to add dummy tone data when reading non-FM memory locations and truncating the tone data when writing non-FM memory locations.
The receiver also has a clone mode and I wonder if it would be
easier to try working with it instead. The receiver also has a
settings file that can be read and written to the SD Card. The
settings file looks similar to the clone mode output. There are
two versions and receivers with later firmware can read both. The
clone data format looks similar to what the existing Icom clone
code can decode. When I tried auto-detect with the radio set to
9600, the program returned unknown format 38180001. 3818 is likely
the engineering code number for the receiver and shows up in
multiple places, like RX-3818. The 0001
appears to be a version number.
73 Eric