Kenwood TK-790

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Please attribute the work to Rob Riggs, WX9O, Mobilinkd LLC.

This article is about repurposing Kenwood TK-790 land-mobile radios for amateur packet radio. It is geared towards radio amateurs that have access to a 3D printer. In this article we will discuss the benefits of this radio as well its challenges. We will provide an overview of the various models that are available and point out which ones are suitable for ham use. We will then go into the process of powering on the radio, connecting a speaker, programming it, connecting it to a TNC, configuring the hardware for 9600 baud use, and building custom programmers and microphones with the aid of a 3D printer.

Introduction

KCH-10 control head

The Kenwood TK-x90 radios are a discontinued series of land-mobile radios which were used extensively in public safety (police/fire) in the US. These are solid, mil-spec quality radios. These radios are being phased out in lieu of digital radios. They are currently available in the second-hand market in the US for under $100, depending on condition. These are mono-band radios. The VHF models can be converted to work on the amateur 2m band, making them an inexpensive option for a rugged, dedicated APRS radio.

These radios are also 9600-baud capable, making them an ideal candidate for setting up inexpensive 9600 baud packet stations.

There are a number of reasons that a radio of this quality sells for as little as it does. These radios do present some challenges when it comes to pressing them into amateur service. But with these challenges comes an opportunity to pick up a great radio at a reasonable price.

The goal of this article is to go through the various issues one may face with the TK-790, how to overcome them, and hopefully provide some inspiration for radio amateurs to build upon this work. In this article you will find open hardware designs for a programmer circuit and 3D-printable custom connectors. The result will be putting a rugged, high-quality radio into service for very little money.

We will go over the features of the radio, how to program it for the 2m ham band, how to set it up as a dedicated APRS/packet radio, what is needed to make it work at 9600 baud, and touch on opportunities for further experimentation and development.

As part of this work, we introduce open 3D-printable designs for basic and advanced programmers, packet radio connector for the Mobilinkd TNC3, and a microphone connector.

Assumptions

This article assumes you can read and understand basic schematic diagrams.

The how-to sections assume you have a soldering iron, can build your own cables, and can create basic circuits on a breadboard. You will need access to a 3D printer. A 3D printed custom connector is used to program the radio. One may optionally build a more advanced programmer using a custom PCB with surface-mount components and more advanced 3D printing materials -- but this is certainly not a requirement.

You will likely need to change some configuration resistors on the control board. This will require removing and re-soldering 1206 imperial / 3216 metric sized surface mount components. This can be done with a soldering iron, but a hot-air rework station may be a better tool if one is available.

We will be making Molex connectors using 2.54mm pins. You may need a crimping tool capable of crimping these connectors. Adequate crimping tools can be found on for under 20 USD.

We will be using Linux and Wine to run the programming software to program the radio. The software can be run directly under Windows 10 as well.

The article assumes you will be connecting the radio to a Mobilinkd TNC3, and that you have another APRS- or packet-capable transceiver for testing. You can of course connect this radio to any TNC, but you will need to adapt the TNC connector and set up instructions to suit your needs.

You should also have a dummy load capable of handling at least 50W, and an RTL SDR to monitor the RF output.

Background

After exploring the Motorola SM50 and being unable to get it to work at 9600 baud, I decided to try a radio that was much more likely to work at 9600 baud. Reading the specs in the Kenwood TK-790 service manual convinced me that, while not guaranteed, that it would very likely work. And it would certainly work at 1200 baud, still being good value for a dedicated 45W mobile APRS radio.

However, one of the bigger challenges is that the connector used for the microphone and programming interface is proprietary to Kenwood, and apparently only ever used on this series of radios. Because of this, even used microphones in poor condition can sell for over 50USD. An after-market programmer available for this radio fetches a premium at 30-40USD, more than the radio itself can sometimes be found for.

It really does not make sense to buy a TK-790, and then go out an buy all of the accessories needed to make it a functional radio. The accessories for this radio are expensive. Decent used amateur radios can be had for the money that you would spend on these items.

To make this a cost-effective radio, we need to invest a little time and effort.

Overcoming Challenges

Before we dig into the details of this radio, it might be helpful to lay out the challenges we face adapting this radio to amateur use, and then looking at how we might overcome these challenges.

The challenges that I encountered when investigating this radio and later adapting it to amateur packet use were the following:

  • Confusing model numbers and product configurations
  • Lack of amateur resources -- not many posts or videos
    • No programming instructions
    • No programming software
  • No built-in speaker
  • Expensive accessories
  • Proprietary connector
  • Would not power on
  • Surface-mount configuration resistors

These challenges are really what makes this radio a good value. If it was easy, these radios would sell for a lot more money.

