For those of you who remember the eighties, this will no doubt bring back fond memories when every piece of audio equipment in the known universe was at the time equipped with a plethora of LEDs.

More specifically the ubiquitous Graphic Equaliser or 'Graphic EQ'.

This Instructable is centred around the MSGEQ7 to create a simple 2 Channel Graphic EQ (actually a simple spectrum analyser) and documents my first, poor attempt at using the Arduino Uno R3, the Arduino development environment and coding in 'C' for well over a decade.

To make the above the circuit you require no tools, a basic knowledge of electronics and the following parts/libraries;

  1. 3 off prototyping wires male/male connectors in the picture above (Red, Black and Green) to connect to the Light Dependant Resistor (LDR).
  2. 5 off prototyping wires male/female connectors again in the picture above (Red, Black, Blue, Green and Yellow) to connect to the 8x8 Led Matrix.
  3. 2 off 8x8 Led Matrices. From leading-star on Amazon. £1.90 (This was the price at the time of purchase, but I have noticed they are slightly more expensive, priced at £2.09 at the time of writing this Instructable).
  4. 1 off LDR. From Farnell.
  5. 1 off 22K Resistor. From Farnell
  6. 1 off Arduino Uno. From Proto-Pic £18.65. www.proto-pic.co.uk/arduino-uno/
  7. 1 off Spectrum Shield. From Proto-Pic. £22.25. www.proto-pic.co.uk/spectrum-shield/
  8. The Arduino LedControl library in Git Hub. https://github.com/wayoda/LedControl/releases

The circuit allows for the display of left and right audio channels. Seven of the columns of each 8x8 display represent a scaled analogue of the following frequency components present in the audio signal path at any transient in time.

16kHz, 6.26kHz, 2.5kHz, 1kHz, 400Hz, 160Hz and 63Hz

The data sheet for the MSGEQ7 can be found here; https://www.sparkfun.com/datasheets/Components/General/MSGEQ7.pdf

The last column represents a rolling average value of all the frequency components.

Audio is supplied to the Spectrum Shield via either of the on board 3.5mm Jack sockets, the other socket is used to route this audio to a speaker.

The circuit diagram for the Spectrum Shield can be found here; http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/Arduino/Shields/SpectrumShield-v14.pdf

The LDR is used to programmatically dim the 8x8 LED Matrix displays if the ambient light level drops to allow better contrast for the viewer.

Step 1: Detailed Design

The above picture shows how to connect up the rest of the circuit to the Spectrum Shield and the two 8x8 LED matrices. There is a copy of the Arduino sketch used to drive the display attached below.

Step 2: Tidy Up

This bit is for the more experienced electronics enthusiast and requires some specialist tools, such as soldering iron, pliers, snips etc.

Now the software was working I tidied up the circuit and committed to a veroboard design which fitted neatly on top of the stacked Arduino Uno and Spectrum Shield pair.

Finally I modified the pins on the 8x8 LED Matrices such that they were perpendicular to the circuit board and would be a push fit into the 0.1" pitch headers on the veroboard.

Detailed pictures above.

Step 3: Putting It All Together

The video above shows the fully assembled design using the veroboard assembly.

There are three tracks playing on the iPod.

  1. Right Channel Frequency Sweep
  2. Left Channel Frequency Sweep
  3. Some random music with a broad spectral density (shows more lights)

Oh, and I forgot to mention. I shamelessly ripped some code to show the scrolling text at start up, though I did make some minor changes swapping row for column due to the 90 degree orientation of the displays.

Scrolling source from here; http://tronixstuff.com/2013/10/11/tutorial-arduino-max7219-led-display-driver-ic/

Full copy of software attached below.

Step 4: Closing Comments

Though I finally settled on a design using the spectrum shield, more through lazy convenience than for any other reason, I had initially started out intending to construct my own circuit from scratch.

I have included this section for useful background information, in case you wish to go down the self construct not buy route.

Using the circuit show above, which is a slightly modified rip of the MSI Corp datasheet, I assembled a single channel Graphic EQ.

The attached a video (apologies in advance for the choice of music) shows the live display in action.

The top trace on the digital scope shows the trigger line from the Arduino to the MSGEQ7 and the bottom the clocked output from the MSGEQ7. The level of which is a scaled analogue representing the frequency content from 63Hz ... 16KHz.

Strictly speaking the code to control the MSGEQ7 need only issue the one reset pulse and continually cycle 7 pulses. In the end I settled for issuing a reset pulse each read cycle, mainly because it made the code easier.

