Dismal Ebay AVR DDS Signal Generator

Months ago, I bought a $15 AVR-based DDS signal generator kit from eBay. I didn’t have high expectations, but I thought it would give me a capability I didn’t currently have, and give me the chance to practice soldering.

It was immediately clear upon opening the package that it was at least half a failure, because it was fully assembled. For this, I got a partial refund, making it a ~$10 fully-assembled DDS signal generator.

It sat a few months while I acquired, refurbished, diagnosed, and ultimately repaired a used Power Designs TP340A three output bench power supply that I could use to provide the +15, -15 and +5V needed to power it.

Once I had it powered up and hooked to the scope, it took me 5-10 minutes to figure out how the thing worked. The digital controls are a little odd, but easy to figure out. The outputs and analog controls are a little fussier. Ultimately though, I figured out that the leftmost BNC is for a high-speed square-wave output. The right BNC is for the synthesized DSS output, the leftmost potentiometer is for amplitude, the right for DC offset.


It didn’t take too much longer to see how badly this thing sucks. At first glance the 2 KHz  sine wave doesn’t look too bad

DS1Z_QuickPrint34If you look closely though, you see some consistent glitches. This thing generates an analog value by switching resistors using the AVRs GPIO pins. My guess is that this glitch is caused by one or more out of tolerance resistors.


Looking even more closely, you can start to see high-frequency noise. In his Youtube review (embedded below), Electron Update notes that this noise has a frequency of 1MHz and believes that this is probably noise from the digital section.

The 2KHz square wave isn’t too great. The rise and fall times are rather significant relative to the on/off times.


At 20KHz, the square wave is a sloppy triangle. Note too that the peak-to-peak amplitude is only 6.56v vs the 18.2 it delivers at 2Khz.


The “high speed” 20KHz sine isn’t very good either. The waveform is nearly identical to that of the 20KHz square wave, and like the square wave, the peak-to-peak voltage of ~6.6v is a fraction of the 17.8v excursion at 2KHz.

Of course, 20KHz isn’t really high-speed at all. Its at the top end of the human auditory range. The device actually supports up to ~65KHz. It doesn’t get better.  The truth is, the waveforms go to hell before 10KHz.


My device seems to be based on the AVR DDS signal generator V2.0 software and hardware from 2008, with minor revisions to the hardware for manufacturability.

Electron Update did a review/analysis of a similar device based on the same design on his youtube channel.

The design has some fundamental limitations, thought it isn’t clear if some of my problems are specific to my unit.