<div dir="ltr"><div><div><div><div><div><div><div><div><div>I have made some assumptions about the radio to get a leg up.  Keep in mind I am working from a logical argument not an understanding of python or chirp.<br><br></div>I am using the 760G driver set written by Pavel Milanes, tk760g.py, as a starting point to understand and open the radio.  I edited that file by copying the TK270G data and changing the model information to TK280 ...<br><br>@directory.register<br>class TK280G_Radios(Kenwood_Serie_60G):<br>    &quot;&quot;&quot;Kenwood TK-280G Radio K/K1/M/E/NE/NT&quot;&quot;&quot;<br>    MODEL = &quot;TK-280G&quot;<br>    TYPE = &quot;P2800&quot;<br>    VARIANTS = {<br>        &quot;P2800T\xff&quot;:    (128, 144, 174, &quot;NE/NT&quot;),   # 146-174 original<br>        &quot;P2800$\xff&quot;:    (128, 144, 174, &quot;E&quot;),       # 146-174 original<br>        &quot;P2800\x14\xff&quot;: (128, 150, 174, &quot;M&quot;),<br>        &quot;P2800\x05\xff&quot;: (128, 136, 150, &quot;K1&quot;),<br>        &quot;P2800\x04\xff&quot;: (128, 150, 174, &quot;K&quot;),<br>        }<br><br></div>This gave me the error wrong model with the message, &quot;expected P2800 but got v2.01k instead&quot;.  So I edited the string again ...<br><br>@directory.register<br>class TK280G_Radios(Kenwood_Serie_60G):<br>    &quot;&quot;&quot;Kenwood TK-280G Radio K/K1/M/E/NE/NT&quot;&quot;&quot;<br>    MODEL = &quot;TK-280G&quot;<br>    TYPE = &quot;v2.01k&quot;<br>    VARIANTS = {<br>        &quot;P2800T\xff&quot;:    (128, 144, 174, &quot;NE/NT&quot;),   # 146-174 original<br>        &quot;P2800$\xff&quot;:    (128, 144, 174, &quot;E&quot;),       # 146-174 original<br>        &quot;P2800\x14\xff&quot;: (128, 150, 174, &quot;M&quot;),<br>        &quot;P2800\x05\xff&quot;: (128, 136, 150, &quot;K1&quot;),<br>        &quot;P2800\x04\xff&quot;: (128, 150, 174, &quot;K&quot;),<br>        }<br><br></div>and got a Handshake error ...<br><br>File &quot;/usr/lib/python2.7/dist-packages/chirp/drivers/tk760g.py&quot;, line 884, in sync_in<br>    self._mmap = do_download(self)<br>  File &quot;/usr/lib/python2.7/dist-packages/chirp/drivers/tk760g.py&quot;, line 517, in do_download<br>    _open_radio(radio, status)<br>  File &quot;/usr/lib/python2.7/dist-packages/chirp/drivers/tk760g.py&quot;, line 501, in _open_radio<br>    _handshake(radio)<br>  File &quot;/usr/lib/python2.7/dist-packages/chirp/drivers/tk760g.py&quot;, line 385, in _handshake<br>    raise Exception(mesg)<br>Exception: Handshake failed <br></div><br></div>from the code process at line 385 ...<br><br>def _handshake(radio, msg=&quot;&quot;):<br>    &quot;&quot;&quot;Make a full handshake&quot;&quot;&quot;<br>    # send ACK<br>    _raw_send(radio, ACK_CMD)<br>    # receive ACK<br>    ack = _raw_recv(radio, 1)<br>    # check ACK<br>    if ack != ACK_CMD:<br>        _close_radio(radio)<br>        mesg = &quot;Handshake failed &quot; + msg<br>        # DEBUG<br>        LOG.debug(mesg)<br>        raise Exception(mesg)<br><br></div>So basically the ACK failed.  If I understand the serial process this could be the form of the ACK, bit length, stop bit etc.  Could it also be the model mismatch raising it&#39;s head?<br><br></div>I will try a couple of other configurations to get in but suggestions are always welcome.<br><br></div>David Davis<br></div>KG7ZMX<br><div><div><div><div><div><div><div><div><br><br></div></div></div></div></div></div></div></div></div>