I hope begin addressing the first two issues with this article, by providing a reference for other radio amateurs to build upon and help clear up some of the confusion for first-time buyers.

The lack of a built-in speaker is often not a concern for packet use, but we will address it here by making an inexpensive adapter so the radio can be easily connected to an external speaker.

The next two items are distinctly related, and are a major reason that these sell so cheaply. The connector used on the radio for the programmer and microphone is unique to this series, making programmers and mics quite expensive. We will need to be a bit inventive to address this. While not exactly a household item, many amateur operators have access to 3D printers today. With this, we can make our own mating connectors for programming the radio (and which can be adapted to use with a microphone).

The remaining two items are also related. We will go into the configuration changes needed to make the radio usable for the average amateur.

Open Hardware

All of the hardware designs in this article are released as open-source hardware (OSHW).

  • KiCAD designs (schematic and PCB) for a programmer circuit.
  • FreeCAD designs for the custom connectors for the programmer and microphone.

These items are licensed under the CC-BY-SA, the same license that this article carries.

I am not an experienced 3D modeler or mechanical engineer, nor do I have the tools to accurately measure the connector dimensions or product mechanical drawings. The connector design is one area that could benefit from further contribution by radio amateurs with the proper tools and skillset.

TK-x90

This section is intended to give the reader a broad overview of the radio models and accessories. It also highlights some of the pitfalls one is likely to encounter when looking to purchase one of these radios.

One of the challenges of buying these radios is the confusion that can arise from all of the models, variants and components that are available. Read through this section and understand the radios and components that are for sale before buying a radio (or what you might think is a radio). We are going to cover the models in this series, the variants of each model, and the control heads that are available for them.

The TK-x90 series is made up of the TK-690, TK-790, and TK-890 models. There are multiple variants of each of these that cover different segments of the VHF low band (TK-690), VHF high band (TK-790) and UHF band (TK-890). There are "H" variants of these radios that put out 100W rather than the 40-50W the non-H models are rated at.

Full service manuals for all of the models in the series are available at the Repeater Builder website and from Rodney Vorndam, K9ROD.

KRK-5 Separation Kits

A word of warning for the impatient.

Many of these radios, especially the "H" variants, are sold with a control head separation kit. It is very common to find just the control head for sale, without a radio, or a radio for sale without a control head. Rarely with either come with the separation cable, which can cost more than the used radio itself. I recommend staying away from these as one can rarely find a bargain buying these components separately.

Buy a 45W radio with the control head attached. That is what is covered in this article.

Models

There are three major models each with multiple variants. There are also normal (45W) and "H" (100W) variants. We will go into these in detail below.

The major models to be aware of are:

  • TK-690 -- VHF low-band (29.7-50MHz), three variants, generally considered unusable for ham bands
  • TK-790 -- VHF high-band (136-174MHz), two variants, usable on 2m
  • TK-890 -- UHF (403-512MHz), three variants, only one known usable on 70cm

We will not be covering the "H" variants here. The majority of these are sold without a control head, and adding a control head and cable can cost more than the radio. There are a lot of traps one can fall in with these radios, and covering them all would take a complete article in itself. Let's just say that if you buy an "H" model, do not be surprised to find that you have an inert piece of metal on your hands until you spend a lot more money on accessories to get a working radio.

There are also two control heads available for these units. They are often sold as separate items (primarily for the "H" variants).

The first trap to avoid when buying one of these radios is making sure you
are buying a full radio with control head and not just the control head.

We cover the two control heads below.

TK-690

The TK-690s are here just for completeness. Online posts suggest that they are unusable for the ham bands without re-tuning the RF circuits. That is well beyond the scope of this article. There are three variants, and only appear to be available in the H version.

These have very little value on the secondary market. The '110 or '130 variants might be interesting projects for the adventurous ham experimenter.

TK-790

This model is the focus of this article.

There are two variants of the TK-790. I have only seen the 148-174MHz variant. The second variant would be ideal for amateur use, but the first model works well on the 2m band.

148-174MHz
136MHz-156MHz

There does not appear to be an "H" variant of this model.

TK-890

The TK-890 is the UHF version of this radio. There are three variants and only one is known to be usable for the 70cm amateur band. This would be useful for setting up a 9600 baud packet network on 70cm. I have only tried to use these on the upper half of the band. However, this model is not the focus of this article.

450-490MHz

These are the only TK-890 models known to be usable on the 70cm ham band.

480-512MHz

UNUSABLE FOR HAM RADIO

403-430MHz

UNKNOWN

Control Heads

There are two control heads available for these radios, the KCH-10 basic control head, and the KCH-11 advanced control head. The major difference is that the basic control head has a built-in speaker and fewer buttons, while the advanced control head has more buttons but does not have a speaker.

