Testing an AD9850 DDS module

For some RF tests I sometimes need to generate different higher frequency signals than normally available from general purpose function generator. For this purpose I bought a cheap AD9850 module to generate different frequency RF signals. This AD9850 module can generate frequencies in 0-40 MHz frequency range (sine wave output).


For initial testing I successfully used instructions and code for web page Testing an eBay AD9850 DDS module with Arduino Uno.

Arduino Pin 8 - connect to AD9850 module word load clock pin (CLK)
Arduino Pin 9 - connect to freq update pin (FQ)
Arduino Pin 10 - connect to serial data load pin (DATA)
Arduino Pin 11 - connect to reset pin (RST).

Testing an eBay AD9850 DDS module with Arduino Uno page notes that there are super inexpensive DDS modules being sold at cheaper price than you can buy the 9850 chip by itself. To get any output from one of these you need to send 40 bits of data to the chip. It’s all explained in the official Analog Device datasheet.

I successfully used the provided example code for AD9850 on a UNO prototype shield, and testing it in single frequency mode. The code had simple function call sendFrequency(10.e6); to set frequency. I tried several frequencies and got what I expected on my oscilloscope/multimeter.

Instead of using proto shield I just wired the module directly to Arduino. Example code worked well, and I could generate different frequencies easily by changing frequency in frequency setting function call. I only tested generate one sinewave frequency output mode (The module can output sine wave, square wave, two sine wave and two square-wave output). I got sinewave from ZOUT1 and ZOUT2. The module gave also square wave output from QOUT1 and QOUT2 (the trimmer on the board controls signal pulse width).


I tried and it works like i expected. It works very well.

Link to page where to buy: AD9850 DDS Signal Generator Module 0-40MHz IC Test Equipment


Some related links:

Testing an eBay AD9850 DDS module with Arduino Uno – good instructions to get started

Build Your Own Antenna Analyser for under $50 – measurement instrument based on AD9850 DDS module

Arduino Antennen Analysator – DG7EAO – another antenna meter design that uses AD9850 DDS module




  1. Tomi Engdahl says:

    HomeBrew AD9850 Arduino DDS VFO on the Cheap!

    HomeBrew DDS VFO built using AD9850 DDS module, Arduino processor, & Backlit LCD display all for about $25 bucks. Uses open source Arduino code & junkbox enclosure & small parts.

  2. Tomi Engdahl says:

    experimental radio test – USB controlled SDR with SA612 and AD9850 DDS

  3. Tomi Engdahl says:

    Interactive Design Tools: Direct Digital Synthesizers : AD9850 Device Configuration Assistant
    An applet for calculating codewords and harmonics images in the AD9850 DDS Synthesizer.

  4. Tomi Engdahl says:

    Interesting looking project:

    Bode plots on an oscilloscope

    The basic idea behind [Dave Jones]’ impromptu Bode plotter is to configure a frequency generator to output a sine wave that ramps up over a period of time. Feed this sine wave through a filter, and you have amplitude on the vertical axis of your ‘scope and frequency on the horizontal axis. Boom, there’s your Bode plot.

    [Andrew] did [Dave] one better by creating a small circuit with an Arduino and an AD9850 sine wave generator. Properly programmed, the AD9850 can ramp up the frequency of a sine wave with the Arduino outputting sync pulses every decade or octave of frequency, depending if you want a linear or log Bode plot.

    Bode Plot on an Oscillscope

  5. Tomi Engdahl says:

    Arduino DDS Shield

    I represented the DDS module as a component in Eagle

    The module only took up a small fraction of the available area on the shield, so I added a couple of dual flip-flops to generate a quadrature squarewave output for future games

  6. Tomi Engdahl says:

    Arduinofied QRP radio beacon

    [m0xpd] is back again, this time using the AD9850 DDS module as a radio beacon with an Arduino.

    Arduino Beacon

  7. Tomi Engdahl says:

    Project to look at:

    0-40Mhz, Sine wave generator for $25

    With only 4 control wires we can control the board via the arduino. This gives us a variable sine wave generator that we can control to give us a very nice sine wave from 0 Megahertz up to around 40 Megahertz at almost a full volt peak to peak.

    I decided to use a $7 LCD keypad to give some on screen visual indication of the frequency plus a means of controlling the frequency quickly and easily.

    The code to upload to the Arduino, can be relatively straight forward.

    0-40Mhz, Sine wave generator $25.

    I decided to use an LCD keypad to give some on screen visual indication of the frequency plus a means of controlling the frequency quickly and easily.

  8. Tomi Engdahl says:

    This looks like

    AD9850 useful test sketch for Arduino(-s)

    Serial comms – 9600, NewLine (0x0A) denotes end of input,
    f 10000 – set frequency
    s 20 20000 10 1000 – sweep from frequency to frequency using this step size in that many milliseconds
    o 10 10000 5 3000 – oscillating sweep from frequency to frequency and back using this step size in that many ms

  9. Tomi Engdahl says:

    Other projects:

    A simple library for arduino to control an ad9850 DDS synthesizer

    DDS-AD9850 + Open oscilloscope – Lxardoscope

    Here we will show you how to control AD9850 module by Arduino, and then show the output wave by Lxardoscope, which is an Arduino based oscilloscope for Linux, using the Xforms library.

  10. Tomi Engdahl says:

    Some measurement on the module:

    For sine wave output the outputs seem to have around 0.5V amplitude and around 100 ohms output impedance.

  11. Tomi Engdahl says:

    EZAD9850 Library

    The EZAD9850 Library will get you up and running on the Arduino with inexpensive AD9850 based frequency generator modules.

    This Arduino library makes easily available control of an AD9850 module’s frequency and phase as well as starting and stopping frequency generation. Useful for a variety of radio projects and as a sine-wave generator. Operates from 0 – 40 MHz.


Leave a Comment

Your email address will not be published. Required fields are marked *