[chirp_devel] Icom IC-80AD - diffs and additional file
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.
Below are three unix style diffs for the files mainapp.py, directory.py and convert_ICF.py
Typically patches are submitted in "unified format", which is generated by running "diff -u <orig> <new>". This makes them much easier to read and apply.
< class IC80ADRadio(icf.IcomCloneModeRadio, chirp_common.IcomDstarSupport):
class ID880Radio(icf.IcomCloneModeRadio, chirp_common.IcomDstarSupport):
I think I've already got a suitable class (and model ID) at the bottom of id880.py, don't I? Looks like I never added it to the directory, which would explain why it doesn't work yet.
I think that the following diff should suffice, right?
diff -r 2abd55d12a72 chirp/directory.py --- a/chirp/directory.py Mon Apr 25 16:27:03 2011 -0700 +++ b/chirp/directory.py Mon Apr 25 17:58:51 2011 -0700 @@ -36,6 +36,7 @@ "ic9x:B" : ic9x.IC9xRadioB, "id800" : id800.ID800v2Radio, "id880" : id880.ID880Radio, + "id80" : id880.ID80Radio, "icx8x" : icx8x.ICx8xRadio, "idrpx000v" : idrp.IDRPx000V, "icq7" : icq7.ICQ7Radio,
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.
Nope, I don't have the speed change implemented for anything other than the IC91/92AD (as it's required because they can be in either mode without notice).
If the above diff works for you, I'll add it to the tree and we can claim ID80 support. Thanks!
Dan
I am working in Windows which has no native diff program, I had to use "Exam Diff" and used the unix style output from it, which is why it is not your expected format.
I had a very quick look at your code, and wanted a quick and easy implementation for myself to use; certainly mods to the ID880 could make it work in a nicer programmatic manner. When I get the time I will try your diff.
I am sure there are lots of ic80ad owners that would appreciate their radio being supported.
Andrew Hart C.Eng. MRINA amateur radio calls G8VTV / VE3NVK locator FN25bh
28, Chimo Drive, Kanata, ON, K2L 1A5 Canada
tel: 613 592 5043
The content of this message is *NOT* intended for the public, and is a private communication.
On 25 April 2011 21:01, Dan Smith dsmith@danplanet.com wrote:
Below are three unix style diffs for the files mainapp.py, directory.py and convert_ICF.py
Typically patches are submitted in "unified format", which is generated by running "diff -u <orig> <new>". This makes them much easier to read and apply.
< class IC80ADRadio(icf.IcomCloneModeRadio,
chirp_common.IcomDstarSupport):
class ID880Radio(icf.IcomCloneModeRadio,
chirp_common.IcomDstarSupport):
I think I've already got a suitable class (and model ID) at the bottom of id880.py, don't I? Looks like I never added it to the directory, which would explain why it doesn't work yet.
I think that the following diff should suffice, right?
diff -r 2abd55d12a72 chirp/directory.py --- a/chirp/directory.py Mon Apr 25 16:27:03 2011 -0700 +++ b/chirp/directory.py Mon Apr 25 17:58:51 2011 -0700 @@ -36,6 +36,7 @@ "ic9x:B" : ic9x.IC9xRadioB, "id800" : id800.ID800v2Radio, "id880" : id880.ID880Radio,
- "id80" : id880.ID80Radio, "icx8x" : icx8x.ICx8xRadio, "idrpx000v" : idrp.IDRPx000V, "icq7" : icq7.ICQ7Radio,
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.
Nope, I don't have the speed change implemented for anything other than the IC91/92AD (as it's required because they can be in either mode without notice).
If the above diff works for you, I'll add it to the tree and we can claim ID80 support. Thanks!
-- Dan Smith www.danplanet.com KK7DS _______________________________________________ chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel
Dan;
I tried your diffs on my radio.
It reads the radio, but when sending back it is identifying the radio as the ID880 in the comm pane, so I did not continue as I don't want to possibly screw up the radio, and as I am not sure what the radio would do if the programme is sending an ID for the 880. Probably it will do nothing, but?
This was all done in Windows 7 74 bit and inserting the edited file directory.py file in place of the original byte file in the library.zip file.
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.
On 25 April 2011 21:01, Dan Smith dsmith@danplanet.com wrote:
Below are three unix style diffs for the files mainapp.py, directory.py and convert_ICF.py
Typically patches are submitted in "unified format", which is generated by running "diff -u <orig> <new>". This makes them much easier to read and apply.
< class IC80ADRadio(icf.IcomCloneModeRadio,
chirp_common.IcomDstarSupport):
class ID880Radio(icf.IcomCloneModeRadio,
chirp_common.IcomDstarSupport):
I think I've already got a suitable class (and model ID) at the bottom of id880.py, don't I? Looks like I never added it to the directory, which would explain why it doesn't work yet.
I think that the following diff should suffice, right?
diff -r 2abd55d12a72 chirp/directory.py --- a/chirp/directory.py Mon Apr 25 16:27:03 2011 -0700 +++ b/chirp/directory.py Mon Apr 25 17:58:51 2011 -0700 @@ -36,6 +36,7 @@ "ic9x:B" : ic9x.IC9xRadioB, "id800" : id800.ID800v2Radio, "id880" : id880.ID880Radio,
- "id80" : id880.ID80Radio, "icx8x" : icx8x.ICx8xRadio, "idrpx000v" : idrp.IDRPx000V, "icq7" : icq7.ICQ7Radio,
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.
Nope, I don't have the speed change implemented for anything other than the IC91/92AD (as it's required because they can be in either mode without notice).
If the above diff works for you, I'll add it to the tree and we can claim ID80 support. Thanks!
-- Dan Smith www.danplanet.com KK7DS _______________________________________________ chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel
participants (2)
-
Andrew Hart
-
Dan Smith