Hi Glancing, the author of the driver TK-760G.py at the keyboard here.

The Kenwoods are prone to build in families, like the TK-760 that covers all the models like this:

TK-760/762/768/860/862/868 an others (this is just an example)

An even so... you can have a TK-760 in two or more variants, for example in the TK-860 we have 4 variants...

I have managed to create a "table" with the different models I have detected so far, in the driver and hide this particular details to the users. (I have to include yet some of the TK-370 idents into the driver, I have a ticket for this pending)

If you follow the ident procedure in the driver you will find that the model it matched against a var named VARIANTS in the radio object, for example

VARIANTS = {
        "M0860\x05\x00\x00": (32, 406, 440, "F4"),
        "M0860\x04\x00\x00": (32, 488, 512, "F3"),
        "M0860\x03\x00\x00": (32, 470, 496, "F2"),
        "M0860\x02\x00\x00": (32, 450, 476, "F1")
        }

The lines are coded as follows for the first line: ("M0860\x05\x00\x00": (32, 406, 440, "F4"))

Now seeing your data I can tell that this radio can speak the default kenwood schema...

If you can provide me with a serial logs of a download and a upload I maybe can craft a more precise driver for you to test and keep hacking.

Please see the details on this doc to know about the particular details about making a serial log: http://chirp.danplanet.com/attachments/2257/how%20to%20portmon.doc

73 Pavel CO7WT


El 01/08/16 a las 20:08, Glancing Blow via chirp_devel escribió:
Lax on this but as I have time I peck at it.

Tom's patch for the serial object solved the setTimeout error I was getting.  I do not have the Kenwood software to sniff out the process so i am flying blind.  What I have done ...

I copied the TK-760G.py file from the program and looked at the flow of the program.  Making assumptions here but decided the TK-278G would be the closest configuration that would work.  I tried that in the program and got the exception ...

Exception Dialog: Incorrect model ID, got v2.01k�, it not contains P2780

So it talked to the radio, this was good.  No idea what the character in the diamond at the end of the exception is but I grabbed the v2.01k moniker and copied and patched the TK-278G data, putting it at the end of the string of radios listed in the TK-760.py file.  Here is the patch ..


@directory.register
class TK280G_Radios(Kenwood_Serie_60G):
    """Kenwood TK-280G Radio C/C1/M/M1"""
    MODEL = "TK-280G"
    TYPE = "v2.01k"
    # Note that 16 CH don't have banks
    VARIANTS = {
        "v2.01k\xff":    (128, 136, 150, "C1"),
        "v2.01k\xff":    (128, 144, 174, "C"),   # 150-174 original
        "v2.01k\x15\xff": (16,  136, 150, "M1"),
        "v2.01k\x14\xff": (16,  144, 174, "M")    # 150-174 original
        }

Started CHIRP and now I found the TK-280G in my radio list.  Told it to download and got a handshake exception ...

ERROR: ----------------
ERROR: Clone failed: Handshake failed
ERROR: --- Exception Dialog: Handshake failed  ---
ERROR: None

ERROR: ----------------------------

What does it send for a handshake, the radio name?  Also noted that the radio only responds on channel 1.  A capital P appears on the LCD and I assume that means Program.

David Davis
Toledo, OR
KG7ZMX

On Fri, Jun 10, 2016 at 10:05 PM, Tom Hayward <tom@tomh.us> wrote:
On Fri, Jun 10, 2016 at 7:17 PM, Glancing Blow via chirp_devel
<chirp_devel@intrepid.danplanet.com> wrote:
> 'Serial' object has no attribute 'setTimeout'

My patch to fix this was applied this morning. Do "hg pull -u" to
update your repo to the latest version.

My suggestion is to start with a serial data capture program like
portmon and watch how the Kenwood software communicates with the
radio. If it's anything like the others, it'll start with "PROGRAM" in
plain ASCII. Kenwood is nice this way. At the end, it'll do "E" to
take it out of program mode. That's just my guess based on other
Kenwoods. You'll have to decipher the stuff in between. It'll probably
be something like a request for the memory contents at a specified
address, then a reply with the contents of that memory block.

Tom KD7LXL



_______________________________________________
chirp_devel mailing list
chirp_devel@intrepid.danplanet.com
http://intrepid.danplanet.com/mailman/listinfo/chirp_devel
Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers

-- 
73 Pavel CO7WT.