A new VFO for an old Kenwood

So I have a Kenwood TS-530s and I love it, but there are a few things I dont like. One of the problems is the VFO. It is old and analog and drifts as it warms up. This can be a bit of a problem for digital modes. So what I decided to do is take it out, and replace it with a DDS. This is easier than it looks, because all you need to do is remove 4 screws, unplug the connector, and move the lights out of the way if intend to move it more than a few inches(LEDs here because I replaced them). Then you simply slide the whole thing out, like so:

The VFO frequency needs to be from 5.5-6.0MHz, so I am using an AD9833 and an Arduino nano. I took the code from http://www.vwlowen.co.uk/arduino/AD9833-waveform-generator/AD9833-waveform-generator.htm and modified it, so this is not 100% my code. The connections for the arduino are in this image:

Credit to http://www.vwlowen.co.uk/arduino/AD9833-waveform-generator/AD9833-waveform-generator.htm

I simply removed all the code for the TFT and STEP encoder / waveform selector, as mine will not use these. The code is still a work in progress so I will not post it here yet, but I will update when this project is done.

So the first step is to see what the current VFO does. Here is a screenshot from the service manual which can be found at http://www.w0nta.com/Kenwood%20TS-530S%20Service%20Manual.pdf

From the service manual
The 5 pin connector on the back, with an oscope probe stuck in it

There is a 5 pin connector on the back of the VFO. The connections are:

RLC – This is the CW offset pin. When the radio is in TUNE mode or transmit in CW mode, I measured +8.23V on this pin. This biases a varactor diode to increase the frequency by 800Hz.

RIT – This is the RIT/XIT pin. When RIT was off, I measured 6.59V on this pin. With RIT on and full positive, there is 8.23V on this pin. Full negative RIT gave me 5.11V.

VFB – This is the 9V supply connector, but I assume this is also 8.23V in mine.


VFO – This is the VFO output pin. The output is a sine wave, 5.5-6.0MHz, and 0.2V PTP.

So now that I have this information, what do I do with it? Well so far my code makes the DDS output a sine wave from 5.5-6.0MHz, but it doesnt do much else. For RIT, I plan on using just a voltage divider and one of the Arduino’s analog pins as an input. The voltage divider is necessary because the analog pins only read up to 5V. RLC is easy. If there is voltage on that pin, the frequency is increased by 800Hz. I will probably power it from the same 9V, err, 8.23V line, but if this doesnt work I can look around the service manual for another power source.

Things I still need to do:

  • Figure out how to make the frequency increase faster as I turn the rotary encoder more
  • Make the output of the DDS cleaner and closer to 0.2V PTP
  • Make RIT work
  • Possibly add a non-volatile memory chip so I can have it remember settings when it gets turned off(or update the freq every time it changes?) I cant use the built in memory for this because it has a limited number of read/write operations before it fails.

I also have a Kenwood TS-700A 2M all mode rig that I would like to do this with, but the VFO does not appear to be anywhere near as easy to access. This can be a future project.

I will post an update on this once I get more things figured out. It’s mostly just code now.