New Model #4395

Kenwood TK-280

Added by Pavel Milanes over 5 years ago. Updated 9 months ago.

Status:In Progress Start date:01/11/2017
Priority:Normal Due date:
Assignee:Pavel Milanes % Done:


Target version:-
Chirp Version:daily Equipment Loan Offered:No


Hi to all,

I'm working remotely with a willing user to get a serial log one of this radio (TK-280) and start the development of a basic Chirp's driver.

My goal is to make at least a successful download/upload script and parse the general channel data for this model (TK-280), my experience points that making support for one member of the family will make trivial to extend it to the rest of the family (that's how family 60/60G works and this seems like "family 80"), then another developer can follow the lead and continue my work adding settings and options.

By looking to the OEM software the whole "Family 80" could be supported after this basic driver is completed, that may cover all this models: TK-780/880/280/380/980/981/480/481

Further development (beyond upload/download and simple channel data) will be very unlikely from my side as I don't have a radio at reach to test and hack at this time.

Side note: I live in Cuba island, sending me a radio is not an option (yet), I must work remotely and some users must cooperate with me in the testing of this driver; I have done that before, is hard work but works, the BTECH and brothers radios support for chirp was made this way with the great help and dedication of Jim Unroe.

Users of the Kenwood TK-280: if you like your radio supported please upload some portmon logs to this issue as there are at least two know variants, but radios with options boards may present it self as specific sub variants so please report if your radio has an option board.

Instructions for getting the serial logs here:

73 Pavel CO7WT

TK-280a.LOG - portmon logs for the TK-280a (67.8 kB) Pavel Milanes, 01/16/2017 05:15 am

tk-280.dat - OEM file from KPG49D windows software (32 kB) Pavel Milanes, 01/16/2017 10:45 am

tk-280.txt - Download serial log (just the radio to pc part) in hex (12 kB) Pavel Milanes, 01/16/2017 10:45 am

TK-280_hex.LOG - full serial log with hex, this is the complete one. (68.7 kB) Pavel Milanes, 01/17/2017 06:51 am - latest dev driver to test. (49.8 kB) Pavel Milanes, 01/31/2017 07:44 am

debug.log (28.1 kB) Thomas P, 04/30/2021 09:07 pm

debug.log (29 kB) Thomas P, 05/01/2021 08:50 am

debug.log (30.6 kB) Adam Bartlett, 01/02/2022 12:12 pm

Related issues

related to New Model #3475: Kenwood TK-x80, TK-x81 Feedback 03/14/2016
related to Feature #3433: Chirp Programming for Kenwood TK-880 and TK-981 Closed 03/07/2016
related to New Model #2835: Kenwood TK Commercial series Closed 08/26/2015


Updated by Pavel Milanes over 5 years ago

  • File TK-280a.LOG added
  • Status changed from New to In Progress

Added the first logs about this radios

73 Pavel CO7WT

Updated by Pavel Milanes over 5 years ago

Hi to all,

Taking a peek and stating to build the skeleton of the new driver I can tell you that this radio is very similar to the Kenwood 60G family (TK-760G/TK272G and friends).

The serial handshake, the ID, the empty block flagging and whole download process are pretty much the same.

Inspecting one image from the OEM software the mem organization are very similar to the ones in the Kenwood 60G Family, chances are good, I will come up with a testing develop driver soon (just to confirm that downloads are working)

73 Pavel CO7WT

Updated by Tom Hayward over 5 years ago

That is good news! Thank you for your work, Pavel.

Updated by Pavel Milanes over 5 years ago

Hi Tom,

I hope it doesn't have any special trick, specially in the banks management, because the family 60G got me a few days thinking the mem banks logic.

I'm making it remotely (no radio at hand) from logs and interaction with just ONE willing user that has not so much free time, so other owners of the TK-280/380 are invited to join this thread (yes the TK-380 is the same radio but for UHF) and help me with my questions, logs and testing.

Some PR about support to this radio stating here will no harm... (to attract supporting users, FB?, QRZ?)

All points that the family "80" radios are an upgrade to the family "60G" as more deep I go the more similarities I found. I'm downloading the service manuals now to get more insight about features, functions, models and versions of this radios, I noted they use the same model-version schema of Family 60G, the OEM software is on the queue also...

With the OEM soft I can ID the hole family of models-versions to keep detection in the driver to full capabilities, but, that is a time consuming task for other day (BTDT, believe me it's a very boring task...)

73 Pavel CO7WT.

Updated by Pavel Milanes over 5 years ago

Still, we need a complete serial log for a download & upload of the radio data; users must follow the procedure described in to get a full log with HEX data on it.

The logs I have so far give good data but incomplete one.

Updated by Pavel Milanes over 5 years ago

I have the logs now.

Attached is the portmon log with full hex support thanks to David KG7ZMX, I will process it on the coming days and will come up with a alpha driver to test.

73 Pavel CO7WT.

Updated by Pavel Milanes over 5 years ago

  • File added

First try to download a image for this radios.

Attached to this post is a developer driver, to try it you must follow this steps:

  1. Save the file attached to this post to where you keep your chirp radio image files
  2. Open Chirp (check that you have the most recent version)
  3. Click "Help"
  4. Click enable "Enable Developer Functions"
  5. Click "File" in the menu
  6. Click "Load Module"
  7. Find and load the file that was saved in step 1

Note: This special test module only temporarily changes your CHIRP. You must load this module every time you load CHIRP to test it, otherwise you will wet the default installed chirp.

The task now is to connect a Kenwood TK-280 and try to read it to get a chirp .img file

This must be capable of read the radio... no matter if it complain about channels or other error, keep reading

If the download process works, you can be able to go to "File" and "Save" the content of the radio mem, please if success attach your saved image to this issue. (it will be ~30 Kbytes)

No working stories are also appreciated.

I repeat: the goal here is no download the contents of a radio, not to interpret the channel data or other details, in fact the channel data will no work in the present state, and uploading back to the radio is disabled for obvious reasons.

If you see that someone has uploaded an image already, please do upload yours! The more data I get more easy will be to reverse the memory map.

I wait for your tests to keep the work on this driver.

73 Pavel CO7WT.

Updated by Pavel Milanes over 5 years ago

Hi, report from users talks about the driver not putting the radios in program mode...

I will be back with a solution.

73 Pavel CO7WT.

Updated by Pavel Milanes over 5 years ago

  • File added
  • % Done changed from 0 to 10

Hi to all,

Modified version of the dev driver for download a Chirp image from one of this drivers is attached, all investigation points to a DTR/RTS dance before starting the upload/download process.

Please test it and report back.

Updated by Pavel Milanes over 5 years ago

  • File deleted (

Updated by Pavel Milanes over 5 years ago

  • File deleted (

Updated by Pavel Milanes over 5 years ago

Update the dev driver, last one has an error in the code, sorry.

Updated by Thomas P over 1 year ago

I tried the from post 12 with my tk-981 since they are related but I got this error...
global name 'length' is not defined

It doesn't appear to have gotten to the point of communicating with the radio. I am attaching the debug log for details. Hope this helps the "80 series" along. I will do what I can if you need more info.

Updated by Jim Unroe over 1 year ago

Thomas P wrote:

I tried the from post 12 with my tk-981 since they are related but I got this error...
global name 'length' is not defined

This particular error is due to an easy to make syntax error. Line 513 is...

        if length(ack) == 0 or ack != ACK_CMD:

and should be...

        if len(ack) == 0 or ack != ACK_CMD:


Updated by Thomas P over 1 year ago

Thanks Jim! I updated line 513 and it got me past that error. Now it won't get past entering program mode.
The error is The radio doesn't accept program mode

Attaching debug log. I don't know if this is because I have a 981 but I thought it might be helpful.

Updated by Thomas P about 1 year ago

I tried this again on my tk-981, manually putting it into "Panel test mode" (A+Power On) as well as "Clone mode" (C+Power On), with the same result. The "Program mode" appears to only be activated via commands from the computer. At least that appears to be the case with the tk-981.

Has anyone had any luck or progress on this? I love my 981 and want to pick up more "80 series" radios but current programming is a PITA. I'm happy to test anything to contribute.

Updated by Jim Unroe about 1 year ago

Either there is a driver/connection with the programming cable, or the "magic" string sent by CHIRP to initiate cloning in the radio is not recognized by the radio.

Since the "magic" for all of these radios is the same ("PROGRAM"), I doubt that would be the problem. Since the radio does not reply to the request to start the cloning process, I would expect that the problem is with the programming cable (driver/connection/etc). And if you get past that, this driver is a work-in-progress, it appears to only currently support the TK-280.


Updated by Adam Bartlett 9 months ago

Hi -

Using the script to read from a tk-981 (with the fix from Jim for line 513), I get an exception. Full debug log attached.

[2022-01-02 14:09:44,043] chirp.ui.common - ERROR: -- Exception: --
[2022-01-02 14:09:44,045] chirp.ui.common - ERROR: Traceback (most recent call last):
File "chirp\ui\clone.pyo", line 255, in run
File "C:\Users\adam\Downloads\", line 962, in sync_in
File "C:\Users\adam\Downloads\", line 583, in do_download
File "C:\Users\adam\Downloads\", line 499, in _open_radio
AttributeError: 'Serial' object has no attribute 'reset_input_buffer'

Also available in: Atom PDF