SparkFun will be closed Nov 26th and 27th for the Thanksgiving holiday. Orders placed after 2:00pm MT on the 25th will ship out Monday the 30th.

Creative Commons images are CC BY-NC-SA 3.0

$ 29.95

added to your
shopping cart

In stock 71 in stock
29.95 1+ units
28.45 10+ units
26.96 25+ units
25.46 100+ units

Description: The Spectrum Shield enables your Arduino with the capability of splitting a stereo audio input into 7-bands per channel. You can then read the amplitude of each channel using the ADC on your Arduino allowing you to control everything from LEDs to motors, pumps to relays, or even fire, all with sound. With this shield you will be able to have almost any project be able to react to music or sound!

The Spectrum Shield features the MSGEQ7 graphic equalizer display filter. Two of these ICs allow you to split a stereo audio input into 7-bands (per channel) and read the amplitude of each using the ADC on your Arduino. The shield is populated with two 1/8" stereo jacks (like you would find on a pair of headphones). One serves as a stereo input and the other is a pass-through output which allows you to connect the Spectrum Shield in-line between your audio source and your stereo system without interruption. This revision of the Spectrum Shield has been updated to the Arduino R3 layout but still requires you to solder on your own headers (check the Recommended Products section below). This shield can be used to create sound visualizers, detect patterns in music or add sound activation to your microcontroller projects.

Note: This product is a collaboration with Ben Moyes of Bliptronics. A portion of each sales goes back to them for product support and continued development.


Recommended Products

