A RPi controlled DDS-VFO for a Kenwood TS120S Transceiver from 1979

Copyright © Herbert Hanewinkel, DK7JJ
 

Overview

I own a Kenwood TS120S ham radio transceiver (with original PS30 power supply) built in 1979. It was one of the first inexpensive transceivers with PLL and digital frequency display. It weighs a few pounds but was called a mobile transceiver at the time. The service manual and a lot of informations about the transceiver were collected by radio amateurs and are available on the internet. Thanks to this information a faulty transistor could be located and replaced.
Because of the free running VFO, in the first hour of operation the frequency needs to be adjusted every few minutes. Therefore I decided to build a DDS VFO. A DDS VFO also improves FT8 operation because of split frequency support and remote frequency control.


Hardware

The components:

From the TS120S service manual an external VFO has to deliver a signal of 200mV rms at 500 Ohm in frequency range 5.5 Mhz - 6.0 Mhz This is exactly the voltage the chinese AD9850 DDS module produces. Therefore it should be no problem to adapt the module to the external VFO input of the TS120S transceiver.


The external VFO connector of the transceiver provides tho following lines:

Because in Germany AC voltage changed from 220V to 235V in the last decades the offical PS voltage of 13.8V increased to ~14.4V today. It should cause no problem because the manual says that the TS120S transveiver accepts a voltage up 15.5V.

The AD9850 DDS module needs 5V, ~130 mA. To power the module from the transceiver the 14.4V line must be used. To get the 5V a standard voltage regulator module is used (LM7805 + 2 capacitors). This results in a heat problem because the voltage regulator produces (14.4-5)V * 0,13A ~= 1.2W as heat. The standard cooling shield of the module was replaced by a larger shield of a DRAM module. Additionally 54 holes were drilled in the small box for better cooling.

Copper tape connected to ground is used on the inner side of the small box to shield the VFO.

The RPi runs a standard RASPIOS with Python3 and LIRC for IR handling.

The ouptut signal of the AD9850 DDS module is connected by a 10μ capacitor to the VFO input line using a shielded cable. I made also experiments with an AD9833 module. It could be selected in my dds python code. For operation with the TS120S the output signal of the AD9833 module is too small and building a hf amplifier is another problem.

The system worked fine on 20m, but on 10m band the system showed strange effects until the cover of the RPi was shielded. I used grounded copper tape as for the box.


Software

The DDS VFO itself has no controls. The RPi accepts IR input, mouse input and commands from a HAMLIB client for the VFO. (e.g. in WSJT FT8 software select HAMLIB as transceiver model and specify the HAMLIB port 4575 as declared in the python script)
The software consists of two Python scripts.

The Python script is independant of the remote control. LIRC converts remote control specific IR events to keyboard events handled by the Python script. Only LIRC configuration depends on the remote control. There are tutorials on how to setup LIRC on linux/RPi.


TS120S with DDS-VFO and RPi on top


Update for Version 2

03.2024

Hardware

In a second version of the DDS-VFO I added three ADuM1201 boards to isolate the VFO from the RPi. Like optocouplers the ADuM chips isolate input and output. The ADuM1201 is symmetrically and offers one input and one output per side. The ic can also do 3.3V to 5V conversion.

Three boards in a row just fit below the pins of the AD9850 module. The RPi side is powered from the RPi with 3.3V, the AD9850 side with 5V. This requires an additional 3.3V line from the RPi. For this reason the OLED screen was moved to 5v power connector from the RPi.
The AD9850 module has been mounted in the reverse position compared to the first version, the SPI pins are now at the bottom and connected to the ADuM1201 outputs on the bottom row. The top row of the three ADuM1201 boards forms the 3.3V side and is connected to the RPi.

In the first version, the third voltage divider to the GPIO-13 input line was used to signal the power-on state of the TS120S. GPIO 13 is now connected directly to an output of the ADuM1201, eliminating the need for the voltage divider. Because the output of an ADuM1201 is HIGH when the input is unpowered, the logic for power-on detection had to be inverted. LOW now signals the RPi that the TS120S is powered.

Software

The software dds-v2.py was extended by a bluetooth server to handle serial-over-bluetooth commands from clients.
The reason: The FT8CN app for FT8 on Android has no built-in hamlib client and the app worked fine controlling my Yaesu FT818 using serial-over-bluetooth. To control the TS120S without an USB cable I needed a bluetooth or ICOM style network connection. Because I don't have any experience with ICOM protocols I added a bluetooth serial server to accept Yaesu FT818 style commands for VFO selection, frequency settings and PTT control.