December 15, 2013:
Revised: v1.1

A DDS VFO for the Lydford 40m QRP SSB Transceiver

front view of transceiver
Combining a very cheap Chinese-made DDS module and a low cost microprocessor and LCD display, this VFO delivers band-wide tuning, digital stability and four tuning speeds to the Lydford transceiver. 


Temptation is a powerful thing.

Browsing across the Internet one day, I stumbled across a reference to (at that time) a recently released Chinese DDS module. It’s shown in Figure 1 below. These modules use one of the more common DDS chips, the Analog Devices AD9850, and were available at an incredibly low price. Just a few dollars each, perhaps less than one-tenth what the chip alone used to cost. And these modules came complete with the required reference crystal oscillator and a low pass filter.

Temptation became translated to action. Before long, several of these modules had arrived on my bench.

typical chinese dds module
Figure 1 : Top side and underside view of one of the low cost Chinese AD9850 DDS modules


What is direct digital synthesis?

DDS chips output digitally generated sine waves at frequencies from near-DC to several GHz depending on the particular device you use. Some DDS chips produce a pair of “quadrature” outputs. These in-phase and quadrature (90 degree phase shifted) outputs are really useful in oscillators used in the latest software-defined receivers and transmitters.

One of the earliest and most popular DDS chips was the AD9850. Its output frequency is determined by an internally stored 32-bit “tuning word” usually written to the device by a companion microcontroller, usually via a 3-wire serial interface. A 40-bit word is actually sent because there are a few other “control” bits that are also required.

These DDS chips are clocked by a separate reference crystal oscillator. These normally operate at frequencies above 100MHz. The stability of this oscillator determines that of the output. Frequencies generated are Nyquist-limited to half the DDS crystal reference frequency and may be produced at sub-Hertz resolution. In practice, filter limitations usually constrain the DDS oscillator output to about 40% of the reference frequency, and most VFO designs seem to focus on 10Hz tuning steps as the minimum resolution used in practice.

But it’s not all "wine and roses" in the DDS world. Devices like the AD9850 consume lots of current. With the hungry crystal oscillator used on these Chinese module, this can add up to about 200mA in total. Also, while crystal controlled, the absolute accuracy of the output depends on the accuracy of the crystal oscillator, and in some cases, this can be questionable.  The biggest problem, however, is the noise floor and spurious products created by these DDS chips. In short, the AD9850 does not always have the best reputation. Using one as a VFO can fill your receiver’s speaker with mysterious squeaks and bleeps as well as more noise than you’d like to hear. That all adds up to some serious problems.

More modern devices, such as the AD9851 and the AD9834, have largely resolved many of these problems. But those devices are relatively expensive, certainly much more than these super-cheap Chinese modules. So, could these AD9850 modules be used in some way to avoid or minimise the worst of the problems?

Chinese DDS Modules

Before we dive into that topic, let’s pause for a moment to look a little more closely at these DDS modules. There seem to be two “similar but different” Chinese AD9850 modules available. Using identical circuits but slightly different layouts, they are sold at similar prices via Ebay and similar websites. I used the smaller of these modules, and that’s the one we will examine in more detail here.
These modules contain the AD9850 chip, a 125MHz crystal oscillator, a 70MHz low pass filter, and a green, yellow or red LED as a DC power indicator. The underside of the module is fitted with a parallel row of pins which bring out all of the required connections. These include the 3-line serial input connections to control the AD9850 and four outputs. These outputs include an in-phase and a 180 degree phase shifted (inverted) sine wave output pair and a similar pair of square wave outputs. There is also a preset resistor at one end of the PCB. This sets the symmetry of the square wave outputs. I found it needed to be adjusted slightly in order to get any square wave output at all, although this adjustment does not seem to affect the sine wave output in any way.

