The Arduino Audio Signal Generator


In the design or tuning of audio sound systems, there is no better analysis tool than a decent spectrum analyzer. These are available in a variety of forms such as standalone devices to PC based systems. Most Standalone halfway decent analysis systems worth anything cost at least $1500 used. PC based systems can cost over $100 for the software alone. Then one needs a calibrated electret measurement microphone. The final requirement is a waveform sound source with a flat response.

This is my Arduino based Audio Wave Generator with LCD display of frequency and function.

Itís capable of digitally generating or synthesizing sine, square, or triangle waves at up to 20 kHz at approximately 1Vp-p. The output is at a DC offset of Vcc/2. Neither the offset nor the amplitude can be varied.


  • Waveforms: sine, square, triangle (saw tooth).
  • Frequency rage 5 Hz to 23 kHz
  • Sweep from 5 Hz to the set frequency or from the set frequency to 23 kHz
  • Slow sweep ~30 seconds, fast sweep ~10 seconds
  • Anti-aliased output from a AD9837

This digital audio waveform sound generator is very flat over the entire range.

Since I already worked with Arduino based components, I decided to build this AG with an accurate frequency controlled synthsizer with an Arduino. I also programed the Arduino to perform several sweep functions. I can rotate the dial to select certain frequencies to analyze harmonics, peaks and dips, amplification and speaker performance, etc. For testing speakers, I use the electret microphone connected via a USB A to D microphone adapter to my tablet where a spectrum analyzer application is installed.


  Parts List:
Arduino Pro Mini 3.3V 16Mhz ATmega128 with 5V to 3.3V regulator
MiniGen Pro Mini Signal Generator 3.3V synthsizer to generate audio.
  Adafruit 4-Channel ADC Breakout ADS1115 16 bit to convert variable 10k pot (0 - 5v to 0 to 65535) for setting frequency.  The arduino only has 8 bit A to Ds or 0 to 255.
  27979-Parallax Serial Interface 1602 16X2 Character LCD Module Display 5V. 
  IPX/u.fl to BNC female bulkhead RF pigtail cable RG178 10cm 4"  
  10K Ω 10-Turn Precision BOURNS Panel Pot 
  SPST Button
  6.35mm Scale 3590S Dial Multi-Turn 10 Turns Potentiometer Pot Knob Cap HS7 
  On/Off Sub Miniature Small Mini Toggle Switch SPST 
  MP1484EN DC-DC Buck Step-down Regulator Converter 9V to 5V 96% efficient 
  6-AAA Battery Spring Clip Holder Case 
  Aluminum Project Enclosure Waterproof 115x90x55mm 
  1/4" Mini-toggle Switch Guard
  5.5x2.1mm DC Power Jack


What extrainious items include an FTDI Basic Breakout USB-TTL 6 PIN 3.3V MWC MultiWii Lite N105 to program Arduino.

Note. The MiniGen Signal Generator, a small shield for the Arduino Pro Mini, is capable of generating sine, square, or triangle waves at up to 3MHz, and approximately 1Vp-p. Though the MiniGen is technically a shield it can, in fact, operate as a stand-alone board capable of the the same functionality as it would if it were placed on top of a Pro Mini.

The MiniGen offers two out put sources for you to utilize: a 2-pin 0.1" spaced header and a u.FL connector. The output is at a DC offset of Vcc/2, however neither the offset nor the amplitude can be varied. By default, the MiniGen ships configured with a 3.3V regulator enabled and should only be used with 3.3V signals (or 3.3V Pro Minis if you are using this as a shield) unless the jumper on the back is soldered over to bypass the regulator for 5V use.