A DDS VFO for the Lydford 40m QRP SSB Transceiver
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.
IntroductionTemptation 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.
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
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
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
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.
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 : Chinese DDS Module Connection details
Possible Design Solutions
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
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
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
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.
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
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.
Figure 4 : The layered method of construction used in the VFO can be seen clearly here.
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
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.
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.
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.
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
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
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.
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
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
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.
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
Time to get the soldering iron out again.
Lydford DDS VFO Software (BASCOM source and HEX files): VFO40Lyd.zip
Want to go back to the main page? Click