DDS VFO with Chinese module
Figure 2 : The Chinese AD9850 DDS module at lower left plugs in over the top of the ATmega8 processor in the DDS VFO.The switchmode regulator can be seen mounted vertically near the right hand edge of the board. The LCD forms the third side of the "box". The preset resistor on the board adjusts the LCD display contrast.

As previously mentioned, the AD9850 uses a 32-bit tuning word to set the DDS chip’s output frequency. This provides an output tuning resolution of just less than 0.03 Hz with the 125 MHz reference clock fitted on the module.  The low pass filter, which cuts off abruptly above 70 MHz. (70 dB attenuation at 100 MHz, and over 90dB at the 125MHz reference frequency) Finally, the AD9850 can also be phase modulated but this feature seems to be rarely used.

The pinout of the module is shown in the table below.

table 1
Table 1 : Chinese DDS Module Connection details

Possible Design Solutions

One of the reasons for high levels of spurious products when using the AD9850 is poor bypassing, especially of the main 5V rail close to the chip. I felt that using a ready-made module with its surface mount components should address much of that problem.

The high supply current required by the AD9850 was a challenge. The 5V rail for this chip is usually derived from the incoming 13.8V supply, often using the common LM7805 regulator. However, this is inefficient and demands the use of a substantial finned heatsink. Something about 35mm high and 25mm in width bolted to the regulator turns out to be necessary. Even with that heatsink, this approach results in a source of almost 2W of continuous heat inside the transceiver, and that’s hardly desirable.

Some previous work I’d done on compact switch mode regulators demonstrated their ability to improve the sub-40% efficiency of linear regulators at these current levels (200mA or so) to at least 80%. Obtaining a suitable switch mode regulator IC was a problem, but one useful source of a complete regulator was literally just around the corner.

Compact USB vehicle chargers regulate 13.8V to 5V efficiently at these or higher currents, and they are readily available for only a few dollars at most discount stores and supermarkets. Additional details about this module, the minor modifications required, as well as some discrete component alternatives to it are described in some detail here on my website.
The next issue to consider was the DDS phase noise performance. I had also recently read some work on synthesizers by Wes W7ZOI. It noted, in passing, the advantages of using dividers with HF phase locked loops (PLL). Dividing a VCO by 10, for example, could improve PLL phase noise by 20dB. Some study of the maths involved suggested that spurious products could also be reduced by a similar amount (The exact value is 20*log (N) where N is the division ratio). Could this same technique be usefully applied to the AD9850?

Finally, according to the Analog Devices datasheet, the lower the operating frequency of the DDS, as a ratio of the crystal clock frequency, the better is the relative quality of the output. The Lydford VFO operates around 4MHz into the on-board 74HC74 divider, well below the 125MHz reference frequency driving the AD9850 in the Chinese module, so that seemed positive.

The Lydford transceiver was the target test-bed selected for my experiments with these cheap DDS modules. In the 40m version of the Lydford, the VFO is fed to a 74HC74 and the output to the mixer is taken from the divide-by-4 output. (You can read about my construction of the Lydford here) At the very least, then, I could achieve a divide by 4 ratio which might yield as much as a 12 dB improvement in phase noise. Perhaps just enough for the module to work as a VFO for my 40m Lydford transceiver.

And that’s proven to be so. It’s not perfect – I can still hear the occasional chirp as I tune across the band, but they are few and far between, and generally at a low level. The phase noise is acceptable, too. The advantages gained by using a DDS VFO, such as smooth and accurate digital tuning with precise tuning steps and multiple tuning speeds, as well as the digital frequency display, all add up to a great low cost VFO solution for me.

The Lydford DDS VFO

One of the most obvious things about this VFO is the low component count. Along with the bright blue LCD display, all that’s required is an Atmel ATmega8 microcontroller , a rotary encoder and a few pushbuttons, resistors and capacitors, and the Chinese AD9850 module. That’s all! Oh, and the modified USB vehicle regulator module if you are powering it from 13.8V.

The full schematic is shown in Figure 3.

