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.
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 ...
@directory.register class TK280G_Radios(Kenwood_Serie_60G): """Kenwood TK-280G Radio K/K1/M/E/NE/NT""" MODEL = "TK-280G" TYPE = "P2800" VARIANTS = { "P2800T\xff": (128, 144, 174, "NE/NT"), # 146-174 original "P2800$\xff": (128, 144, 174, "E"), # 146-174 original "P2800\x14\xff": (128, 150, 174, "M"), "P2800\x05\xff": (128, 136, 150, "K1"), "P2800\x04\xff": (128, 150, 174, "K"), }
This gave me the error wrong model with the message, "expected P2800 but got v2.01k instead". So I edited the string again ...
@directory.register class TK280G_Radios(Kenwood_Serie_60G): """Kenwood TK-280G Radio K/K1/M/E/NE/NT""" MODEL = "TK-280G" TYPE = "v2.01k" VARIANTS = { "P2800T\xff": (128, 144, 174, "NE/NT"), # 146-174 original "P2800$\xff": (128, 144, 174, "E"), # 146-174 original "P2800\x14\xff": (128, 150, 174, "M"), "P2800\x05\xff": (128, 136, 150, "K1"), "P2800\x04\xff": (128, 150, 174, "K"), }
and got a Handshake error ...
File "/usr/lib/python2.7/dist-packages/chirp/drivers/tk760g.py", line 884, in sync_in self._mmap = do_download(self) File "/usr/lib/python2.7/dist-packages/chirp/drivers/tk760g.py", line 517, in do_download _open_radio(radio, status) File "/usr/lib/python2.7/dist-packages/chirp/drivers/tk760g.py", line 501, in _open_radio _handshake(radio) File "/usr/lib/python2.7/dist-packages/chirp/drivers/tk760g.py", line 385, in _handshake raise Exception(mesg) Exception: Handshake failed
from the code process at line 385 ...
def _handshake(radio, msg=""): """Make a full handshake""" # send ACK _raw_send(radio, ACK_CMD) # receive ACK ack = _raw_recv(radio, 1) # check ACK if ack != ACK_CMD: _close_radio(radio) mesg = "Handshake failed " + msg # DEBUG LOG.debug(mesg) raise Exception(mesg)
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's head?
I will try a couple of other configurations to get in but suggestions are always welcome.
David Davis KG7ZMX