Main Content

Arduino Uno DDS Audio Signal Generator

It is motivated by comments from members AhmedS419 and BeenThereD where we discussed the possibility of creating a stand-alone mode without the need for commands from a USB connected PC and GUI. In this Instructable I have modified the hardware and embedded software to provide both an independent stand-alone mode of operation, requiring only external power, and a PC connected GUI mode providing additional features. The project is now enclosed an a DIY Box. Why DDS? A basic Direct-Digital-Synthesis waveform generator outputs the amplitude corresponding to phase-values based on a phase_accumulator which is incremented by a phase_step at a frequency f_clock. Compared to other Waveform Generators using the Arduino uno which directly output amplitude values based on a time-step using a timer interrupt at 100 kHz the current design permits a f_clock of ~400 kHz. Based on requiring at-least 8 sample points per waveform-cycle the effective usable output frequency would then be f_clock/8 or 50 kHz, compared to 100 kHz/8 or 12.5 kHz. Additionally the DDS methodology provides a frequency-increment/setting-resolution for a 24 bit phase_accumulator of f_clock/2^24 or 0.024 Hz.”

Link to article