Figure 3 : The schematic diagram of the VFO shows just how few components are required
There are just a few things to mention about the schematic. First, the ground connection on input D2 of the DDS module. In order to tell the AD9850 that it is to expect frequency data to arrive on the three serial lines, inputs D0 and D1 on the AD9850 need to be pulled high (i.e. to +5V) and D2 must be pulled to ground. No additional external connections are required to D0 and D1 because the module already includes 10k pullup resistors on these pins. However, we do need to add the external ground onto D2.

Secondly, there is an LED connected to pin 13 of the ATmega8L. This is an optional LED which I use to display the result of the rotary encoder routine. Each time it is executed, the LED is inverted. As the encoder is turned, this LED turns on and off at the detected rate of rotation. This was useful for detecting a variety of problems in software while the code was being written, and I’ve left it in place. Feel free to delete it if you don’t like or need it.

mechanical rotary encoderThe rotary encoder used here is a low cost mechanical type. These encoders produce a sequential pair of quadrature output pulses. Depending on the direction of rotation, one of the two square wave pulse outputs leads or lags the other by 90 degrees. These pulses are detected by the microcontroller and used to adjust the DDS frequency. Mechanical rotary encoders do not have the same output as optical rotary encoders. These more expensive encoders  do not produce pulses, but directly output complete quadrature waveforms. They also typically produce 50, 100 or more level changes per rotation compared to the 12 or 20 or so pulses per turn for the mechanical type.

A good quality mechanical rotary encoder is essential. Poor quality encoders will simply not work well. They generate considerably more switch contact bounce as they rotate. That sharply increases the rate of decoder errors detected by the software, resulting in quite erratic DDS tuning. Some DDS VFO designs use capacitors to bypass each rotary encoder input to ground in an attempt to reduce this problem, but this can limit the rotation speed of the tuning knob. This design has opted for the use of a better quality encoder, fast tuning knob speeds, and no capacitors. In any case, the encoder suggested is not expensive, and results in reasonably error-free tuning.

Almost all of these encoders also have a integrated spring-loaded pushbutton which closes when the user pushes the rotary knob into the panel. This is used to select the tuning speed. I’ve included four tuning rates: 10Hz, 100Hz, 1kHz and 10kHz per step. That translates to about 120Hz per turn at the lowest speed, or as much as 120kHz at the top speed. I only use the highest speed when I’m doing something like tuning from end to end of the band, usually as part of some bench testing of filters or antennas. For the most part, I use the slowest speed for CW, the next speed for SSB, and the third 1kHz rate for fast tuning.

The rotary encoder’s rotation is detected by the ATmega8 which then updates the 40-bit tuning word subsequently sent to the AD9850 on the DDS module. If this update is not done quickly, fast spinning of the tuning knob will not be possible. This software is able to follow most fast spin tuning rates.

side view of assembled vfo

Figure 4 : The layered method of construction used in the VFO can be seen clearly here.

There are a few other features built into the VFO including receiver incremental tuning (RIT), transmit detection and IF offset. Pressing the RIT button in receive allows fine tuning at up to 5kHz from the VFO frequency. In transmit, the RIT offset is ignored, allowing the VFO to be offset for split and CW-offset operation if desired.

When the PTT key is detected (active-ground), a “reverse T” icon will appear on the LCD to indicate the VFO is in transmit mode. This saved me having to find space on the front panel for an extra LED to show when the transceiver was transmitting.

The VFO software also includes provision for the IF offset. In this case, the software is programmed for the Lydford’s 6MHz IF frequency. The software also assumes 40m operation, to suit my 40m version of the Lydford transceiver.

Both values are easily changed. The source code can be downloaded (See the Download section below) for those wanting to use the VFO on other bands or in other transceivers. The source code is written in BASCOM, a Basic-like language which permits such changes to be made very easily and quickly. The compressed zip file also includes the HEX file for those just wanting to build the VFO and directly program their ATmega8L.