Customer Comments

  • Hey Gang, the shield I recently received had the Reset pin on D5, not D6.

  • I wish I could return it. Reset pin on 5 instead of 6 so if you are trying to follow examples, good luck. Ridiculously noisy. Don’t buy this thing. Not worth $10, much less $30.

  • This shield puts the FUN in SparkFun! (Sorry)

    Wanted to share code for newbs like myself who found the examples didn’t work quite like I was expecting. This code uses the same board / LED configuration as SF example, but produces more of a peak level meter.

    A good tip from the linked github repository points out that the A0 and A1 pins are reading left and right channels. The code grabs all 7 frequencies from both channels, adds them up, and lights more LEDs the higher the number.

    One code mod to try is lighting all LEDs just on the highest sum which will typically cause the lights to strobe to the beat. You may need to adjust thisSum ranges according to your card / audio source.

    This sketch acts like the old peak level indicators
    on stereo equipment. 
    //Declare Spectrum Shield pin connections
    #define STROBE 4
    #define RESET 6
    #define DC_One A0
    #define DC_Two A1
    int Spectrum[7];
    int thisSum;
    byte Band;
    void setup() {
      //Set LED pin configurations
      pinMode(7, OUTPUT);
      pinMode(8, OUTPUT);
      pinMode(9, OUTPUT);
      pinMode(10, OUTPUT);
      pinMode(11, OUTPUT);
      pinMode(12, OUTPUT);
      pinMode(13, OUTPUT);
      //Set spectrum Shield pin configurations
      pinMode(STROBE, OUTPUT);
      pinMode(RESET, OUTPUT);
      pinMode(DC_One, INPUT);
      pinMode(DC_Two, INPUT);  
      digitalWrite(STROBE, HIGH);
      digitalWrite(RESET, HIGH);
      //Initialize Spectrum Analyzers
      digitalWrite(STROBE, LOW);
      digitalWrite(RESET, HIGH);
      digitalWrite(STROBE, HIGH);
      digitalWrite(STROBE, LOW);
      digitalWrite(RESET, LOW);
    void loop() {
      thisSum = 0;
      // Read in all 7 channels into array
      for(Band=0;Band <7; Band++)
        Spectrum[Band] = (analogRead(0) + analogRead(1) ) >>1; //Read left then right channels then average by dividing by 2
      // Add up the sum of the output
      for(Band=0;Band <7; Band++) {
        thisSum += Spectrum[Band];
      // Light LEDs according to sum
      // Noise level seems to hover just under 550
      if (thisSum > 550) { digitalWrite(7, HIGH); } else { digitalWrite(7, LOW); }
      if (thisSum > 600) { digitalWrite(8, HIGH); } else { digitalWrite(8, LOW); }
      if (thisSum > 700) { digitalWrite(9, HIGH); } else { digitalWrite(9, LOW); }
      if (thisSum > 800) { digitalWrite(10, HIGH); } else { digitalWrite(10, LOW); }
      if (thisSum > 900) { digitalWrite(11, HIGH); } else { digitalWrite(11, LOW); }
      if (thisSum > 1000) { digitalWrite(12, HIGH); } else { digitalWrite(12, LOW); }
      if (thisSum > 1100) { digitalWrite(13, HIGH); } else { digitalWrite(13, LOW); }
  • Is there any reason why you chose pin 4 & 6? I dont see any real logic for this decision. Just asking because I am coding an MSGEQ7 Lib with examples. And those examples should work with the shield as well. Was there any intention behind this?

    • I have a similar question about the reset pin (pin 6). Pin 6 is one of the PWM pins but this would seem to take it out of the running for use driving something that needs PWM.

  • Is there any update on when this will be back in stock?

  • I’ve been working with this version of the spectrum shield for a few weeks now and I’ve noticed something. Both equalizers return values on each of the bands when there is no input ( < 100 ). This happens both when there is no audible signal coming over the input line and when there’s nothing plugged in to the input line at all.

    Is this an expected behavior?

  • Nice to see that this product lives on (=gets updated). :-)

    I still don’t understand why you have two jacks for “passthrough” when a simple 3.5 mm stereo splitter is a rather cheap and flexible solution. It would possibly make sense if you had some sort of “jumper” so that you could separate them and one as input and the other as modified/filtered output based on your own MSGEQ7 code but as far as I can see there are just straight traces between the two jacks.

    IMHO a compact MSEQ7 breakout board would probably be more convenient in several cases (compact speaker builds etc).

    It would be very convenient to either have a small board with the necessary MCU pins in one end, audio “LGR” pins in the other end and two MSEQ7 chips with checked/“tuned” support components in the middle OR a similar compact board with a single 3.5 mm jack in the “audio” end and all 8 pins (VCC, GND, Reset, Strobe, AnalogOutL, AnalogOutR, AudioInL ,AudioInR) on the other end.

    That way you could use it as a slightly longer but much smarter version of the 3.5 mm jack breakout board.

    • The extra stereo jack adds around $0.10 to the cost of the board, and it useful for those not having a splitter lying around. It is good that it was kept. There are compact breakout boards available (Google is your friend). I think this is the only Arduino shield though.

  • hello, I am working on a project using the spectrum shield to have leds react to music. The sprectrum shield has an input and an output, one for the speaker and one for the stereo input from phone. Question is I want to use a Bluetooth speaker so we can send the music wirelessly through phone, will it work like that? so the input jack wont have an input

  • Just thought I’d share this: On my shield, Pin 6 is not connected to anything at all! Reset goes to Pin 5, I repeat Pin 5!! It has taken me a year to realise this and explains why I haven’t been able to make it run through less than the seven bands. I’ve checked the board thoroughly and I’m afraid, Sparkfun, it’s not me that’s mad. Just wondering how this passed your testing? So countless people out there are carefully timing the reset when there is nothing connected to it - how mad is that?

  • When do you expect these back in stock?

  • Got mine a week ago but having problems audio out - the audio doesn’t sound right when it pass through the shield. Tried different 4 male to male audio cables (cables them self work fine), different audio source and headphones/speaker. Also tried it with power on and off. seems like something wrong with the shield I got :(

    • We discovered an error in the PCB on these that is causing the issue you’re describing. The ground on the input jack is not connected to the rest of the board. If you connect the pin on the jack closest to “UT” in the word “<– Input” to either “Audio In, G” or the same pin on the output jack this will correct the problem. A revision is in the works to permanently fix this. If you have any questions, email us at techsupport@sparkfun.com.

      • Cool….so you definitely didn’t even remotely try to test this device before you started selling it. I mean, I make mistakes like this on boards all of the time, but plugging it in and making sure it functions tends to bring those kind of issues to light.

        When it’s back in stock, will those boards be the updated version?

        • We test every single board, but unfortunately in this case, our test bed is not capable of catching this particular error. All the affected boards were pulled from stock once this issue came to light and that’s why they are currently on backorder. If you have one of the affected boards, please email us at techsupport@sparkfun.com and we will take care of you. All new stock will have this problem corrected.

  • Looking at the schematic, C1 and C3 are given as 1,000pF. When I look at the data sheet (http://www.mix-sig.com/images/datasheets/MSGEQ7.pdf) the values are given as 0.1uF (100,000pF). It seems like this deviation may mean some of the sharper volume peaks are missed? I could be wrong …

  • I see you’re using the SMD version of the MSGEQ7. Will you be selling them?

  • Has anything changed from the previous version besides the header layout?

    • General production upgrades to improve the quality to all users. Also, there’s now a shiny new hookup guide ;)

Customer Reviews

3 out of 5

Based on 2 ratings:

5 star
4 star
3 star
2 star
1 star

1 of 1 found this helpful:

Noisy Junk - Worst $30 ever spent

I am very disappointed in this board. There is so much that needs to be done in software to eliminate the noise and then artificially inflate the input readings that this board is nearly useless for anything other than maybe giving four or five levels of actionable values. I’ve read in many other places that there are much better ways to hook up and utilize the MSGEQ7’s. Do yourself a favor: since this board requires some soldering anyway, spend a couple bucks and get the IC’s themselves and a couple other components and build something yourself. Skip this dud. I will be desoldering my Teensy from this board ASAP. I heartily wish I could return it.

Hi, Please drop us a line directly. We’ll be happy to work with you on this. Thanks - https://www.sparkfun.com/returns

Does its job well

Nice little board that does a specific thing (reading stereo audio levels over 7 different frequency ranges) very well. Easy to use with an Arduino, and the shield has enough room to mount a pro mini board right on it. The audio in and audio out is a nice feature (allowing stereo audio through).

Related Tutorials

Spectrum Shield Hookup Guide

March 24, 2015

Want your project to react to music? Then the SparkFun Spectrum Shield is the product for you! Get going in no time with this Hookup Guide.