I have modified the code to allow Chirp to read and programme the IC-80AD radio.
Below are three unix style diffs for the files mainapp.py, directory.py and convert_ICF.py
The first line in each case is the new code, and the second line the old code ( I had my diff programme working backwards it appears!)
mainapp.py
===========
37c37
< from chirp import icf, ic9x_icf, ic80ad
---
> from chirp import icf, ic9x_icf
==============
directory.py
==============
19c19
< from chirp import id800, id880, ic2820, ic2200, ic9x, icx8x, ic2100, ic2720, ic80ad
---
> from chirp import id800, id880, ic2820, ic2200, ic9x, icx8x, ic2100, ic2720
45d44
< "ic80ad" : ic80ad.IC80ADRadio,
=============
convert_ICF.py
=============
2c2
< from chirp import id800, ic2820, ic2200, icx8x, id880, id80ad
---
> from chirp import id800, ic2820, ic2200, icx8x, id880
13d12
< ic80ad.IC80ADRadio
=============
It can be seen that the additions were trivial in these files, just adding the ic80ad.
Then a new file ic80ad.py is required (based on the essentially identical ID880)
The diffs between the new ic80ad.py and the ID880.py are
ic80ad.py
============
132c132
< class IC80ADRadio(icf.IcomCloneModeRadio, chirp_common.IcomDstarSupport):
---
> class ID880Radio(icf.IcomCloneModeRadio, chirp_common.IcomDstarSupport):
134c134
< MODEL = "IC-80AD"
---
> MODEL = "ID-880H"
136c136
< _model = "\x31\x55\x00\x01"
---
> _model = "\x31\x67\x00\x01"
370,371c370,371
< class IC80ADRadio(IC80ADRadio):
< MODEL = "IC80AD"
---
> class ID80Radio(ID880Radio):
> MODEL = "ID-880H"
=============
again quite trivial changes, the main one being the radio ID. The memory format fortunately being identical between these two radios.
I have not yet thoroughly tested this, but I have downloaded into Chirp the memory data from the radio, edited it, sent it back to the radio, and then reviewed with the Icom CS80 programme, and all seemed fine. Additional testing is of course required.
What I have noted is that the IC-80AD radio must be set for 9800 baud in the SET>func>speed menu item. If it is at 4800, as a GPS connected to the same port would use, Chirp does not yet recognise the radio and errors. It should be relatively easy to try both speeds in a future version.
Further, when downloading or uploading back into the radio the data rate remains at 9600 and does not speed up as it appears it should, and as does happen with the Icom programme. This means that the data transfer takes several minutes with Chirp. Perhaps I missed something in the code, as I did not take a great deal of time looking.
The code for the European version of the radio should be almost identical, or will be identical depending on whether the radio ID is different between the EU and NA radios.
The ID as can be seen in the diff above for the NA version, the IC-80Ad is 31 55 00 01
I found it useful to use the trial version of "device monitoring studio" from HHDsoftware (it only runs for 15 days in the trial mode), to examine all of the USB transaction data, as I was using a USB-serial interface cable.
All was tested on a Windows 7 64 bit computer, with the native python .py code and not compiled to byte code, as python will work like this, and makes for easier testing.
Feedback welcome
cheers
Andrew Hart C.Eng. MRINA
amateur radio calls G8VTV / VE3NVK locator FN25bh
The content of this message is NOT intended for the public, and is a private communication.