SparkFun MP3 Player Shield

The SparkFun MP3 Player Shield is an awesome MP3 decoder with the capabilities of storing music files onto a run-of-the-mill microSD card, thus giving you the ability toadd music or sound effects to any project. With this board you can pull MP3 files from an microSD card and play them using only one shield, effectively turning any Arduino into a fully functional stand-alone MP3 player! The MP3 Shield utilizes the VS1053B MP3 audio decoder IC to decode audio files. The VS1053 is also capable of decoding Ogg Vorbis/MP3/AAC/WMA/MIDI audio and encoding IMA ADPCM and user-loadable Ogg Vorbis.

The VS1053 receives its input bitstream through a serial input bus (SPI). After the stream has been decoded by the IC, the audio is sent out to both a 3.5mm stereo headphone jack, as well as a 2-pin 0.1" pitch header.

This shield comes populated with all components as shown in the images and schematic; but it does not come with headers installed. We recommend the Arduino R3 Stackable Header Kit.

  • 3.5mm audio out jack
  • 0.1" spaced header for speaker out
  • microSD card slot

SparkFun MP3 Player Shield Product Help and Resources

MP3 Player Shield Music Box

January 21, 2013

Music Box Project based on the Dr. Who TARDIS.

Vibe-O-Matic 3000

November 28, 2017

We attempt to emulate a car seat to ease a baby to sleep.

Additional Library Information

More information and troubleshooting tips for the MP3 Shield library can be found on one of the collaborator’s website here.


MP3 Shield Library Support Page

Some great troubleshooting tips and information about the library and its functions can be found on the Library Support Page


If you get a humming sound while connecting to an external amplifier

A good, cheap ground loop isolator for protecting the older MP3 Shield from ground loops when connecting to an external amplifier can be found at this link This should solve your humming and buzzing problems.


Core Skill: Soldering

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.

1 Soldering

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


Core Skill: Programming

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.

2 Programming

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


Core Skill: Electrical Prototyping

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.

2 Electrical Prototyping

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


Customer Comments

  • Is this shield able to play multiple sounds at one time? I need to create a musical keyboard, the clients budget is minimal, so can’t afford to buy wrong item.

  • Hello Sparkfun friends!

    I bought this shield, I need to amplify the sound so I followed the steps outlined in the hookup guide and tried to reconfigure the jumpers SJ3, SJ4 and SJ5 as is described on that document.

    When I tried to reconfigure the jumpers, SJ4 jumper contact went off the PCB. In addition when I suck the default blobs of SJ3 his track got up.

    You could give me a solution? Or I invested almost $ 40 to throw them away? I hope you can give me a solution. I use a soldering iron of 40W and I am always very careful when I work with my circuits, I swear to you it was not a misuse of the tools. Thanks.

    • Sorry to hear you’re having trouble!

      This may be repairable. Shoot an email over to tech support along with some photos of your board and we will see what we can do for you.

  • Sorry, new to embedded systems. Where do the General MIDI sounds come from? Are they onboard? If not, how does it find the waveforms? Can they just be on flash or do they have to be in RAM? And can I add my own waveforms? Thanks.

    • No worries. This IC fabricates the sounds directly. It’s not loading waveforms, it’s generating them mathematically. No RAM or flash needed. You just ask it to give you a C note from a Violin and it does its best to generate a Violin C. You can’t add your own instruments as far as I know.

  • Will the MP3 player be able to play multiple files at the same time? or perhaps a few seconds apart from one another depending on the input signal triggering the files to be played?

    Hope somebody could advice me on this!

    //Update: The music board that Sparkfun carries that can play multiple files at one time is the WAV Trigger: https://www.sparkfun.com/products/13660

  • Aaaarrrggghhh! I put this MP3 player on top of the DUE, and could not get it to work (2 weeks trying). I then bought an UNO, and it worked fine. The difference? The DUE defaults pin 4 as an input with a pull up. Pin 4 is wired to the GPIO1 on the VS-1053B, which (I think) was putting it in MIDI mode. From the datasheet: “If GPIO0 is low and GPIO1 is high, Real-Time MIDI mode is entered.”

    Setting pin 4 as an output, and driving low made it work!

    Hope this helps someone.

    • How did you get it to work? I had to go and comment out some lines in the SFEMP3 library (calls to cli() and sei(), disable and enable interrupts) before it would compile for a DUE, and now I get an error message running the test sketch saying that it can’t access the SD card.

      • I believe the SPI pins on a Due and Mega are different vs an Uno. You will need to connect the ISP connector on the Mega/Due to the 2x3 pin header on the shield.