Have fun.

<p>Hey I just found this instructable in my favorites. I totally forgot about it but I think this was part of the inspiration I had to build a graphic EQ of my own. So thanks for the post and here is mine from last month using a ESP8266:<br>http://whatimade.today/graphic-equalizer-using-esp8266-msgeq7-ws2812/</p>
<p>though led are $1.99 to $2.99 each from 1.9mm to 5.0mm per light.</p>
<p>they are much much muuuch cheaper bulk on ebay</p>
Do you have any recommendations for speakers to use for this?
<p>Hi, I cheated and used a Sonivo and WOWee one, both of which are mono, but powered and loud so suited my purpose. In reality any stereo capable speakers would do. You could use PC speakers. It really depends on what quality of reproduction you desire. </p>
<p>Pity it's a retired product (the Spectrum Shield). At least they sell the DIP version of the chip.</p>
<p>I know, I actually made this in Jan of '14. However, when I put the Instructable together I suspected this may be the case, so added the end section. Though I have seen some surplus stock available if you shop around. Or if you are really adventurous you could make your own PCBs as the Eagle files are available.</p>
<p>Ah the MSGEQ7 analyzer chip. a very fun chip of which i often wonder why i don't see many others around. beats having to wrestle with FFT/FHT and Bandpass filters.</p><p>I myself am working on a Spectrum analyzer based on the MSGEQ aswell. tough rather then use leds im planning to use a bunch of old IN-13 Neon bargraphs. Your Arduino code will help me nicely deal with a couple of quirks i'm stuck with atm so thanks for sharing!</p>
<p>You're very welcome. I do like the MSGEQ7, easy to use and everything on one chip. Ideal for the first time hobbyist. So many LEDs for so little effort. :-)</p><p>I have a couple of other projects for which I am carrying out DSP, though mainly image recognition using the Spartan 3 and 6 from Xilinx.</p><p>I look forward to seeing your Instructable in the future.</p>
<p>Not actually a graphic equaliser, but a bargraph display. An equaliser allows you to adjust the balance of the frequencies. This just displays them.</p>
<p>More specifically, a sprectrum analyzer - NOT a graphic equalizer.</p>
<p>Ah, such a strong reply and the use of capital letters an'all to vent your spleen, not quite what I had imagined to be in line with this site's 'be nice' policy being neither positive nor constructive. </p><p>In mitigation the manufacturers of said MSGEQ7 do indeed refer to the chip and I quote 'Seven Band Graphic Equaliser IC'. </p><p>My Instructable was merely a 'tongue in cheek' reference to the 1980s and how the electronic audio devices of the time had many LEDs serving no real purpose.</p><p>It was not in any way meant to mislead or cause the distress it clearly has, nor had I for one minute assumed it would evoke such passion. </p><p>If it helps 'fstedie' you are indeed quite right the MSGEQ7 actually a series of band pass filters with peak detection and if employed in an actual Graphic EQ would only form part of the device. The ability to selectively attenuate (I choose my words carefully) the same frequencies in the audio path being the other.</p><p>I have changed the text in the Instructable to reflect this fact. I sincerely hope this makes it all better again.</p>
<p>As others have said, this isn't a graphic equalizer, this is a spectrum analyzer. The two often go hand in hand, with the spectrum analyzer being a display, the Graphic equalizer being a device to adjust output levels of each individual frequency spectrum.</p>
<p>Cool project, but it's not a graphic equalizer. Graphic EQs have the graphic half and the filter/equalizer half. You've built a low res spectrum analyzer.</p>
Can you this build writing me please
Hello can you this build this is one ir jammer device is for bill acceptor send inrfomation to the bill acceptor writing me if this email please rewe.dekra@web.de
<p>Right, this is misnamed a bit. There is no equalizer function here at all. But it is a neat display.</p>
and BOOM! great job! :0)
<p>Brings back memories. Thanks for sharing!</p>
<p>You're welcome</p>
<p>This looks beautiful! I love the video showing the EQ in action. </p>
<p>Thanks, you were pretty quick off the mark, I had only just uploaded a minute before.</p>

About This Instructable




More by SteveQuinn:WiFi IoT Temperature and Humidity Sensor. Part : 8 IoT, Home Automation Using ESP8266 SPIFFS Expand your Arduino's I/O with an I2C Slave device 
Add instructable to: