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.
There is a lot of coupling with the I/O and the audio input. If you turn on the LEDs in the example code for a certain length, you will hear this awful buzzing noise. It's worse when you leave the LEDs partially or fully on. One suggestion might be to use a wireless audio Bluetooth and send the audio signal remotely so that it is not affecting the output. Audiophiles will cringe at the buzzing... Maybe some decoupling capacitors might help with the audio signal if you are splitting or putting your signal through the shield..
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 15 ratings:
1 of 1 found this helpful:
After soldering a few of the Sparkfun Spectrum Shield's connections and connecting them to the Arduino, the source code was easy to write. Adding the SparkFun Electret Microphone Breakout to the Spectrum Shield allowed a voice analysis instead of an audio cable input analysis. The Spectrum Shield paired with the Arduino and microphone lit up LEDs that corresponded to the frequency calculated by the Spectrum Shield. Easy to put together and very efficient!
2 of 2 found this helpful:
An excellent and relatively easy way to enhance a project with a sound visualizer!
One item of note: In my application, my stereo did not have an unused audio output that I could dedicate to the Spectrum Shield. For want of a better option, I connected the Shield in parallel with the speaker channels. Powering the Arduino/Shield from the same power source used by the stereo created a noise in the audio (high-pitched whine from the speakers) due to how ground is distributed in this configuration. **I should emphasize that this IS NOT a problem with the Spectrum Shield, just a problem with the only practical way I could install it in my specific application. However, there are only so many ways the casual tinkerer will connect this type of device. I imagine that others might encounter a similar situation.
My solution (admittedly not a very elegant one) was to isolate the Spectrum Shield audio input behind a 1:1 transformer (the off-the-shelf part is called a Ground Loop Isolator, ~$10 from several bigbox stores), this removed all noise and had the added bonus of preventing the audio input from floating; creating a clean, silent, signal for the Spectrum Shield to analyze when audio source was muted. Audiophiles will be quick to point out that Ground Loop Isolators often dampen or block the lowest frequencies. So If you are using the Spectrum Shield to create precision instrument, this solution may not be for you. For what its worth, I didn't notice a difference in performance with the Spectrum Shield behind an isolator with my sound visualizer.
TL;DR: If your project requires that your Arduino share power and ground with your audio source, adding a Ground Loop Isolator between your audio source and the Shield's audio input may address noise issues in certain situations.
1 of 1 found this helpful:
I have a project in mind and the Spectrum Shield seemed to fit the bill. I am a newbie when it comes to an Arduino and C, but have been very successful with the Basic Stamp since 2002. I ordered everything needed for the initial LED project from Sparkfun. Once built you need 7 different tones in different bands. You can generate them here: http://onlinetonegenerator.com/ or I’ve got them in a zip file you can download here: https://snsemp.com/shield/ . Needless to say I wasn’t pleased when the supplied code didn’t work. Then I found this: https://forum.arduino.cc/index.php?topic=507766.0 . The author was able to print out a table for the values of the tones when played, the Spectrum Shield generated. You can download the comparison value charts I made, along with the final code here: https://snsemp.com/shield/ . Like I said I don’t know much about C but I can “back engineer” existing code. You will need to download a library ( https://github.com/NicoHood/MSGEQ7 ). I stripped out what wasn’t needed and added a few lines to bring the pins HIGH or LOW, and now when the tones are played it works like a charm. This is nothing fancy; it just turns on the corresponding LED when the tone is played. This is the first time I’ve ever programed an Arduino, just glad the Spectrum Shield’s circuitry was solid. All coding credit goes to the above folks. Now to replace the LEDs with relays.
3 of 3 found this helpful:
This board is really good at what it does. The 2 MSGEQ7s really work well. It is worth noting that the hookup guide is incorrect. The reset for the MSGEQ7s is tied to pin 5, and the strobe is tied to pin 4. I highly recommend keeping the input aux cable as short as possible to mitigate noise. When reading back data, all of the frequency bands settled to an Arduino analog value of ~60 with no signal (which is totally fine relative to the 1023 max value). Be careful to calibrate the imput volume level so you don't get clipping. I found that 100% volume on my computer clipped the middle values significantly. About 75% seemed to work great.
Thanks for the feedback - we updated the hookup guide to reflect that!
3 of 3 found this helpful:
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).
2 of 4 found this helpful:
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
all bands are almost equal (always) i have checked it with sound generator
Hello there! Sorry to hear you're having trouble. Send an email to us at email@example.com and we will help you with this.
I bought this for a Christmas light/music project. Using the Sparkfun supplied code in the hookup guide, it barely worked. Emailing with tech support, they didn't seem to understand what the code was even suppose to do. That surprised me, and left me with little confidence in Sparkfun products. Users have written code to help eliminate noise issues, and I'll try that code when I get some time. But read the comments and reviews before you buy this. It did not work for the example provided in the hookup guide.
The project space makes integration in my project clean and tidy. Exactly what I needed.
The workmanship of the shield is very good. Unfortunately, after 2 hours, one of the two MSEQ7s broke. Only one channel works like this. Very sad.
0 of 1 found this helpful:
Revised Original post Another poor buy, I had bought this board last year before the took them off the site to fix a problem with the old board. When this model came back online I was very excited to be able to build with it again. The only problem is once I bought it and set up my circuit, it only worked properly for about an hour. After this it began to have a heavy noise interference and not work properly. Very disappointed.
After talking to the people at Sparkfun we realized it was just something small and I was able to edit the code to cut out the extra noise that was causing weird effects on my project. It works now but just not to the full potential but it is working so that is good. I would buy it again but I would be more hesitant about it.
Pretty easy to use. Takes less than 15 minutes to set everything up and run. Have not encountered any noise issue like some folks mentioned.
This was exactly what I needed to add audio detection to my project. Sample code worked perfectly and sped up development. Thanks!
Very quick and efficient at what it does. Sparkfun has always made quality products and continues to make more!
This is a fantastic little board for quickly adding audio analysis to any music related project! I used this shield, along with an RFM69 wireless transceiver, to broadcast the readings to an LED cube I 3d printed. The linked hookup guide was easy to follow and quick to get started.
One small gripe did I had with this board was that analog pins 2-5, digital pins 2 and 3 (interrupts), and Tx/Rx are not broken out in the same fashion as digital pins 6-13. I used standard male headers to keep the footprint small, which meant I had to solder a jumper wire to any of those pins. If you plan to utilize any of those pins, I recommend using the stackable headers. Aside from that, this is a perfect little board.