Introduction: AVR Acoustic Spectrum Analyzer

AVR acoustic spectrum analyzer, based on Atmega8 AVR microcontroller, operational amplifier, and few other components. Use any HD44780 compatible LCD or VFD, connect audio signal, and enjoy the effect :) You can build in this into your amplifier, pc, car-audio, or other device. On this moment device support following displays: 16*2, 20*2, 24*2, and 20*4. If you have one which this device not support, please contact me and i will try to adapt code for it. There are two pcb's which exactly fits behind the display, one for the 8*2 connector displays, and one for 16*1. You can attach a small keyboard to change display brightness (vfd also supported), change sensivity, choice the display effect. Settings are saved to the eeprom memory.

Project site:

And here is how it works on 20*2 VFD

"czulosc" and "janosc" are in polish, they means "sensivity" and "brightness" :) And they can be changed :)

Step 1: Make Board

Use the eagle project files or PDF's to make a PCB, choose 16*1 or 8*2 connector depending on your display. There is also top layer with components values. See schematic for part list. You can connect a small keyboard to 5pin connector, there is no pcb for keyboard, just use 5 buttons and connect all to the ground.

Step 2: Program the AVR

First of all you need to program your AVR with code from the attachment, if you are using 16*2 display you need to flash the 16*2 version code, etc. Use any avr proggramer. You will need to setup fusebits as shown, for example on burn-o-mat, the avrdude GUI. You need to set the external crystal 16MHz, and activate the CKOPT fusebit. That's it.

Step 3: Connect Audio Signal

There are 3 ways to connect audio signal:

a) Signal ground to “Agnd” on board, in this case analayzer ground and audio ground can not be connected together.
b) Analyzer can be powered symmetric, +-2.5V, “Agnd” will become power ground and audio ground.
c) If analyzer and our output device grounds must be connected together, and there is no way to power analyzer with symmetric supply, you must somehow raise signal to 2.5V height. You can do this by connect the grounds together, raise the signal up with R/R resistor divider (about 100Kohms) connecting them between gnd and supply, signal through 1uF capacitor to resistor divider and then to IN pin.

Step 4: Fast Calibration

You will need a “function generator” program, i use “FG Lite” (on download page). Connect and power-up analyzer, sound connect to line-out of your pc card, ground to Agnd. Attention – grounds can not be connected together! Function generator set to sine, frequency about 400Hz, gain at about 80%.

Left potentiometer set so that was leaning out just one bar (eventually two, depends on frequency), highest as possible. If gain be too large, you will see other leaning out bars – this is bad. Now, change generator frequency to 10KHz, and right potentiometer set in the exactly same way. Done.

Step 5: Precision Calibration

Or, you can make the precision calibration...

You will need two programs “function generator” and a “oscilloscope”. I use “FG Lite” and “Oscilloscope 2.51 for windows 95″ (on download page). Learn the basics of using a oscilloscope, how to setup line-in of your pc audio card, how to set a input gain of audio card and oscilloscope so that there was no overdrive – i will not describe that here – if you do not have an idea on what i am talking about, just make the fast callibration.

Function generator set to sine, frequency 5KHz, gain at about 80% (on picture there is 400Hz, don’t mind that).

Left potentiometer turn right to the end, connect line-in of your pc audio card to RED point.

3rd image show how should look a proper clean signal

And 4th image show how look a overdrien signal with tops cutoff

If potentiometer is turned right to the end and despite that signal is overdriven, you will have to reduce signal from your pc, or, if nalayzer will be working in other device, you will have to add R/R divider or extra potentiometer to reduce the signal strength to proper value. If the signal is nice and clean, try to raise it a little bit by turning the potentiometer in left direction – but do not overdive. Do the same with the right potentiometer and GREEN point. Now, connect your pc audio input to BLUE point and then to YELLOW to check if signal is ok. At the end check if low-pass filter is working corectly, connect your pc audio line-in to YELLOW point, and slowly move the frequency slider from left to right, signal should vanish near 800Hz – 1KHz.

Step 6: Jumper and Other Options

Components used in filter must be exactly as on schematic, and better if they will be new, especially capacitors. Two 470ohm resistors that makes the 2.5V reference voltage must be similar as possible. Some of avr’s (especially the new ones produced after 2008) are not susceptible to overclocking very good… program overclocks BADLY the ADC while measuring the high band signal. If you can’t see anything on the right side of display, this means that your ADC is not working. Solder the LOW PRESC jumper to reduce frequency of ADC, it will apply prescaler 4 instead of 2. If you are using VFD, solder the VFD jumper to send special brightness regulation commands instead of controlling PWM output. This can not be used together because the LCD wrongly recognize this command and its start to be unusable.

I am the author of hardware and part of the software, author of software is Hunterhouse user.

Source codes are included

All needed files are in the attachment. I know my english it's not too good, so ask if something is unclear.

Good luck!

Oh, and if you want fast response to your question, please ask in comments on my site or contact me.

ATTENTION ATTACHMENT WAS UPDATED. Previous contained a little bug in programms.