A lot of people have been contacting me about my Arduino and AD9850 VFO project. I never knew DDS VFO’s were so popular! Go figure? Anyways… I digress!
A couple of days ago Dave (WB4CHK) contacted me with a few questions. He was on a quest to build a daughter-card that would plug in as a shield to the UNO. After a few back-and-forth items Dave finished his project. Rather than let me explain I’ll just post what he sent me below:
Hi Rich: I finished the Sig Gen board and it works great. The board plugs into the UNO, I hate batteries so I added a 5 volt regulated supply for the board and a 9 volt regulated supply for the UNO. Might be overkill but I can hook it up to my 12V+ bench supply and run all day. The outputs are the two 2pin connectors just below the 9850 module. The one on the right is sine wave the one on the left is connected to the square wave output (if it is ever added).
He also sent over a few photos of the finished unit. Pretty cool! Note: You won’t see the Arduino in any pics but it’s there. In fact, it’s underneath the board in the 3rd picture.
Dave has been so nice as to also provide the design and schematics he used to create his PCB. You can download the PCB design’s here. Using a laser printer and the toner-transfer method you should be able to duplicate Dave’s work. If you have any questions Dave gave me permission to post his email so go ahead and send him a note: Davewb4(at)aol.com. Obviously replace the (at) with the @ and you’re on your way.
A little while ago I picked up an AD9850 DDS board. Basically, these are little boards you can pickup on eBay for about $10 shipped that can be programmed to output a sinusoidal wave from 1hz to about 40mhz. The output is about 1Vp-p and is fairly clean.
To drive these little boards you have to program them using either a serial interface or a parallel interface. You send over a couple of bits according to a code specified in the spec sheet and the AD9850 outputs the appropriate frequency.
I used an Arduino UNO board, LCD 16×2 display, and a rotary encoder to create a little all-in-one VFO. It can output the full range available to the AD9850 but I simply limited it to only 7.0-7.3Mhz in the Arduino code. I will be using the VFO as part of a DC receiver I am putting together for fun.
You can see a video of it in action here: http://youtu.be/r6nRMikOOmI
The code to drive the AD9850 is fairly simple, however, the hardest part I found was getting the large integer (frequency) split up into the appropriate numbers to display on the LCD screen. Some creative code fixed that problem. Full documents and discussion on this item is on the permanent page located here.