I built the VFO using a prototyping board. There are so few components required that it all went together in an afternoon. The microprocessor and DDS module are both socketed. The ATmega8’s socket is located in the centre of the board. This is straddled by the parallel socket strips for the DDS module. The stripped-down USB car charger board is positioned at one end, and the LCD is wired along one edge. The entire assembly was then mounted behind the Lydford’s front panel.

Wiring under the board
 Figure 5 : The underside of the board shows the wiring method used in the prototype.

Almost all of the wiring is done using thin (34 SWG) single conductor enameled copper wire. The wire’s coating evaporates when soldered and permits very fast, robust and compact wiring of such boards. I’ve used the system for years, and it’s proven to be very reliable. The wire and the “Verowire” pen used to hold and apply the wire, and the wire spools in various colours, are available from various sources, as well as the manufacturers. Some power  and ground wiring is done with heavier (28 SWG) bare copper wire, insulated solid core wire or with offcut component leads.

usb charger regulatorI extracted the PCB from inside the compact USB vehicle charger and removed the USB connector. I then trimmed off a couple of unnecessary corners off the thin PCB.

I then made some changes to improve its efficiency (The full details can be found here on my website) and then mounted it at one end of the prototype board. I retested the +5V charger output before finally inserting the programmed ATmega8L and the DDS module.


Connecting the DDS VFO to the Lydford Transceiver

Figure 6 (below) shows how the DDS VFO was connected to the Lydford’s oscillator chain. Only a few changes are required to the Lydford, and all are easily reversed. (The test points shown i.e. X, Y, Z, D, F and G, are those used on the original Lydford schematic, layout diagram and PCB)

First, remove coupling capacitor C11 (150p). Connect the DDS VFO’s output to  the gate of TR2A. The VFO output is DC isolated so no additional coupling capacitor is required here. Connect the VFO output ground wire to a nearby ground on the topside of the PCB.

The Lydford’s original analog VFO is turned off by simply removing L1.

mods for Lydford for dds vfo
Figure 6 : Connecting the DDS VFO to the Lydford transceiver requires very few modifications

The sine wave output of the AD9850 DDS module is used. I did briefly try using the square wave output which is also available on the module. I connected this directly into the input of the 74HC74 (Pin 3). However, this DDS output does not go through the low pass filter on the module. The result was an increased level of spurious products. I changed back to the lower amplitude sine wave output which is LP filtered, and the problems went away.

Since the distance between DDS VFO and the Lydford PCB was quite short (See the photo below), I used a pair of stranded insulated hookup wires for the VFO connections, one wire for the signal and the other for ground. The DC supply for the on-board USB regulator board was wired directly to the rear panel DC connector for the transceiver.
When this wiring has been completed, turn the transceiver on and check that the divider output going to the first mixer (IC3) on test point G (pin 9 of the 74HC74) is a square wave at the correct frequency.

Parts List and Sources

Since the biggest problem is always locating the required parts, here’s a list of where I found the parts in this VFO. These sources are all in the UK because that’s where I happened to be visiting at the time and similar components are available from the usual European and US sources.

table 2
Table 2 : These details of where some of the components were purchased may be useful

Components from Rapid Electronics, Maplin and Spiratronics may all be purchased over the Internet.

I’ve not included details of the RIT pushbutton switch in this list. That choice is usually determined by your front panel layout. Any momentary pushbutton is fine.

Future Development

Since a divide-by-4 chip gives such a useful improvement, I plan to try a divide-by-32 device to see if the potential 30dB improvement in phase noise can be achieved. The VFO output of 1MHz in the 40m Lydford transceiver would require the DDS to run at 32MHz, but that’s well within its capabilities as well as the specified range of most 74HC dividers.

Time to get the soldering iron out again.


Lydford DDS VFO Software (BASCOM source and HEX files):

Want to go back to the main page? Click here to return directly.