<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Glancing, the author of the driver TK-760G.py at the keyboard
    here.
    <p>The Kenwoods are prone to build in families, like the TK-760 that
      covers all the models like this:</p>
    <p>TK-760/762/768/860/862/868 an others (this is just an example)</p>
    <p>An even so... you can have a TK-760 in two or more variants, for
      example in the TK-860 we have 4 variants...</p>
    <p>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)<br>
    </p>
    <p>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<br>
    </p>
    <p>VARIANTS = {<br>
              "M0860\x05\x00\x00": (32, 406, 440, "F4"),<br>
              "M0860\x04\x00\x00": (32, 488, 512, "F3"),<br>
              "M0860\x03\x00\x00": (32, 470, 496, "F2"),<br>
              "M0860\x02\x00\x00": (32, 450, 476, "F1")<br>
              }<br>
    </p>
    The lines are coded as follows for the first line:
    ("M0860\x05\x00\x00": (32, 406, 440, "F4"))<br>
    <ul>
      <li>"M0860\x05\x00\x00": exact ident of the radio (but less a few
        last bytes that shows is the radio is password protected see
        notes on the driver) </li>
      <li>32: number of channels of this particular model</li>
      <li>406 &amp; 440: the start and stop edges of the frequency
        coverage</li>
      <li>"F4": the software/manual variant designation.</li>
    </ul>
    <p>Now seeing your data I can tell that this radio can speak the
      default kenwood schema...</p>
    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.<br>
    <br>
    Please see the details on this doc to know about the particular
    details about making a serial log:
    <a class="moz-txt-link-freetext" href="http://chirp.danplanet.com/attachments/2257/how%20to%20portmon.doc">http://chirp.danplanet.com/attachments/2257/how%20to%20portmon.doc</a><br>
    <br>
    73 Pavel CO7WT<br>
    <br>
    <br>
    <div class="moz-cite-prefix">El 01/08/16 a las 20:08, Glancing Blow
      via chirp_devel escribió:<br>
    </div>
    <blockquote
cite="mid:CADNvznC6LOtdny6T0b6E9j-GR3P3L7gznd3abV_3RUS5tv1o=g@mail.gmail.com"
      type="cite">
      <div dir="ltr">Lax on this but as I have time I peck at it.
        <div><br>
        </div>
        <div>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
          ...</div>
        <div><br>
        </div>
        <div>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 ...<br>
          <br>
          Exception Dialog: Incorrect model ID, got v2.01k�, it not
          contains P2780<br>
          <br>
        </div>
        <div>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 ..<br>
          <br>
          <br>
          @directory.register<br>
          class TK280G_Radios(Kenwood_Serie_60G):<br>
              """Kenwood TK-280G Radio C/C1/M/M1"""<br>
              MODEL = "TK-280G"<br>
              TYPE = "v2.01k"<br>
              # Note that 16 CH don't have banks<br>
              VARIANTS = {<br>
                  "v2.01k\xff":    (128, 136, 150, "C1"),<br>
                  "v2.01k\xff":    (128, 144, 174, "C"),   # 150-174
          original<br>
                  "v2.01k\x15\xff": (16,  136, 150, "M1"),<br>
                  "v2.01k\x14\xff": (16,  144, 174, "M")    # 150-174
          original<br>
                  }<br>
          <br>
        </div>
        <div>Started CHIRP and now I found the TK-280G in my radio
          list.  Told it to download and got a handshake exception ...<br>
          <br>
          ERROR: ----------------<br>
          ERROR: Clone failed: Handshake failed <br>
          ERROR: --- Exception Dialog: Handshake failed  ---<br>
          ERROR: None<br>
          <br>
          ERROR: ----------------------------<br>
          <br>
        </div>
        <div>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.<br>
          <br>
        </div>
        <div>David Davis<br>
        </div>
        <div>Toledo, OR <br>
        </div>
        <div>KG7ZMX<br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Fri, Jun 10, 2016 at 10:05 PM, Tom
          Hayward <span dir="ltr">&lt;<a moz-do-not-send="true"
              href="mailto:tom@tomh.us" target="_blank">tom@tomh.us</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
              class="">On Fri, Jun 10, 2016 at 7:17 PM, Glancing Blow
              via chirp_devel<br>
              &lt;<a moz-do-not-send="true"
                href="mailto:chirp_devel@intrepid.danplanet.com">chirp_devel@intrepid.danplanet.com</a>&gt;
              wrote:<br>
              &gt; 'Serial' object has no attribute 'setTimeout'<br>
              <br>
            </span>My patch to fix this was applied this morning. Do "hg
            pull -u" to<br>
            update your repo to the latest version.<br>
            <br>
            My suggestion is to start with a serial data capture program
            like<br>
            portmon and watch how the Kenwood software communicates with
            the<br>
            radio. If it's anything like the others, it'll start with
            "PROGRAM" in<br>
            plain ASCII. Kenwood is nice this way. At the end, it'll do
            "E" to<br>
            take it out of program mode. That's just my guess based on
            other<br>
            Kenwoods. You'll have to decipher the stuff in between.
            It'll probably<br>
            be something like a request for the memory contents at a
            specified<br>
            address, then a reply with the contents of that memory
            block.<br>
            <br>
            Tom KD7LXL<br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
chirp_devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:chirp_devel@intrepid.danplanet.com">chirp_devel@intrepid.danplanet.com</a>
<a class="moz-txt-link-freetext" href="http://intrepid.danplanet.com/mailman/listinfo/chirp_devel">http://intrepid.danplanet.com/mailman/listinfo/chirp_devel</a>
Developer docs: <a class="moz-txt-link-freetext" href="http://chirp.danplanet.com/projects/chirp/wiki/Developers">http://chirp.danplanet.com/projects/chirp/wiki/Developers</a></pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
73 Pavel CO7WT.</pre>
  </body>
</html>