Customer Reviews

4.5 out of 5

Based on 11 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Nice product!

This is a very nice shield for Arduino, it worked smoothly and I was able to connect play audio files with some push buttons.

Pros: Can play a specific audio track by calling its name, cheap price.

Cons: Separate pin headers, have to solder them, have to install 4 libraries, limited to only 9 audio tracks to be played. Audio tracks have to be of DOS 8.3 format, requires an SD card, and audio files must be stored on the root folder.

I created a full step by step tutorial on how to use and compared it to 1Sheeld’s music player shield.

Here is the link: http://1sheeld.com/1sheeld-vs-sparkfun-mp3-player-shield/

2 of 2 found this helpful:

easy, cheap, a little inconsistent, and a little noisy

Having purchased and built with 9 of these shields (7 from SparkFun, 2 from Mouser), I can confirm that they’re very easy to use and inexpensive for what they do. I had similar initialization problems as Member 873628 with my first shield (worked with USB, failed 50% of the time under external power) but I suspect that it was just a problem with that particular shield because none of the other 8 required any special delays in order for them to initialize properly. That first shield has since stopped working altogether, so maybe it was defective, I dunno. I’d also like to add that the audio is fairly noisy–sounds like digital noise bleeding into the analog output–so you will want to keep the fidelity of your playback system fairly low. I got one shield that sounded like it had excessive data req noise in the output, which was the first time I became aware that there was any unusual noise at all. It sounded like a 16mm film projector from the ‘70s. Switching to my good amp & speakers, I finally heard that all of the circuits had some degree of digital noise, although it was not noticeable on computer speakers for the most part. Some of the noise can be addressed by adding extra Vcc bypass caps. Bottom line: if it’s gotta work, budget one or two extras to be safe.

Update: I just updated both the SD library and the shield library and that appears to have addressed the initialization issues I have been occasionally seeing. Check to make sure you have the latest.

4 of 4 found this helpful:

Awesome shield... when you figure out it's quirks!

Spent 10 minutes setting up the shield on a redboard. Ran through the “FilePlayer” sketch. Worked like a charm. Ran through the “MP3 Trigger” sketch. Worked like a charm. Made a few mods to the MP3 trigger sketch to fit my needs. Worked like a charm. Only when I unplugged from the USB of my computer and tried to using the 9V/650mA wall wart did I start having problems. After a couple of days of pulling my hair out trying to figure out why everything worked seamlessly when plugged into the computer USB, but would only work maybe 1 out of 10 times when plugged straight into the wall, it dawned on me. After staring at the sketch, I thought that maybe the Mp3 file player and the MicroSD card reader did not have enough time to initialize, and therefore, caused an error. After playing around with a few delays throughout the setup procedure, I finally got it. By putting a 4 second delay at the beginning of setup, another 4 second delay after the sd card reader initialization, and a final 4 second delay after the mp3 initialization before the loop begins, it worked perfectly! After playing with the delay timing for a while, I found that a 2 second delay would work 1 out of 5 times. A 3 second delay worked about 3 or 4 out of 5 times. While a 4 second delay did the trick. Now, it does exactly what I needed it to do. I was unable to find much reference anywhere to anyone having an issue such as this? I was also unable to find many references of people powering this shield with a wall wort as opposed to USB from a computer? Hope this helps someone!

1 of 2 found this helpful:

Please return the holes!

I got 2 piecess of this card. It works fine, but I was surprised at the lack of Ardiino staddard fixing holes. They were in the previous version that I received about a year ago.

works well

I had some initial trouble that turned out to be operator induced. Once I corrected my error, it worked fine.

0 of 1 found this helpful:

Super simple

All examples worked exactly the way they should, and I was able to attach it to an amp circuit very easily.

Works as expected

Very happy with the shield - it does exactly what I needed. Would be nice to have a few more available pins for the Uno, but works well with the Mega for projects with greater pin requirements.

GOOD ITEM!!!

Does what I want

This device performs well, although I haven’t finished my project, and seems to have all the facilities I require to make a remote controlled (433MHz) MP3 Player. Postage and handling was very steep however.