One of the key aspects of the control head is the proprietary 12-pin connector on the front. This connector is used for programming and for the microphone connection.

Basic Control Head KCH-10

KCH-10 control head

The basic controller is probably the most useful for amateur radio use as it has a built-in speaker. My experience is that these are quite a bit less common than the KCH-11. One of the more noticeable limitations of this control head is that it can display fewer characters on its display than the KCH-11.

Advanced Control Head KCH-11

KCH-11 control head

The advanced control head is the more common control head found on these radios. These have a larger display screen and 6 more buttons than the KCH-10. To get the added buttons and screen size, it gives up the speaker.

If you want speaker output from the radio, you will need to connect an external speaker to the 9-pin Molex connector on the rear of the radio. Directions for doing this are provided below.

12-pin Connector

Some of the measurements below are approximate. I do not have the equipment to measure this accurately. My measurements were accurate enough for 3D-printed models and PCB construction.

12-pin connector

The 12-pin connector is a propriatary round connector. It appears to have only been used on this radio series and is one of the reasons that this radio has such low resale value.

The male end (a somewhat arbitrary distinction) is on the radio. It has pogo pins (spring-loaded pins) that project out of the face of the connector.

The female end is on the accessory (programmer or microphone). It has pads that make contact with the pins on the radio.

The female connector has an outer shell and a recessed inner contact area, and a central locator pin.

The outer shell has a diameter of roughly 19.5mm and an inner diameter of 17.5mm. The outer shell is 1mm thick. The wall of the outer shell protrudes 5.4mm from the contact base. The center pin is 4mm in diameter and extends 10mm from the contact base. The 12 pads on the contact base are offset from one another by 30 degrees.

The pads can be thought of as two concentric rings of 6 pins each in a hexagon (60° offset), offset from one another by 30°. The outer ring has a radius of 6mm. The inner ring has a radius of 4.5mm. The inner ring is rotated 30° from the outer ring.

The male connector on the radio has pogo pins which protrude from the face of the connector. Each pins is about 0.85mm in diameter with about 1.5mm of travel. In the center of the connector is a locator hole.

The connector is held in place with an M2.5 screw with a depth of about 5mm. The screw hole is at 225° angle and about 14mm from the center. The screw hole sits 2.5mm higher than the face of the connector with the pogo pins.

The pins are numbered 1 through 12. Pin 1 is at the top, 12 o'clock position. On the radio they are in counter-clockwise orientation. On the accessory plug they are in clockwise orientation.

 1 : SB -- switched power, 13.6V nominal, **not current limited**
 2 : HOOK -- Microphone hook indicator, 5V off hook, 0V on hook
 3 : MICG -- Microphone ground
 4 : MIC -- Microphone input
 5 : Earth -- Chassis ground
 6 : TRD -- Transmit/Receive Data, single-wire serial programming
 7 : NC -- Not connected
 8 : DM -- DTMF MIC key pad data input
 9 : BLC -- MIC backlight ON/OFF, active low
10 : PTT -- PTT, active low
11 : NC -- Not connected
12 : NC -- Not connected

Pins 5 & 6 are the programming pins and are closest to the M2.5 screw hole.

SB is 13.6V and is not current limited. Be careful with this.

The Kenwood microphones I reviewed can handle the 13.6V from the SB output as they contain a 7805 regulator for 5V internal power. Refer to the Kenwood microphone manual repository at the Repeater Builder website.

Service Manuals

A Note on Buying

You may find radios that are advertised as "parts only" with the comment that it will not power on. This is not uncommon for these radios as they are very frequently configured for ignition sense. Without the proper cable attached, they will not power on. Ignition sense can either be provided by applying power to one of the pins of the 9-pin Molex connector on the back, or it can be disabled by changing a configuration resistor on the control board. We will show how to deal with both below.

Accessories

In this section we are going to cover the accessories needed to get started with this radio. Many of them we are going to make ourselves, because it is cost-effective to do so.

We are going to need the following to get started:

  • power cable (these are available for 10-20 USD)
  • programmer (a breadboard and a 3D-printed connector)
  • TNC adapter/connector

We are also going to cover the optional items:

  • ignition sense connector
  • speaker connector
  • microphone

If you plan to just used the radio for packet, only the first three items are truly necessary.

The way this section is organized we will be looking not just at the accessory itself, but any modifications we need to make to the radio to use those accessories. For example, in the section on the power cable, we are going to go through the process of powering up the radio, and talking about ignition sense and how to disable it.

