Building a spectrum analyzer with parallel processing


It’s the end of the semester for [Bruce Land]’s microcontroller design class at Cornell, and the projects coming off the workbench this semester look as awesome as any before. For their final project, [Alexander Wang] and [Bill Jo] designed an audio frequency spectrum analyzer using two microcontrollers in a parallel setup.

This spectrum analyzer takes an audio signal from an iPod, phone, or CD player through a 3.5 mm jack and displays the level for dozens of frequency bands much like an audio visualizer in iTunes or a nice car stereo display. To display these frequency bands, the spectrum analyzer first needs to perform a Fast Fourier Transform on the incoming audio signal. While FFT is extremely fast, the calculations are rather hardware intensive; calculating the frequencies and displaying them on a TV would be a bit much even for the ATMega1284 used in the project.

To graph the audio signal on their small display, [Alexander] and [Bill] broke the build up into two parts – one to do the math on the audio, and another to generate the NTSC video signal for the display.

As seen in the video after the break, the spectrum analyzer works wonderfully, and even though it only functions up to 4kHz, it’s more than enough to see what’s going on in most music.

Continue reading “Building a spectrum analyzer with parallel processing”

Giving the Rigol DS1052E ‘scope a spectrum analyzer

Like a lot of hardware tinkerers, [dexter2048] has a Rigol DS1052E oscilloscope sitting on his bench. One day when trying to coax some information out of the FFT setting, [dexter] threw his hands up in frustration and decided to write a file viewer with FFT spectrum analysis. The resulting viewer gives this very capable and inexpensive oscilloscope a spectrum analyzer.

[dexter2048]’s app is able to capture signals from 0 Hz to 500 MHz and demonstrated this fact by sticking a piece of wire into one of the Rigol’s inputs. The resulting waveform is then sent to a computer where [dexter] got a nice picture of the radio spectrum between 82MHz and 114MHz. In his graph, you can clearly see the FM radio stations that can be picked up in [dexter]’s lab.

This small modification to the Rigol DS1052E oscilloscope it the latest in a long line of hacks that give this wonderful, inexpensive scope double the bandwidth, data collection via Python, and even a homebrew version of Pong. Anything that provides new functionality for old gear is great news to us, and we look forward to many, many more 1052E hacks in the future.

Tip ‘o the hat to [Murlidhar] for sending this in.

Making an audio spectrum analyzer with a microcontroller

While [Vinod] says he’s not an expert in this sort of thing, we really like his audio spectrum analyzer build from a simple microcontroller and LCD display.

It is a well-studied fact that every audio waveform – a recording of your voice, for instance – is just the sum of many, many sine waves. These sine waves can be plucked out using Fourier analysis, using a Discrete Fourier transform. This is the principle that spectrum analyzers operate under; [Vinod] wrote a bit of code using DFT to take apart audio captured from a microphone and output their frequency on an LCD display.

To output the spectrum on his LCD, [Vinod] stacked horizontal bars up into 8 custom characters in his display. Like [Vinod]’s previous audio on an ATMega32 experiment, an LM324 amplifier is connected to the ATMega through an analog pin. [Vinod] has a very clever build on his hands with his spectrum analyzer, and a great answer to the perennial ‘how do I build a guitar tuner’ questions we’re constantly asked.

After the break, you can see [Vinod]’s spectrum analyzer in action. Be forewarned; you may want to turn down the volume.

Continue reading “Making an audio spectrum analyzer with a microcontroller”

Adding visuals to chiptune performances

If you’ve never been to a chiptune show – yes, they exist – you’ve noticed the awesome visuals behind the performers that are usually displayed with a glitching NES. If it’s a really good show, that 8-bit visualization will be in sync with the music and may actually serve as a lo-fi spectrum analyzer. [Andy] came up with his own visualization system for a Sega Genesis or Megadrive. With 16 bits behind his build, we’ll say if far surpasses the lowly NES.

For his visualization, [Andy] feeds audio into an ATMega328 and the ever-popular MSGEQ7 seven-band graphic equalizer IC. The output from the EQ goes straight to the second controller input of a Sega Nomad [Andy] had lying around that is running a custom ROM for his show. The ROM is programmed in tandem with the microcontroller project to serve as a spectrum analyzer for his shows.

You can check out [Andy]’s visualization with the chiptunes of Danimal Cannon after the break. We would prefer a demo featuring An0vA and the code for the microcontroller, but it’s still a very nice demo indeed.

Continue reading “Adding visuals to chiptune performances”

Character LCD spectrum analyzer made simple with a dedicated IC

[El Artis] just finished building an audio spectrum analyzer that uses a character LCD. The uses an Arduino to drive the display, but unlike other meters that use the microcontroller for analysis, [El Artis] is using a discrete IC for that task.

This project uses the MSGEQ7 graphic equilizer display filter chip to grab frequency data from the audio source. The chip connects to your microcontroller of choice using two digital pins and one analog pin. [El Artis] points us to [J Skoba’s] post about how to use it with an Arduino, then adds his own custom character routines for an HD44780 display. You’ll notice that there are sixteen bars in the image above, which conflicts with the 7 outputs the chip offers. [El Artis] averages neighboring values in order to add the extra outputs.

Don’t miss the demo video after the break. If you’re looking to use this part in one of your projects, we noticed they’re a little hard to find (octopart doesn’t return any suppliers) but SparkFun has them.

Continue reading “Character LCD spectrum analyzer made simple with a dedicated IC”

Spectrum analyzer users custom characters on an HD44780 display

[Camilo] built a spectrum analyzer to use with his audio system (translate). The hardware is quite simple, using an op-amp, microcontroller and LCD display. He chose an LMV324M low-voltage op-amp which connects to the incoming audio signal and feeds its output to the microcontroller’s ADC. In this case, he chose a Freescale microcontroller from the HCS08 family which is running at 20 MHz. This gives the project enough speed to properly analyze the incoming audio. He mentions that he’s following the guidelines set forth in the Nyquist-Shannon sampling theorem and using the Fast Fourier Transform when processing the samples.

This isn’t the first time we’ve seen a character LCD used as a display for a frequency analyzer. This other ATmega8-based rendition supported several different screen layouts. These displays have enough RAM to store eight custom characters. Each character is 5×8 pixels, lending eight levels to each character for a total of 16 for each column seen above. We love the simplicity of the hardware in the project but we wouldn’t mind seeing an additional potentiometer to fine-tune how the data is displayed on the screen to take advantage of its full range. See the project in action in the clip after the break.

Continue reading “Spectrum analyzer users custom characters on an HD44780 display”

Arduino Powered 2.4 GHz Spectrum Analyzer

[Fred] dropped a note in our tip line to let us know about arduino forum user [bilbo]’s latest project: A 3-in-one spectrum analyzer, oscilloscope, volt-meter combo. The build consists of an Arduino, radio board and Nokia 5110 LCD breakout board.  The (thin) video after the jump shows the rig in action. Though soldered to a full sized perf-board we can see later, smaller, battery powered versions prove useful in rooting out wayward bluetooth signals, or just finding that lost microwave oven. Although [bilbo] uses the same radio board as similar builds  his creation boasts several different display modes, as well as doubling as a volt meter and miniature-oscilloscope. There is no shortage of previous spectrum analyzer builds, but this one is the first one we have seen running on an Arduino.

Thanks for the tip [Fred]! If you feel like wedging some frequency scanning capabilities into your next project don’t forget to check out [bilbo]’s forum posts for source code!

Continue reading “Arduino Powered 2.4 GHz Spectrum Analyzer”