Saturday, July 23, 2016

Yet another Arduino and AD98xx DDS Project


These days Arduino Nano boards are as low as $3 each and AD9850 or AD9851 DDS modules can be found in the $5 to $15 range, so the temptation to do something with them is strong. The question is, what is that "something"?

Like most homebrewers, I have DDS units coming out my ears. But I could think of a few specific things I'd like to have in this implementation:

1) Battery powered to make it portable and easy to grab and use with a minimum of fuss.

2) Sealed up as tightly as possible. A current DDS unit I have leaks so much signal out via the power and USB cables and slipshod case that I can't hope to attenuate the output way down for small signal receiver testing.

3) A minimal user interface - no display, PC connection or rotary encoder. This is partially in the interest of compactness, partly to minimize signal leakage and partly just for the challenge inherent in designing such a beast.

4) Lots of bells and whistles as long as they're consistent with #3 above. One model is my Elecraft XG3 signal generator, which has some nice bits above and beyond its basic functions.

First a little about the hardware. Jim Giammanco N5IB was really the guy who kicked me off on this project with his DDS and Arduino Nano Experimenter's Board. It's a very nice board designed to handle the interconnections, power distribution and filtering for an eBay DDS module with an Arduino Nano in a stacked configuration. Unused pins are brought out for the programmer to play with.

Info on the Experimenter's Board is found on the PHSNA Yahoo Group site and also on Jim's page linked here:

 http://n5ib.net/Index.xht

User interface

The user has to be able to communicate with the system and vice-versa. I went with three little SMT pushbuttons for user input and with a miniature speaker for the system to talk back via Morse code. So the ham who is fluent in Morse is at a bit of an advantage with a UI of this nature.

In its simplest, top level operation, the user taps switch S1 to have the frequency announced and S2/S3 to step the frequency Up/Down.

But we want to be able to do a lot more so a menuing system is needed. I went with a system I'd seen in Steve Weber's ATS-3 transceiver and in the NORCAL / Dan Tayloe Stinger Singer frequency counter. The user holds S1 down and the menu options are played in a loop, a single letter for each option. The switch is released after the desired item is heard.

Features & functions


  • Tap a button to have the frequency announced in Morse
  • Tap Up/Down buttons to step the frequency. Hold for rapid stepping.
  • Change frequency step size, 1 Hz to 1 MHz in 10x increments
  • Change bands. Step through ham bands 160, 80, 40, 30, 20, 17, 15, 12 and 6 meters.
  • RF On/OFF - can turn off RF output without powering down the unit
  • Send CW - a test CW message is sent repetitively via the RF output
  • Send RTTY - a test RTTY message at 60 WPM, 170 Hz shift sent repetitively
  • Save current frequency to scratchpad EEPROM memory
  • Return to frequency stored in scratchpad EEPROM memory
  • Announce power supply or battery voltage in Morse (audio)
  • Update (save) current frequency / band & step to EEPROM so subsequent start-ups will start there.
There's also continuous battery monitoring and a low battery alarm if it drops below a threshold.

Power supply

The experimenter's board has provision for an LM7805 regulator and the Nano board can also accept 12 V supply voltage and use it's on-board regulator. But after exploring various battery options I decided to go with six (6) NiMH AA cells, which gives me a supply range of about 6.3 V to 8.4 V.  I definitely wanted batteries because opening and closing the box with wires running everywhere isn't fun.

I decided to go with a buck switching module with 5 Volts output as can be found on eBay for a dollar or two apiece. This one is the size of a postage stamp and is about 89% efficient. It doesn't drop out until the input reaches < 5.5 V. So I'm operating both the DDS and the Nano board from 5 VDC. I was surprised that my current draw was only 100 mA with this system, so I can get about 18 hours of operation from my 2000 ma-hr batteries. I put a 2.1 mm charging jack on the back of the box.

Here's the regulator:


And here's the box with the Arduino / DDS stack on one side and the batteries and regulator on the other:


I wanted to use a die-cast box but didn't have one the right size so I used a Radio Shack aluminum box that is reasonably tight and overlaps on most of the edges.

Trying it

One of the first things I wanted to do was to box it up, put on a 50 ohm terminator and see if I could hear it in my K3 with my big ham antennas connected. I could not hear it at all on 40 or 20 meters. On 6 meters I hear it faintly, but it doesn't move the S-meter. Of course, plugging two or three feet of wire into the BNC makes it loud and clear in the receiver. I'm not sure if I'll be able to attenuate it down to 1 uV with external attenuators or not. We'll see. But S9 shouldn't be a problem.

Some specifications

The output is a sine wave of about -7 dBm into 50 ohms which of course varies a couple dB over the wide frequency range.

The frequency range is 1.8 to 54 Mhz. Actually, it should go to 60 MHz and I found on the lower end I could go to 100 kHz before output dropped too much. A larger coupling capacitor should help those interested in going all the way down to audio. Oh, there's a transformer too, so more mods would be needed to emphasize audio frequencies.

My unit uses an AD9851 module. It can be built with an AD9850 module which would put the top end somewhere above 30 MHz. BTW, I followed the PHSNA hardware guidance and replaced the filter on the DDS module, said to be inferior, with an external one.

What's good, what's missing?

I said I used the Elecraft XG3 as a model. A big advantage it has is internal attenuators giving you four selectable output levels of -107, -73, -33 and 0 dBm. Switchable internal attenuators was more than I wanted to take on at this time.

But the XG3 can't tell you what frequency it's on.  It has band indicating LEDs but you have to jot down actual frequencies or use the USB to PC interface and software to be reminded of what they are. Also, it does not allow adjusting the frequency in steps.

The XG3 has a square wave output. It's credited for giving harmonic marker signals up into the GHz range. But I didn't really like the square waves for stuff I'm doing.

Where's the source code, schematics and other good info?

I put the source code and a "user's manual" kind of document in the files area of the PHSNA group.



And Jim's PDF describing the experimenter's board is found both there and on his site, linked earlier.

For those who don't want to sign up for the PHSNA group, I'll be glad to email the files or make them available somewhere else.

That's it.

Nick, WA5BDU
kennnick@gmail.com