Here is the complete BOM needed to power on the radio, program it, connect it to a TNC and connect a speaker. Additional items will be needed if you want to make a more permanent programmer cable or microphone. These are addressed separately below.

  1. 1 Power cable
  2. 1 9-pin Molex 1625 connector
  3. 5 Molex 1625 connector pins -- but you will want a few extra in case of bad crimps.
  4. 1 3.5mm 4-pole Panel-mount Jack
  5. 1 3.5mm 4-pole male to male cable
  6. 1 DB-25 Male Solder-cup Connector
  7. 2 M3x12 Socket Head Cap screws + nuts
  8. 2 #4-40 1/2" Screws
  9. 2 M3 Hex Nuts
  10. 2 P50-E2 pogo pins
  11. 1 2N7000 N-channel MOSFET
  12. 1 1N4148 switching diode
  13. 1 100KΩ resistor
  14. 1 1KΩ resistor
  15. 1 220Ω resistor
  16. 1 3.3/5V USB/Serial adapter
  17. 5 Male/Female Dupont hookup wire (20cm/8")
  18. 1 M2.5x8mm screw
  19. 1 Small breadboard

Power Cable

The power connector is a two-pin square connector common to 45W and under radios from Kenwood and others. Power cables for these radios are available and for a reasonable price. These radios use the same power connector as my Kenwood TM-V71A. These are "standard" connectors in the sense that a number of radio manufacturers seem to use them, but they are not made by a common connector company (i.e. they are not Molex connectors). You can find them in China.

It's usually more convenient to buy a pre-made cable for $10-20. I recommend the ones with inline fuses. These are a requirement if you intend to connect it directly to an automobile's power system and use ignition sense to control the radio's power.

Even with power applied, you may find that the radio does not power on. This is because the radio is configured for ignition sense. Ignition sense is designed to leave the radio always connected to vehicle power and only power on when a voltage is present at the ignition sense pin on the 9-pin Molex connector on the rear of the radio.

This can be addressed in one of two ways. If the radio is going into a vehicle, it may make sense to leave ignition sense enabled. You will need to apply power to the ignition sense pin to power on the radio while it is on the bench.

The other option is to disable ignition sense. This will require opening the radio and moving a configuration resistor. This makes the most sense when configuring the radio to run as a base station or digipeater in a shack.

We will cover both below.

Getting Started

In the following sections we are going to:

  • Power on the radio
  • Build a programming cable
  • Program the radio
  • Build a TNC connector
  • Connect a TNC
  • Modify the radio for 9600 baud operation

Powering on the Radio

We are going to power on the radio. We are going to discuss ignition sense, how to use it, and how to disable it.

You will need the following equipment:

  • A TK-790
  • A power supply capable of providing 10A at 13.6V
  • TK-790 power cable
power connector

You may need either:

  • Soldering Iron

Or

  • Molex Style Crimp Tool
  • 9-pin Molex 1625 connector
  • 2 Molex 1625 pins
  • 18-24AWG Hookup wire (I recommend stranded copper with silicon insulation)

Even with power applied, you may find that the radio does no power on. This is because the radio is configured for ignition sense. Ignition sense is designed to leave the radio always connected to vehicle power and only power on when a voltage is present at the ignition sense pin on the 9-pin Molex connector on the rear of the radio.

This can be addressed in one of two ways. If the radio is going into a vehicle, it may make sense to leave ignition sense enabled. You will need to apply power to the ignition sense pin to power on the radio while it is on the bench.

The other option is to disable ignition sense. This will require opening the radio and moving a configuration resistor. This makes the most sense when configuring the radio to run as a base station or digipeater in a shack.

We will cover both in this section.

Power Cable

It is always a good idea to connect the radio to a dummy load when first powering it on. This helps to ensure that your do not get RF burns or damage the transceiver if the transmitter is keyed up.

  1. Connect the power cable to the power supply.
  2. Connect the power cable to the radio.
  3. Turn on the power supply and ensure that it is delivering 13.6V
  4. Press the power button on the radio.
power connector
power on failed

In this case the radio would not turn on. This is very common. In fact most of the TK-790s I have purchased have been in this state.

If your radio powers on, you can skip the following two sections.

Ignition Sense Connector

When the radio is configured for ignition sense, it expects to be connected directly to a vehicle's battery system. And it senses when the ignition is turned on (either in accessory mode or with the engine on).

The ignition sense line is on the back, on the 9-pin Molex connector.

ignition sense connector
ignition sense connected

Upper right is the ignition sense line, lower left is ground.

Construct the connector as shown. The connector is keyed, so watch the orientation when installing the pins. The lead length is whatever best meets your needs. For the power supply I am using here with binding posts in the front, about 50cm or 2' of wire would be enough.

  1. Cut two wires to the appropriate length, one for ignition sense and one for ground.
  2. Attach the Molex pins to one end of each of the wires.
  3. Push the pins into the Molex connector.
  4. Strip the other end of the two wires.

You can attach connectors on the other end or leave them bare as I have done. The new connector is ready.


When using ignition sense, the ignition sense line should only be energized when the radio's primary 13.6V power line is also energized.

  1. Turn off the power supply
  2. Connect the new Molex connector to the radio as shown above.
  3. Connect the ground wire to ground on the power supply.
  4. Connect the ignition sense wire to switched 13.6V.
  5. Ensure the radio's main power is connected to the power supply.
  6. Turn on the power supply.

At this point the radio should automatically turn on. If not, try pressing the power button.

Ignition Sense Configuration Jumpers

The radio has 4 configuration jumpers on the main control board located under the top cover. These can be set to enable or disable the ignition sense behavior of the radio. If you do not wish to use ignition sense, changing the jumper settings is the most straight-forward way of addressing it.

The jumpers are soldered on 0 Ohm surface mount resistors.

We are only going to concern ourselves with R504 and R506.

remove top cover
ignition sense enabled
ignition sense disabled

You can right click on the images above and select "open in new tab" to view the images in high resolution.

To disable ignition sense using the configuration resistors:

  1. Turn off the power supply.
  2. Disconnect the power cable from the radio.
  3. Open the top cover.
  4. You should see that R506 is present and R504 is not.
  5. Remove the resistor at R506.
  6. Install the same resistor at R504.
  7. Replace the top cover.
  8. Connect the power cable to the radio.
  9. Turn on the power supply.
  10. Turn on the radio.
powered on

In this mode, the radio will remember its last state when the power was removed. This means if the radio is turned on when the power supply is turned off, the radio will automatically power on when the power supply is turned on.

Programming

Now that the radio can be powered on, we need to program the radio. In this section we are going to cover building a programming adapter using a 3D printed part, some pogo pins and connector wire with Dupont connectors. We are then going to build the 1-wire serial adapter on a breadboard. We are going to connect this to a computer using a 3.3V/5V USB serial adapter. And we are going to program the radio using the Kenwood programming software running in Wine on Linux.

Programming software for the TK-790 has been made available by Rodney Vorndam, K9ROD, at http://www.k9rod.net/. He has given permission to add deep links to his resources in this document.

Programmer Adapter

The instructions for building the programmer connector are available from the Mobilinkd tk-x90-basic-programmer repository.

In addition to a 3D printer, you will need:

  1. 2 P50-E2 pogo pins
  2. 2 Hookup wires, at least 20cm/8", with male and female Dupont connectors.
  3. 1 M2.5x8mm screw
  4. DMM or continuity tester

The P50-E2 pogo pins are the proper diameter to fit into a standard Dupont female header. The M2.5 screw can be a little shorter than 8mm if needed. I use an M2.5x5mm screw in the images below.

Follow the link above and build the programmer connector. Be sure you scroll to the bottom of that page to view the complete instructions.

programmer model
basic programmer connector
attached programmer connector

Programmer Circuit

We are going to use the schematic from the the Mobilinkd tk-x90-programmer repository to build an equivalent circuit on a breadboard.

programmer schematic

The theory of operation is discussed in more detail in the repository linked above. In essence, this circuit is converting a standard 3-wire serial port (GND/TX/RX) to a 2-wire serial port (GND/TRD) used on the radio.

We will need the following:

  1. 1 2N7000 N-channel MOSFET
  2. 1 1N4148 switching diode
  3. 1 100KΩ resistor
  4. 1 1KΩ resistor
  5. 1 220Ω resistor
  6. 1 3.3/5V USB/Serial adapter -- I am using a CH340-based board below.
  7. 3 Male/Female Dupont hookup wire (20cm/8")
  8. 1 Small breadboard -- a 400-pin breadboard is more than big enough.
programmer breadboard

Wire up the breadboard according to the schematic above. Refer to the images below for the layout and connections to the USB serial adapter and to the programmer adapter connected to the radio.

programmer breadboard
programmer breadboard

Programming Software

You will need to download the KPG-44D from the Internet. One source for this is from K9ROD. There is a document with the distribution which includes the serial number needed to install the program.

I have managed to get the software working under Windows 10 in a virtual machine. However, I found that the easiest way to run the software is to run it on Linux under Wine. If you are running on Windows 10, skip the Wine-specific steps below. You are on your own to install and configure the serial port drivers.


Note:

In the middle of writing this document, I upgraded my Linux system and this included the Wine installation. After my system update, Wine would randomly crash while configuring the serial port in the KPG-44D software. I was eventually able to configure, read and write the data, but it was not the trouble-free experience that it started out as. KPG-44D version 2.10 ran well under Windows 10.


Wine Configuration

The first step is to configure the serial port under Wine. This is done by running regedit and setting a configuration parameter. First we need to find our serial port.

$ dmesg | tail
...
[7083381.650442] usb 3-9.4.4.1: ch341-uart converter now attached to ttyUSB5

In order to make this a bit more resilient, we are going to use the "by-id" device name.

$ find /dev -lname "*USB5"
/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
/dev/serial/by-path/pci-0000:00:14.0-usb-0:9.4.4.1:1.0-port0
/dev/char/188:5

In my case, we are boing to use /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0.

Next we need to start up regedit under wine and add an entry to HKEY_LOCAL_MACHINE\Software\Wine\Ports.

$ wine regedit
wine regedit add key

Navigate to the HKEY_LOCAL_MACHINE\Software\Wine\Ports registry.

wine regedit add key

Add a new string entry (Edit|New|String Value). The name is the COM port id such as "COM1" and the value is the device name. Again, I recommend using the "/dev/serial/by-id" name. There is no guarantee in Linux that the /dev/ttyUSBx device name will be the same the next time you plug it in.

wine regedit add key
wine regedit add key

At this point you should exit regedit by selecting (Registry|Exit).

Installing KPG-44D Under Wine

Download the KPG-44D software using the link above. Then extract the files using the full path. Then run the installer under Wine.

$ wget http://www.k9rod.net/Commercial/KPG-44D_v2.10.rar
...
$ unrar x KPG-44D_v2.10.rar
...
$ wine KPG-44D_v2.10/KPG-44D/Disk1/Setup.exe

You will be greeted with an InstallShield installer window. Follow the installation steps. It will ask for a serial number in a "Customer Information" screen. One of the files you extracted in the unrar step above is called "Serial #.doc". Use the serial number you find in that document. It does not matter what you enter for "User Name" and "Company Name", but they cannot be blank.

wine kpg-44d installation
wine kpg-44d installation

Just follow the defaults to complete the installation.

wine kpg-44d installation
wine kpg-44d installation
wine kpg-44d installation

At this point the installation is complete. We can now program the radio.

Programming the Radio with KPG-44D Under Wine

If you have installed the software in the default location, you can run the programming software by executing the following command.

$ wine "C:/Program Files (x86)/Kenwood Fpu/KPG44D/KPG44D.exe"

You can also run wine explorer, navigate to the executable and launch it from the explorer.

The first step is to set up the serial port to use COM1. Do this by selecting "Setup|Communication Port" and selecting COM1.

KPG-44D programming
KPG-44D programming

The next step is to read from the radio. The radio must be read from before it can be programmed.

You must press the "Read" button in the window that pops up to read the data from the radio.

KPG-44D programming
KPG-44D programming
Below you can see what was programmed into one of the radios that I purchased. One thing to note, and which is not visible in the screenshot below, is the window banner. It will show that the band limits are for 148-174MHz, which is outside the band we want to program. The first thing we need to do is to change the model of the radio so that it will accept amateur radio frequencies. Go into Model|Model Information, change the frequency range to 136-156MHz, then select "OK".
KPG-44D programming
KPG-44D programming

You should now see the banner reflects the new band limits.

We can now program in our first amateur frequency. I did this by selecting all of the programmed channels in the group and pressing the "Delete" key. I then went to the first row and entered the North America APRS frequency.

If you highlight the row and click the "Ch Edit" button, you can change more information about the channel, including the TX power, whether it is wide or narrow, as well as moving it between groups.

KPG-44D programming
KPG-44D programming

Once all of the channels are programmed, we need to verify the settings of the accessory port on the back (the DB-25 connector). We need to ensure that PTT is enabled on the radio's auxilliary input 1. Go into (Edit|Function Port) and look at the input tab. If the item labelled "Radio 1 AI1" is not set to "Ext PTT", change it so that it is set that way. Then close the window.

KPG-44D programming
KPG-44D programming

The band limit change we made earlier only affects our ability to add/edit channels in the application while it is set. You can, for example, set it to 136-156MHz, add a number of ham frequencies, and then switch back to 148-174MHz to add weather channels. You should switch back to the 148-174MHz setting before writing the radio channels to the radio. Otherwise you will get a warning that the model type is wrong.

KPG-44D programming

Once done, you can program the radio by selecting "Program|Write Data to Radio". You may get a pop-up warning about firmware features. It will tell you that certain features may not work depending on the firmware programmed.

KPG-44D programming
KPG-44D programming
KPG-44D programming

Once the radio is programmed, you can power off the radio and disconnect the programmer.

In the next sections we are going to quickly show how to connect the radio to an external speaker using the 9-pin Molex connected that we used earlier for ignition sense. And then we are going to construct a custom adapter to connect the radio to a Mobilinkd TNC using the DB-25 connector on the back of the radio.

Firmware Update

I was able to use Wine and Fpro.exe to update the firmware on an older TK-790 using the same programmer. I had to select "USB Cable" when programming. With that selected, it was able to program at 115200 baud. Rodney, K9ROD, was kind enough to supply firmware files for me to test with.

More than that is outside the scope of this documentation. Just know that if there is one way to brick your radio, doing a firmware update is it.

Speaker Connection

If you have a radio with the KCH-10 basic control head, you can skip this section. Your radio should have come with a connector attached to the 9-pin molex which shorts pins 3 & 6, enabling the internal speaker of the control head.

In this section we will briefly show the connections required to attach an external speaker to the radio. This reuqires adding a couple of pins the a Molex 9-pin connector. If you used the 9-pin Molex earlier to get a working ignition sense line, you can use the same connector, just add a couple more pins.

In this case we are going to connect pins 2 & 6 to the Molex connector. (We connected pins 1 & 9 for the ignition sense connection.) And we are going to run the wires from pins 2 & 6 directly into a 4 or 8 Ohm speaker.

speaker connection
speaker connection

TNC Connector

In this section we will cover connecting the radio to a Mobilindk TNC3 using the signals available at the DB-25 connector. We are going to create an adapter that will allow us to use a male-to-male 4-pole 3.5mm cable to connect the radio to a TNC. These are common cables available for lots of retailers.

We are going to 3D print the DB-25 connector adapter because we want the connector to hold a 3.5mm panel-mount jack. We use a model from Uwe Zimmermann on Thingiverse, his Parametric D-Sub backshell housing. This model is licensed CC-BY-4.0.

I have made modifications to fit the 3.5mm panel mount connector and also to better fit the M3 screws and nuts that I use to hold it together. The model, both OpenSCAD and STL, are available on the Mobilinkd Github repo.

BOM

The materials needed to build the adapter are:

Equipment

You will need the following equipment:

  • 3D Printer
  • Soldering iron & solder
  • DMM or continuity tester

Alternately, if you can find a DB-25 shell with a 7mm hole for the cable opening, you may be able to use that in place of 3D printing the DB-25 shell.

Connector Construction

TNC Adapter schematic
TNC Adapter parts

DB-25 shell

Start by downloading and printing two copies of the DB-25 shell (you need two halves to make a complete shell). Make sure to account for material shrinkage. If you intend to install this in a vehicle, avoid PLA and use a material like PETG, ABS or ASA that can withstand higher temperatures. If it will be inside the vehicle's cabin and exposed to UV light, ASA is a good UV-resistant material. It is what I used to print the shell.

  1. Cut 4 wires to about 40-50mm (about 2") in length.
  2. Strip about 3mm (1/8") of insulation from each of the ends.
  3. Solder the wires to DB-25 connector, pins 2, 7, 13, 19.
  4. Remove the retaining nut on the 3.5mm jack.
  5. Solder the corresponding wires to the 3.5mm jack (see table below).
DB-25 Pin TRRS Jack
2 Ring 1
7 Sleeve
13 Ring 2
19 Tip

Ring 1 on a TRRS connector is the one nearest the tip.

I plugged the 3.5mm cable into the jack and used a continuity tester to verify the pin connections on the jack before soldering the wires.

Place the two connectors in the DB-25 shell and close it up. Attach the retaining nut to the 3.5mm jack. Be careful when tightening the nut not to twist the connector. You may want to add some Loctite to the jack to ensure the nut does not vibrate loose when mounted in a vehicle.

Connecting a TNC

Attach the DB-25 TNC connector to the radio's DB-25 port. Use the two 4-40 screws to hold the connector in place on the radio.

Plug the cable into the radio and into the TNC. This should now be a working 1200 baud AFSK connection.

Rather than repeat what has already be written about how to test a 1200 baud connection, I will refer you to the instructions here: https://nbviewer.jupyter.org/github/mobilinkd/MotorolaSM50/blob/master/MotorolaSM50.ipynb#1200-Baud-APRS

TNC Adapter connected

9600 Baud

The radio is capable of 9600 baud. This may require changing a surface-mount jumper on the radio.

I suggest you read the Section 8, Accessory Terminal Function, of the service manual. While the manual states that that the default state for pin 13 on the DB-25 accessory port is "DI" or Data Input, which is what we need for 9600 baud, all of the radios I have encountered to date are configured for "MI" or Mic Input.

Pin 13 Jumpers

The image above shows the jumpers is on R640. The radio is set for Mic Input, which is only usable for 1200 baud AFSK. To configure the radio for 9600 baud, the jumper needs to be moved from R640 to R641.

That's all it takes. Just be aware that, unlike most amateur radios, your cannot easily switch between 9600 baud and 1200 baud modes. This really is not a problem when using a TNC like the TNC3, which produces clear tones on 1200 baud. It may not be a good idea to use TNCs that use poorly filtered PWM for AFSK, like the TNC2, on a radio configured for 9600 baud.

Pin 13 Jumpers

This shows a radio that has been modified for 9600 baud. It also has a factory mod applied to it. It's an older radio (one with a lower serial number) and has an older revision of the control board.

You can now follow the steps outlined in the Mobilinkd TNC3 User Guide for adjusting the output levels of the TNC (see the section on 9600 Baud Operation).

Microphone Adapter

If you would like to use the radio for voice communication, I have created a microphone connector. It is a combination PCB and 3D printed shell. Take a standard KMC-30 radio, which can be found for under $20, cut the RJ-45 connector off and reassemble with the custom connector.

Microphone adapter

The PCB and 3D models are available here:

https://github.com/mobilinkd/tk-x90-microphone-pcb https://github.com/mobilinkd/tk-x90-mic-connector-housing

You can upload the KiCAD file for the microphone PCB to OSH Park and get 3 PCBs delivered in the US for $2.

The instructions for this project are rather incomplete at the moment.

Advanced Programmer

If you would like a more permanent programming cable, one that doesn't involve parts on a breadboard and hook-up wires connected to the radio, a more advanced programmer can be made using the same connector assembly as the microphone connector above. Just the PCB is different.

Advanced Programmer

The PCB and 3D models are available here:

https://github.com/mobilinkd/tk-x90-microphone-pcb https://github.com/mobilinkd/tk-x90-mic-connector-housing

You can upload the KiCAD file for the programmer PCB to OSH Park and get 3 PCBs delivered in the US for $2.

Further Development

There is a lot of opportunity for further development of the radio now that a simple and inexpensive programming option exists.

Programming with Chirp

There has been some initial work to get TK-x90 support into Chirp, Dan Smith's universal open source radio programming software.

https://chirp.danplanet.com/issues/3363

Getting this work completed and in the mainline for Chirp would be a great next step, allowing hams to avoid having to download and run a proprietary, unsupported 32-bit Windows applications.

Serial Protocol

Work on the serial wire protocol used by Kenwood radios has been started, but I have misplaced the link to the site where this work was being done. Documenting this protocol might allow us to do things like add VFO tuning to the radio.

If you discover where this work is being done, please let me know so I can include a link in this document.

One can monitor the serial protocol by leaving the programmer attached and opening a serial terminal at 9600 baud. During my brief time experimenting with this I have found that it is possible to replay commands received to change the display, active group and the current channel.

Firmware Modification

We have the firmware files as HEX format files and the tools necessary to upload new firmware to the radio. The radio's functionality could be enhanced for amateur use by decompiling and modifying the firmware.

The microprocessor on the radio is a Renesas M16C microcontroller, the M30625FGAGP.

https://www.renesas.com/us/en/products/microcontrollers-microprocessors/m16c/m16c60/m16c62a/device/M30625FGAGP.html

GCC supports the M16C/M32C architecture. Instructions for building a cross-compiler to target this processor archictecture can be found here: https://calcoen.web.cern.ch/build_gcc_3.htm

Adding a VFO and support for field programming would be two immediate goals. Control via CAT commands via the secondary serial port would be another.

Hardware Modifications

There are a number of possible hardware modifications that one can make to this radio that could make it more ham friendly.

The rear connectors can be easily replaced by changing the removable plates and installing new wiring harnesses. Adding speaker connections for the 3W and 20W (speaker and PA) output channels using a common connector (RCA or phone) would be helpful, as would common block terminals for the ignition sense line.

Replacing the DB-25 connector with a standard MiniDIN-6 data port and a USB serial port for the second serial port could make this more accessible in the shack.

An adapter that would convert the proprietary 12-pin connector on the front to a Kenwood RJ-45 would avoid having to 3D print and solder up one's own microphone connectors.

Modifying the hardware so that the DI/MI switch could be done via a button press on the front panel would make switching between 1200/9600 baud modes possible. A simple PCB with an analog switch that attaches to the R640 & R641 pads, along with VCC, GND and one of the aux output pins would do the trick.

There is a second serial port on the DB-25 connector. Is it possible to use this for programming? Rig control? What is its purpose?

In [ ]: