[chirp_devel] Getting started on support for a new radio
Hey guys, I'm looking around for software to program my IC-T7H, and I came across CHIRP. By tweaking the _model line for the IC-Q7A, I got frequencies to upload, but everything else looks scrambled. I'm a Python dev myself, so I figured I'd jump in and try to contribute here. From reading the code, I understand that what I get back from the ICOM unit is a memory dump. What's the best way to go about reading through the dump and figuring out where things go? Is there a flag I can use to stash it in a file and hit it with a hex editor?
-Eric AG6IE
I got the chirp.py command figured out and I'm dumping memory, which gets me pretty far. For upload to the radio, though, I'm stuck.
When downloading, the "Last addr" is 03b0. If I upload the range from 0x0000 to 0x03B0, the progress indicator on the radio gets stuck at half way and it never leaves "CL IN". I tried a binary search on the size, and it seems to want somewhere around 0x600 to get to full on the progress bar, but right around there it will sometimes CL ERR and sometimes get stuck.
Anybody with experience on ICOMs have some idea what's going on here?
On Sat, Jul 14, 2012 at 8:48 PM, Eric Allen ericpallen@gmail.com wrote:
Hey guys, I'm looking around for software to program my IC-T7H, and I came across CHIRP. By tweaking the _model line for the IC-Q7A, I got frequencies to upload, but everything else looks scrambled. I'm a Python dev myself, so I figured I'd jump in and try to contribute here. From reading the code, I understand that what I get back from the ICOM unit is a memory dump. What's the best way to go about reading through the dump and figuring out where things go? Is there a flag I can use to stash it in a file and hit it with a hex editor?
-Eric AG6IE
Looks like it may be a timing issue. If I sleep for a few seconds between sending the CMD_CLONE_END packet and looking for a confirmation packet, the progress indicator on the radio gets to 100% and the display goes to "CL END". I still get an error on the console, though:
chirp.errors.RadioError: Failed to communicate with the radio: Did not get clone result from radio.
To get the radio out of "CL END", I have to boot it.
On Sat, Jul 14, 2012 at 10:39 PM, Eric Allen ericpallen@gmail.com wrote:
I got the chirp.py command figured out and I'm dumping memory, which gets me pretty far. For upload to the radio, though, I'm stuck.
When downloading, the "Last addr" is 03b0. If I upload the range from 0x0000 to 0x03B0, the progress indicator on the radio gets stuck at half way and it never leaves "CL IN". I tried a binary search on the size, and it seems to want somewhere around 0x600 to get to full on the progress bar, but right around there it will sometimes CL ERR and sometimes get stuck.
Anybody with experience on ICOMs have some idea what's going on here?
On Sat, Jul 14, 2012 at 8:48 PM, Eric Allen ericpallen@gmail.com wrote:
Hey guys, I'm looking around for software to program my IC-T7H, and I came across CHIRP. By tweaking the _model line for the IC-Q7A, I got frequencies to upload, but everything else looks scrambled. I'm a Python dev myself, so I figured I'd jump in and try to contribute here. From reading the code, I understand that what I get back from the ICOM unit is a memory dump. What's the best way to go about reading through the dump and figuring out where things go? Is there a flag I can use to stash it in a file and hit it with a hex editor?
-Eric AG6IE
Looks like it may be a timing issue. If I sleep for a few seconds between sending the CMD_CLONE_END packet and looking for a confirmation packet, the progress indicator on the radio gets to 100% and the display goes to "CL END". I still get an error on the console, though:
chirp.errors.RadioError: Failed to communicate with the radio: Did not get clone result from radio.
This isn't a problem. I never finished this bit because it seemed that some of the radios behaved slightly differently in this regard.
Are you sending the appropriate end frame? Each model has a unique one for some reason, so you just have to see what it sends on clone out and replicate it.
To get the radio out of "CL END", I have to boot it.
Right, that's how all the icoms work.
I'm suspicious this need for a sleep is the function of my USB-serial converter (PL2303) buffering more than CHIRP expects.
If I add a sleep(4) to icf.py after send_clone_frame, then I get to CL END and everything is good. Will submit the t7h file on the ticket shortly!
On Mon, Jul 16, 2012 at 8:57 AM, Dan Smith dsmith@danplanet.com wrote:
Looks like it may be a timing issue. If I sleep for a few seconds between sending the CMD_CLONE_END packet and looking for a confirmation packet, the progress indicator on the radio gets to 100% and the display goes to "CL END". I still get an error on the console, though:
chirp.errors.RadioError: Failed to communicate with the radio: Did not get clone result from radio.
This isn't a problem. I never finished this bit because it seemed that some of the radios behaved slightly differently in this regard.
Are you sending the appropriate end frame? Each model has a unique one for some reason, so you just have to see what it sends on clone out and replicate it.
To get the radio out of "CL END", I have to boot it.
Right, that's how all the icoms work.
-- Dan Smith www.danplanet.com KK7DS
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel
Can't help you with Icom radio but I'm happy to "welcome you on board" :)
73 de IZ3GME Marco
participants (3)
-
Dan Smith
-
Eric Allen
-
Marco Filippi IZ3GME