Creative Commons images are CC BY-NC-SA 3.0

Description: 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


Recommended Products

Customer Comments

  • 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.

  • 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:

  • 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.7 out of 5

Based on 3 ratings:

5 star
4 star
3 star
2 star
1 star

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.

0 of 1 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.