SparkFun MP3 Player Shield

This new revision of the SparkFun MP3 player shield retains the awesome MP3 decoding abilities of the last version but adds the storage functionality of the SD card shield. Now 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 still 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 6 and 8-pin stackable headers.

Note: Please refer to the Line Out document below for important information regarding connecting this shield directly to an amplifier.

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

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.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
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


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • madsci1016 / about 12 years ago * / 18

    I whipped up a nice easy Arduino Library to use with this shield: SFEMP3Shield Arduino Library Now it's as easy as 'MP3player.playTrack(1);' and is interrupt driven so no need to worry about feeding it the MP3 file yourself.

    Should make this much easier for beginners. Comment on my site if you have questions/problems with it.

    • madsci1016 / about 12 years ago / 2

      BTW, if anyone tries to use this without my library...

      You do not need to edit the SdFat/Sd2PinMap.h file at all. Just include the SD CS pin (9) as the second argument in the card.init(SPI_FULL_SPEED, 9) function call.


      Use my handy dandy library to do all the work for you.


      • EvanAlmighty / about 10 years ago / 1

        Amazing library, Thanks for the documentation and simple,straightforward thinking. This is how store developers should be making their libraries.(cough Sparkfun!)

    • luxxtek / about 12 years ago * / 2

      State-of-the-art programming ! Works like a charm.

    • dyynamic / about 12 years ago / 2

      thanks. this is an amazing library making it work smoothly and instantly! awesome work!

      • madsci1016 / about 12 years ago / 1

        Glad it worked for you dyynamic. Let me know if you ever have any trouble with it.

    • Member #498648 / about 10 years ago / 1

      Thanks so much for this, especially the documentation!

    • BBORNCR / about 11 years ago / 1

      Your library works great with the shield. Thanks for the code and tutorials!

    • pscmpf / about 12 years ago / 1

      Just used this for a project and it worked perfectly and made my project have far fewer lines of code. Thanks!!

  • skater_j10 / about 13 years ago / 6

    Just wanted to post about a few issues I ran into to help anyone else out there in the same boat.
    After downloading the Sdfat library I forgot to switch the uint8_t const SS_PIN to 9 in the Sd2PinMap.h file and ended up getting random audio cutout because of it. The tracks would only play briefly then drop out.
    After solving that issue I then placed the sample tracks (track001.mp3 and track002.mp3) on my microSD and they played great under the provided MP3_Player_Example.pde code. But whenever I loaded up my own .mp3s I would get a audio spike about every second. It sounded like an CD skipping (not buffering properly). Using Audacity I found that my .mp3s had 44100Hz, 32-bit, Stereo encoding and the sample tracks had 22050Hz, 32-bit, Mono. I messed around a bit and found that I could get the best quality sound by using 44100Hz, 24-bit, Stereo encoding. All I did was open my .mp3 clicked the track drop down -> selected Set Sample format -> 24-bit, waited a few seconds for it to finish and then exported (with LAME MP3 exporter installed).
    Now the shield works wickedly, thanks for another great breakout Sparkfun!

    • jhmckeever / about 13 years ago / 1

      Ahhh - I suspected the reason some of my tracks worked fine and some skipped was down to sample rate/quality. Thanks very much for doing the research.

  • Member #599231 / about 10 years ago / 2

    can make two or more sounds at the same time? i want to build a drum and want to reproduce two or more mp3 files at the same time sorry for my english ty :D

  • Member #474582 / about 11 years ago / 2

    Ok, tried Bill Porters Libraries tonight with this board. Just flat out AWESOME!!!!!!!!! I'll be ordering up another one or two of these very soon! BTW, after programming the UNO with the basic File Player example in the IDE I unplugged the USB cable, and plugged in a battery pack to the UNO. Then I attached my SparkFun RN-XN WiFi device that was plugged into the SparkFun XBEE Explorer Regulated breakout board to the MP3 Shield on D0 & D1 and had full wireless access to play all of the tracks on my SD card.

  • is possible to use the mp3player to connect with Arduino Leonardo ?

    • Radames Ajna / about 11 years ago / 1

      Hey, I don't know, I'm trying to use this shield with Arduino Leonardo but seems like a problem with the Arduino Leonardo communication and the SD card, does anybody had similar problem?

      • Radames Ajna / about 11 years ago / 1

        Just found out! from the library

        "\note Support for Arduino Leonardo is afflicted by having the SPI pins not routing the same pins as the UNO. This is similar to the Arduino Mega. Where as it appears it should simply work with additional jumpers, from the Leonardo's ICSP port, which has the SPI pins to the MP3 shields equivalent SPI pins.

        \n Leo's ICSP4 to the MP3's D11 for MOSI \n Leo's ICSP1 to the MP3's D12 for MISO \n Leo's ICSP3 to the MP3's D13 for SCK

        \n and remember to \b NOT use D10 as an input. It must be left as output.""

  • Since the shield uses the VS1053 chip can it also be used as a synthesizer like the Music Instrument Shield? I tried some of Music Instrument example, but no success

    • microtherion / about 12 years ago / 2

      Yes, MIDI mode works great. All you need is two extra lines in your setup():

      pinMode(4, OUTPUT); // We want to control GPIO1 digitalWrite(4, HIGH); // ... and set the chip to real time MIDI mode (LOW = file/MP3 mode).

      See my earlier postings in this thread for other alternatives.

      • Thanks Micro, don't know how I missed your previous post. Tech support helped me with figuring that out, but I'm not getting any sound. Is there something I missed to get this working?

        I'm using a modified version of the music shield sketch based on error messages the IDE gave me. Pin 4 is set to OUTPUT and HIGH. I changed NewSoftSerial to SoftwareSerial and mySerial.print(cmd,byte) to mySerial.print((byte)cmd)

        here's a copy of the code.

        • microtherion / about 12 years ago / 1

          Oh yeah, forgot to mention one more thing: For the MP3 shield, the reset line is pin 8, not pin 4, so you need to change the declaration of resetMIDI from 4 to 8, and you additionally need to declare pin 4 (aka GPIO1) as an output and set it to HIGH.

          • microtherion / about 12 years ago * / 3

            I've polished up some sample code to demonstrate the various techniques to play real time MIDI with this shield. By default, this is configured in "MIDI shield compatibility mode", with the data sent through software serial and MIDI mode enabled with pin 4, but the code also demonstrates a more exotic technique for enabling MIDI mode, as well as the use of SPI for MIDI data.

            Real Time MIDI Code

            SparkFun would be very welcome to use this as an official code sample, by the way.

          • your code works great, thanks microtherion. changing pins 4 and 8 on the original sketches didn't work, but your Real Time MIDI code does. I'll have to look closer at how it works.

  • rizakara / about 12 years ago / 2

    for arduino mega ; do not coonect headers 9,11,12,13 on MP3 player shield to mega

    jumper set from mega to MP3 player shield SPI: 9 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).

    SPI: 53 (SS). 51 (MOSI), 50 (MISO), 52 (SCK),

    • Member #304495 / about 12 years ago / 2

      Thanks - that almost worked for me, starting out on an Uno and switching to a Mega 2560. SS seems to be on pin 10 on an Uno, though, not pin 9. When I disconnected pins 10, 11, 12, and 13 and jumpered 53 -> 10 (SS) and the rest as suggested above (51 -> 11 for MOSI, 50 -> 12 for MISO and 52 -> 13 for SCK) the shield played as before.

    • nothing / about 11 years ago / 1

      Thanks, your comment really helped me out today. It's to bad that they aren't mapped to the same pins as the Uno. Since I use this shield on both the UNO and Mega I just temporarily bend pins 10-13 over. Don't do it to often or they'll break off.

    • yair / about 12 years ago / 1

      thanks riza

      SF should add this to the description, also not clear which pins can be used with regular Arduino

  • dinofizz / about 13 years ago * / 2

    has anyone tried making use of the fast forward/rewind functionality with an arduino?
    any one tried adding an 8 ohm speaker? i understand the headphone output is not equivalent to line-in.

    • Snotomax / about 12 years ago / 1

      Yeah. I just did it using this library

      and MP3player.skipTo(some number in here);

      But my implementation has a bug where the arduino goes bananas if you try to fast forward or rewind past the start or end of a song.

      I wonder what a better way would be.

  • Member #294229 / about 9 years ago / 1

    I try to connect this shield output to Texas Instrument Audio Amplifier TPA2005D1 (you can buy breakout for this amplifier at SF).

    How should I treat this shield outputs as two differential out put pairs? Like "Ground & +" output pair and then "Ground and -" output pair?

    Thank you in advance.

  • Member #641584 / about 9 years ago / 1

    can I ask something.. Can I use arduino uno with this shield to record wav file and then stored inside the SD card, then after processing to product a output sound ??

  • mcolan / about 9 years ago / 1

    What is the maximum size of micro-SD card that is supported for this device? I suggest that a specs document for the unit as a whole is in order, as it would answer basic questions like this, and more.

    • The library by Bill relies on the Arduino SD library which supports FAT32. You should be able to go up to 64GB without problems.

  • Member #615614 / about 9 years ago * / 1

    Hi, is there any possibility to move via software the pins MP3-CS, MP3-DCS and MP3-RST for analog pins A0, A1, A2 and for example? I'm using Arduino UNO and I want to use other shields and need these digital pins. Thanks in advance.

  • Member #627850 / about 9 years ago / 1

    How do I play Ogg Vorbis in a Arduino setup with this shield? Ive tried playing MP3's using MP3player.playTrack( ...) but it will not play the Ogg Vorbis files...

  • Allen Pitts / about 10 years ago / 1

    Hello Sparkfun forum.

    I am very new to the whole Arduino thing so forgive me if I ask basic questions.

    The plan is to use the SparkFun MP3 Player Shield to play an mp3 file. The SparkFun MP3 Player Shield would be activated by a PIR sensor,ProductName The MP3 files would be input to a Micro SD file card from a PC. The SparkFun MP3 Player Shield would out put to a stereo amplifier SparkFun Audio Amplifier Kit - STA540. The SparkFun Audio Amplifier Kit would output to a pair of 8 Ohm speakers

    Is this a configurations that will work?

    Is any programming required for the SparkFun MP3 Player Shield?


    Allen in Dallas

    • M-Short / about 10 years ago / 1

      The SparkFun MP3 Player Shield is not programmable. It is designed to be used with an Arduino, so all the programming will be done on the Arduino. There is example code listed to play tracks from a uSD card, but you will need to upload that. Otherwise I don't see why this wouldn't work (although you may or may not need the amplifier kit).

  • Member #410631 / about 10 years ago / 1

    I made a nice little project out of this shield:

  • Member #469459 / about 10 years ago / 1

    I had a lot of trouble with this, until someone noted that the SD library uses pin 10 (I was using 10 for a radio). I used a different pin for my radio, and it worked. Very frustrating.

  • The Doctor Doge / about 10 years ago / 1

    Is this capable of interpreting MIDI serial commands? Or do i need a music instrument shield for that?

  • Member #602519 / about 10 years ago / 1

    hello everyone

    I bought MP3 Player Shield SFE-DEV-10628

    i have a one question

    i have a audio data Uinit 8 array.

    example [0x00,0x01,0x02,0x03 , 0x04,0x05,0x06,0x07 , 0x08,0x09 , 0x0a,0x0b , 0x0c,0x0d , 0x0e,0x0f]

    how about exchange mp3 data from Uinit 8 array?

    thank you.

  • Member #596379 / about 10 years ago / 1

    Which pins are left free when using this and the SFEMP3Shield Arduino Library?

    Thanks for any help :)

  • Member #595432 / about 10 years ago / 1

    This board can be utilized only with communication UART? pins RX TX My Arduino do not have pins available, is being utilized by others components.

  • Member #586633 / about 10 years ago / 1

    Hello Guys. When I first got the mp3 shield, I was able to get it work and play music. However, after I tried to plug the ethernet onto the shield, I have been getting different kinds of errors. Libraries and codes that I have gotten to work suddenly do not work.

    Here's an example of error I have been getting when I run an example code of the SFEMP3Shield Library:

    Error code: 6 when trying to start MP3 player Warning: patch file not found, skipping.

    I have tried redownloading the library and reinstalling it, but that doesn't seem to work. I have tried the SDFat library to see if something is wrong with my SDcard, but the library seems to recognize the card and see the files inside.

    Please help ; 0

    • If you are attempting to add in an ethernet board to your set up along with the MP3 shield, there's likely some signals crossing paths that are causing you problems. I'd recommend contacting techsupport@sparkfun, and explain your current set up. They'll be able to help you out to ensure you don't have cross talk on your assigned pins.

  • Member #574646 / about 10 years ago / 1

    Anyone tried reprogramming the VS1053 directly? I'm wondering if I can download the VLSI VSIDE and reprogram the VS1053 on this shield.

  • Leo Z / about 10 years ago / 1

    Hello I've been trying different things here but I can't figure out how to make it play song after song continuously without having to press next, also is there a way to make it stream all the files continuously in random order? Thanks!

    • Leo Z / about 10 years ago * / 1


      • M-Short / about 10 years ago / 1

        Hi, while comments are a great source of information and questions are often answered there if you don't see an answer it might be because no one saw it. It might also be no one who saw it knows the answer or the answer is too complex for a comment. If you have a question that you need answered I recommend emailing and they should be able to help you.

  • NerdFighterInDisguise / about 10 years ago / 1

    I am using this MP3 shield in a museum exhibit, and I am currently stuck on building the simplified lineout circuit to reduce transient. In the Line Out Information PDF there is a diagram, but no values for capacitors. What should I be using for this?

  • Member #565872 / about 10 years ago / 1

    Hi!, guys I'm new at arduino, and i have this work to do, I need to know if this shield can work well with an arduino Yun, i need to use yun's wifi and reproduce recording... can this shield do it?

    • M-Short / about 10 years ago / 1

      Basically you will run into the same issues with the Yun as you would with the Leonardo. You will need to reroute the SPI pins, but if you can do that it should work ok. The only other difference between the Leonardo and the Yun is that the Yun does not let you use the hardware serial lines, but since this shield doesn't use these you should be ok.

  • Member #548724 / about 10 years ago * / 1

    Hi I am using a derivative of MP3ButtonPlayer2.ino by Michael P. Flaga.

    On the remarks, it say "Where PLAY or STOP will begin or cancel the stream of track000.mp3 through track999.mp3, as indexed by NEXT, begining with ".

    It plays very nice till track009.mp3 from track010.mp3 it does not play.

    I fond FilePlayer.ino by Bill Porter and Michael P. Flaga it works for track10 and above but it is much more complicated.

    Any ideas making the basic MP3ButtonPlayer2.ino work ???


  • Is it possible to stream a 128 kbps MP3 file to this wirelessly using two of these and an SD Card at the other end?

  • Member #561503 / about 10 years ago / 1

    When I make a servo move while an mp3 is playing, the servo shatters. And when the mp3 is over, the servo is suddenly working good again (as it should) . So it seems that I cannot make a convincing choregraphy movement/sound at the same time. Thanks for a solution.

    -The servo has its own dedicated batteries. -I have already tried using other pins; same problem.

  • Member #529049 / about 10 years ago / 1

    Good Morning…. I’m working in a project with a GSM shield and a MP3 shield, and I’m having some problems because the GSM has a reserved pin that is Modem Reset (pin 7) and the MP3 Shield use this pin for MP3 DCS, and that cause an error of conection with the GSM shield. My quetions is if I can define the pin MP3 DCS (pin 7) in an other pin in the pin’s configurations? Thanks.


    GSM Shield

  • Member #551457 / about 10 years ago / 1

    Is it possible that playing 10,000 mp3 files?

  • Member #512799 / about 10 years ago / 1

    Anybody ever get a fully functional (Play/Pause/Next/Back/Stop) library for this in C#? I have several half baked libraries, and have been having a bear of a time trying to convert Bill Porter's library to C# for use with Netduino.

  • Ryu / about 10 years ago / 1

    Will this work with a Due? It looks like the pins would match up.

  • Member #495808 / about 10 years ago / 1

    I have some problems with 32Gb cards. I've tried several classes. Sometimes (a few times per hour) the sound gets stuck for a second or two, in different mp3 files, at different times. Not silent, but repetitive. Only happens with 32Gb cards. I use the SFEMP3Shield libraries. What can it be? thanks

  • Member #493818 / about 10 years ago / 1

    Can't access SD card. Do not reformat. No card, wrong chip select pin, or SPI problem? SD errorCode: 0X1,0X0 some one can help me please ??

  • Member #493818 / about 10 years ago / 1

    Can't access SD card. Do not reformat. No card, wrong chip select pin, or SPI problem? SD errorCode: 0X1,0X0 some one can help me please

    • Ryu / about 10 years ago / 1

      I have seen this a few times..sometimes simply unplugging from USB and reconnecting has worked for me. However I was also changing SPI clock division for some code so I had to get that right before I stopped seeing this error as well.

  • Member #498648 / about 10 years ago / 1

    I have successfully used Bill's library to play mp3 files on the shield. The problem is that the code doesn't start when I power the shield/arduino uno without pressing the reset button. Does anyone know what might be causing this?

  • CyberVinnie / about 10 years ago / 1

    Anyone have any idea of how to get the track length during playback?

  • Member #490715 / about 11 years ago / 1

    Hi, I have an arduino UNO board with a 16 keypad switch. If this shield is connected to arduino uno board, is possible to assign one single switch at one single musical file (mp3 or midi) ? ( when key #1 is pressed midifile/mp3 file #1 start play ecc.. )

    Best Regards

    ps.. excuse me for my very bad English :-)

  • keymistress / about 11 years ago / 1

    Hello, I am trying to lower the volume with a pressure sensor connected to A0 but the function is called even though I'm not touch the sensor. Could someone please advise? Thanks!

    • keymistress / about 11 years ago / 1

      Found the problem. The sensors read 1022 occasionally and my script was calling at

  • keymistress / about 11 years ago / 1

    Hi there, is it possible to play two tracks simultaneously with the MP3 shield?

    • MikeGrusin / about 11 years ago / 1

      Unfortunately no. The MP3 chip can only handle one stream at a time. We are working on a new board that can play multiple WAV files at the same time though.

  • Member #141822 / about 11 years ago / 1

    If you're looking for a quicker response when starting an mp3 increase the internal clock multiplier from 3 to 5 and decrease SPI clock divider to SPI_CLOCK_DIV2. Do so with the following changes to the example code:

    Mp3WriteRegister(SCI_CLOCKF, 0Xe0, 0x00); // Set multiplier to 5.0x SPI.setClockerDivider(SPI_CLOCK_DIV2); // Set SPI bus speed to 8 MHz (16 MHz / 2 = 8 MHz)

  • Member #483809 / about 11 years ago / 1

    I'm trying to make a project with the MP3 shield and a servo (and some more stuff that doesn't matter now).

    The servo is working fine but it starts shattering once an MP3 is started. It does that on every output pin on my Arduino mega.

    Does anyone know what the source of this problem could be and in a second stage, what the solution is ?



  • Member #141822 / about 11 years ago / 1

    Using the original MP3 Player Example Code I decided to create my own library for playing MP3s with this shield. I know I could use the library discussed below, but I consider it a learning experience to do it myself :) Anyway I'm having problems with declaring SD information like Sd2Card and SdFile in my MP3Player class. I get errors like Sd2Card is not valid type, SdVolume is not valid type, and same thing for SdFile. I've attached a very abbreviated header file below. I can't make any sense out of this. Seems solid from C++ standpoint. I also have this library in the correct locations which is in ...\libraries\MP3Player. Any help would be appreciated. Thanks.


    ifndef MP3PLAYER_H

    define MP3PLAYER_H




    class MP3Player { private: Sd2Card card; SdVolume volume; SdFile root; SdFile track;

    public: MP3Player(); void Initialize(); // etc... }


    • Member #141822 / about 11 years ago / 1

      The included files didn't show up. They are SPI.h, SdFat.h, and SdFatUtil.h

  • magnomp / about 11 years ago / 1

    Could this one be used together with a UNO and the USB Host Shield to play mp3 from a usb flash drive?

  • Member #18068 / about 11 years ago / 1

    How can I loop current track but also be able to select another one at any time with a button? I can't find any useful function to loop track!

  • Member #18068 / about 11 years ago / 1

    I want to use 4 buttons for input selections, how can I connect the MP3 shield? I only want the shield for track playback

  • Member #104034 / about 11 years ago / 1

    I would like to control the playlist on this shield using a rotary encoder. I am reading the encoder input states in the main loop. But this is too slow when an mp3 is playing. Does anyone have a good tip for how to control the board with a rotary encoder? Thanks!

    • Take a look at the example code for our LilyPad MP3 board. Mike wrote a great example sketch that allows you to control the mp3 chip using a rotary encoder, so hopefully that should be a good starting point for you.

  • Member #406162 / about 11 years ago / 1

    I have a question I hope you can help me out with. I am using the shield as a MIDI synthesizer, which is working great. What I want to do now is combine the analog output of this board with the output of another circuit, and then send the combined signal to my amplifier. My main worry is that the VS1053B might be damaged if I add an external voltage on the analog output pins. I know the values would have to be kept below the shield limit, but I am worried that it might still be damaged. So two concrete questions:

    Is the right and left output pins high or low impedance?

    Would it be possible to connect a similarly scaled signal (for example another MP3 shield) to the holes for external speakers and use the jack connector as output for both?

    I hope you understand what I am trying to do, which is basically connecting the output of two boards together.

  • vcazan / about 11 years ago / 1

    I am working on a project for a client and have been testing the playback through headphones, today I hooked it up to some speakers via a line in cable and noticed that the sound was very weak. I increased the volume to max with software but it still wasn't the full watts it should have been.

    Any way to make this louder?

  • Ryu / about 11 years ago * / 1

    I had head phones plugged in and it was working fine until I unplugged the headphones during I get various error codes and can't get it to play consistently even after rebooting and re-loading the sample code... Could I have fried it?

  • Member #443634 / about 11 years ago / 1

    Will this shield work with the Arduino diecimila?

    Thanks, Phil

    • M-Short / about 11 years ago / 1

      It should. The Uno, Duemilanove, and the Diecimila all have the same pinout. You will want to make sure that if the board has an ATMega168 and not the ATMega328 that there is enough memory for your code, but otherwise everything should be compatible.

  • Member #152828 / about 11 years ago / 1

    Is there any problem running a 4 ohm speaker via the speaker output on this shield?

  • Ryu / about 11 years ago / 1

    I want to use the native Arduino Timer1 or Timer2 in parallel with the MP3 functionality of this board. By not using the MIDI feature, I can free up pins D3 and D4, however the timers also require either D9 or D11..

    Is there anyway to free up pins D9 and/or D11 without compromising playback from the on-board SD card?

  • Member #357213 / about 11 years ago / 1

    Looking at the schematic it seems that pin 10 is free but when I connect it to an LED, the LED lights up.I'm using an UNO. Pin 5 seems to work as a free pin but I'm confused as to what other pins are actually free to use.

    • Pins 10 and 5 should be free. If you are seeing activity on pin 10, my guess is that you didn't change your chip select line to pin 9 as it instructs you to do in the quickstart guide linked above.

      • Member #357213 / about 11 years ago / 1

        Thanks Toni I'm using Bill's library so I thought it took care of that 9 vs.10 issue. I'll go to his site and ask him what's up.

        • MikeGrusin / about 11 years ago / 1

          It's my understanding (subject to being wrong), that in order for the hardware SPI port to work correctly, the hardware SS pin (pin 10) must be set to be an output, even if you're using a different pin for your own SS use. You should be able to control and use pin 10 for whatever you wish, as long as it's an output.

          • Member #357213 / about 11 years ago / 2

            I just did a test - I set pin 10 to an output at the start, and run... after this line of code:

            if(!sd.begin(SD_SEL, SPI_HALF_SPEED)) sd.initErrorHalt();

            I do a digitalRead() on pin 10 and it's 1. I'm wondering if it's ok for me to set to LOW at that point and use it for my own use?

            • MikeGrusin / about 11 years ago / 1

              I'm sure you can do what you like with it as an output; we use it for a RGB LED on the LilyPad MP3 Player. I'm not sure if you can change it to an input once the SPI is initialized, but it's definitely worth some testing, I'd love to hear a definitive answer as well. Your original idea of checking with Bill & Michael isn't a bad one either.

  • Member #442513 / about 11 years ago / 1

    I have a project and I am not sure the best way to make it work. I have an audio board from a pinball machine that I want to replace with an MP3 player. It has two binary address lines and 8 data bits that allow it to play up to 256 sounds (I think it only uses about 40 sounds). All of the signals are 5 volt logic. The current system then processes that through a cpu and Eproms to retrieve and play "sounds". I want to be able to take these signals and use them to play MP3s. I can run the two address lines through an AND gate and feed one input to make it simpler. Can this be done with the Lily pad MP3 or the MP3 trigger or can it be done with the MP3 player shield and an Arduino? Thanks for any help you can provide.

    • MikeGrusin / about 11 years ago / 1

      Neat project! It can be done with the MP3 Trigger if you can send it serial commands to play the sounds (that's the only way to get 256 as there aren't enough hardwired inputs). You could also put together a system based on the MP3 Player Shield that you could connect directly to your eight data and two select lines. If you look at the above schematic you'll see that there aren't enough free input pins to do that, but if you add something like the shift-in breakout, you'll have an extra eight inputs to read the data lines when you receive a select signal. Let us know how it goes!

      • Member #442513 / about 11 years ago / 1

        I am sooo new to this that I really don't have a clue about these. Are you saying that I would not need an Arduino to communicate with the MP3 Shield? Just a shift in break out? I am sorry if this seems like a silly question. My head is swimming as I try to understand what is going on with these cool little devices. Thanks.

        • free-bee / about 10 years ago / 1

          Sorry for the seven month late reply. But if my understanding of these are correct (I'm just now taking the plunge into these types of applications), the only thing the Arduino does is grab files from an SD card and pipes them to this shield, which, in return, decodes the data stream and produces sound. If I am correct, you can use any method to pipe data to the shield. But the shift-in breakout Mike was talking about is to get the parallel data from the pinball machine and convert it to serial for the MP3 Trigger.

  • Member #435752 / about 11 years ago / 1

    Any idea why i can only get sound out of one earphone..?

  • Member #424141 / about 11 years ago / 1

    I'm using this shield with a FM transmitter. When I plug this into the FM transmitter I get mostly static. If I plug it into a headset or a speaker it works. I know the FM transmitter is working, because I can plug into it from my PC and it works great. Any help would be great.


  • Member #235522 / about 11 years ago / 1

    Hi, I'm using a T.Amp PMC40C amplifier with this shield, seems to work fine but the sound only begins to become audible after a delay of ca. 5 seconds after the beginning... any hints on this? And, am I safe with that amp or do I need to change anything? The amp has this info on its cover image Thanks for your help!

  • Richard A / about 11 years ago / 1

    I have a project I'm trying to add sound too, and this would be the perfect shield to do it, except... I need 3 PWM ports on my Arduino to power a pair of tri-color LEDs. If I'm reading the schematic on this shield correctly, it only leaves open 2 of those ports, and no others. If that's the case, I may be out of luck.

    However, looking at the connections on ports D3 and D4, it looks like they aren't connected. Is that right? I'm kind of a newbie at all this, so I'm not sure what NC stands for on these schematics. Some people say it's Normally Closed, others say Not Connected, and I honestly have no idea what the difference is. Looking at the picture of the board itself, it looks like the leads going to D3 and D4 are not connected, with a solder bridge available to close both pins, and enable those ports.... unless I'm completely mis-reading this stuff.

    So... is this possible? Can I leave ports D3 and D4 disconnected, and use them for other purposes on my Arduino? Failing that, does anyone have any tips on tying this shield together with one of the PWM shields used for adding extra ports? I should note that I'm working with an Uno rev3, and space is limited, so going to a Mega or Due isn't really an option.

    • Richard A / about 11 years ago / 2

      For the record, since lots of people have asked this question but no one has found a direct answer...

      YES, pins D3 and D4 are available, IF you don't plan on using the MIDI components on this board. As shipped, those 2 pins are disconnected, and can be used without issue. I went ahead and bought this board, not sure if it would work, but after I wired it all up and tested it, I was happy to find that those 2 pins are available. That gives you 3 PWM pins and the extra Digital pin to work with, along with the analog input pins.

      • MikeGrusin / about 11 years ago / 1

        Note, if you didn't know already, that you can use the analog pins as digital outputs as well. You just need to name them e.g. "A0" when specifying them in your code.

  • GreyGnome / about 11 years ago / 1

    Hi, I created another Arduino MP3 library here: . The main differences between this and Bill Porter's: * This one was built and designed to closely track the VS1053 data sheet. I wanted to understand better how the code interacts and supports the chip, so I built this library. Some of the ideas were based on Bill Porter's, though the lion's share of the code was taken from Christian Schmiljun (who in turn borrowed from Shigeki KOMATSU) and adapted for Arduino's use. * A few additional features of the vs1053b are supported, such as the sine test. See the code for more information. * This one supports M4A files, MP3 files, and OggVorbis files. * This one uses the ID3v2 data from the MP3 files. It also supports comments from OggVorbis. I did not work on getting comments from m4a (iTunes) files; that is left as an exercise for the interested reader. * This one can fast forward, but cannot skip ahead/behind. * This library works with interrupts or without. I have discovered that loading the VS1053b with 32 bytes takes 0.32 millis at a 4 MHz SPI bus speed which could be a long time. Starting a track to fill the entire 2048-byte buffer of the chip would take 64*0.32 == 20 millis. I don't want the Arduino waiting for 20 millis, so I created the non-interrupt style. * This one is not supported. This is one is for the hacker who really wants to understand the code. If something doesn't work for you but you want to make it happen, I'll need you to provide the update. I can't support requests to fix or for updates (I have no time). * That said, this code is neither clean nor elegant. I have a lot of cruft in there, beginning with all my commented-out println() statements. I can make no apologies for it; I simply present this code to the world so it can see the light of day and perhaps help someone. I wrote it for one of my projects but along the way tried to make it generally useful.

    I wouldn't mind you dropping an email if you happen to utilize it. I am Thanks, and I hope you find it useful.

  • Member #425833 / about 11 years ago / 1

    Compiling issues? Check this out, it helped me.

  • Member #424102 / about 11 years ago / 1

    hey, I bought this shield and it's been working great. However, I tried to compile the program by madsci1016, and there's an error compiling. I posted the error below, and excuse my ignorance on this subject because I'm only a high school student learning the basics. "/Users/Downloads/ In function malloc': /Users/cs/Developer/Hardware/AVR-USB/AVRMacPack/buildtmp.nobackup/avr-libc-1.6.4/avr/lib/avr5/../../../libc/stdlib/malloc.c:78: multiple definition ofmalloc' core.a(malloc.c.o):/Users//Downloads/ first defined here /Users/Downloads/ In function free': /Users/cs/Developer/Hardware/AVR-USB/AVRMacPack/buildtmp.nobackup/avr-libc-1.6.4/avr/lib/avr5/../../../libc/stdlib/malloc.c:195: multiple definition offree' core.a(malloc.c.o):/Users/Downloads/ first defined here"

    • VAlexander / about 11 years ago * / 2

      Sounds to me like you don't have the newest version of the SDFat Library. That error has now been fixed: Just download the latest version here: and replace it with the one in your libraries folder! Hope it helps! Let me know if it worked.

    • MikeGrusin / about 11 years ago / 1

      Hi there, sorry you're having problems! Most of us are on PCs here; I'll see if I can get someone with a Mac to try it and see if they're having the same problem. You might also want to post your question over at Bill Porter's site; they may be able to help you faster.

      • VAlexander / about 11 years ago / 1

        What happened to his site? Besides his forum all his posts seem to be missing hmm...

  • Member #395276 / about 11 years ago / 1

    I am trying to wire this to a mega 2560 and cannot get it to work. I am soldering and jumpering all of the wiring by hand. I have looked through the previous threads and understand I have to wire to pins 50-52 to use the SPI bus on the mega. Also, the SFEMP3 library uses pins 6,7,8,9, and 2 for the decoder. Also, just the 5V input and ground are also required. Are these the only pins that are the bare minimum to get the decoder and the sd card working? I am just trying to verify. Thanks, Matt

  • Member #412216 / about 11 years ago / 1

    Quick question for anyone - is this shield compatible with an arduino Ethernet shield ? Wanted to build a networked mp3 player

    thanks...Matt Ganis

  • Member #405782 / about 11 years ago * / 1

    I've been spending the last few days trying to get the SparkFun MP3 Player Shield running consistently with an Arduino UNO R3.

    My experience has been mixed. After reading various threads on a couple of different sites, I downloaded Bill Porter’s MP3 Shield Library and have been using the MP3Shield_Library_Demo sketch without any modifications.

    If the MP3 Shield / Arduino UNO R3 starts up well, all seems to go fine. I see the expected feedback (help text) in the Serial Monitor, can play tracks using commands through the Serial Monitor, etc. However, often the MP3 Shield / Arduino UNO R3 will start up in a state where I see a variety of errors such as:

    Free RAM = 1070 Should be a base line of 1095, on ATmega328 when using INTx

    Can't access SD card. Do not reformat.

    No card, wrong chip select pin, or SPI problem?

    SD errorCode: 0X1,0XFF

    So, when it works well it is great. When it is not working well, it seems to generally stay in an "unhappy" state even through pushbutton resets on the Arduino and/or MP3 Shield boards. I'm powering the boards from the USB cable and I'm running the Arduino IDE (v 1.0.3) on a Mac. I have tried several different 2Gbyte microSD cards -- all behave similarly.

    I touched up the solder connections on the microSD carrier in case there was a solder reflow issue and don't see any other bad connections.

    Any ideas why my system is behaving in flakey manner? Is anyone else seeing their system behave similarly? Or, are people generally seeing their systems behaving consistently well?



    • Member #371786 / about 11 years ago / 1

      I'm having the same seems to be something with the connections and how the board is seated...

  • megaionstorm / about 11 years ago / 1

    Bill should add midi-file support to his MP3 Player library !!!

    • MikeGrusin / about 11 years ago / 1

      I can happily report that the chip will play MIDI files using Bill's library with no problems!!!

  • Member #403361 / about 11 years ago / 1

    Hi. Does this board support frequency equalization and does it produce high quality output?

    • MikeGrusin / about 11 years ago / 1

      You should take a look at the VS1053 datasheet to decide whether it meets your specs.

  • rizakara / about 11 years ago / 1

    how can i use this shield on panda board /csharp thanks

  • rizakara / about 11 years ago / 1

    how can i use this shield on panda board /csharp thanks

  • Member #399642 / about 11 years ago / 1

    Hi.. i have downloaded SdFat library but there is no Sd2PinMap.h file present in library. Using arduino uno,arduino 1.0.2,using mp3file of 192 bitrate. While playing given code i got this kind of messages in serialmonitor... MP3 Testing Error: Card init Error: Volume ini Error: Opening root but there is no sound please help me out thanking you in anticipation

    • MikeGrusin / about 11 years ago / 1

      Because Arduino and its libraries were updated since the example code was written, it is somewhat out of date. Here’s a quick way to get things running. Note that you no longer need to edit anything, it should all work out of the box:

      1. Download Bill Porter’s MP3 Shield Library from here:

      2. Unzip the above file, and place the SdFat and SFEMP3Shield folders in your sketches/libraries folder. (Important: delete previous versions of those libraries from your libraries folder).

      3. Place your MP3 file(s) onto your micro-SD card. Rename them TRACK001.MP3, TRACK002.MP3 etc. (Tip: in Windows, ensure that “Hide extensions for known file types” in the folder view options is turned OFF, so that you’re not accidentally naming these e.g. TRACK001.MP3.MP3.) With the power off, insert the micro-SD card into the shield’s socket.

      4. Plug in your Arduino and start the IDE. From the File/Examples/SFEMP3Shield menu, load the MP3Shield_Library_Demo file. Set the COM port and Arduino type, and upload the code to your Arduino.

      5. Once the code is successfully uploaded, open the Serial Monitor window and set the speed to 115200 baud. Startup diagnostics should appear, followed by a menu of options. To play TRACK001.MP3, type 1 in the box at the top of the window and press the “Send” button. (An easy way to verify operation is to plug a pair of headphones or earphones into the 1/8" stereo jack on the MP3 Shield. You should hear the audio file playing).

      If there are any errors in the startup or when playing, let us know and we’ll go from there. Good luck!

      • Member #366756 / about 11 years ago / 2

        Thanks for posting this explanation. You might save people a great deal of time if you remove the current "Quickstart Guide" linked in the product description and replace it with this, as following the current quickstart guide fails due to the library changes.

        • MikeGrusin / about 11 years ago / 1

          You are absolutely right. We're currently in the middle of moving and updating all of our content, and apologize for the "under construction" nature of a lot of them especially this one.

  • Member #394256 / about 11 years ago / 1


    I'd like to use this shield directly with a small speaker (no amplifier) to make an interactive plush toy. I have a few questions:

    1) I don't need to worry about the line out issue because it will be an isolated speaker, and I can directly connect the speaker to the output of the board, without the capacitors. Is it correct ?

    2) with only 1 speaker, which output pins should be used : Left/Right/GBUF ? (not using the headphone jack)

    3) if choosing a small 8 Ohm speaker, I have not been able to understand the max Amps of the output. Assuming output is 5V, are 1W or even 2W speakers usable, or max 0.5W ?

    Thank you for your help,


    • Member #615614 / about 9 years ago / 1

      Hi, how many W you used for each speaker? You could 2W successfully? Thanks

    • MikeGrusin / about 11 years ago / 1
      1. Correct, you won't hurt the board by connecting a speaker. It's only amplifiers with common grounds that are a problem.

      2. Connect your speaker between GBUF and either Left or Right (not both). If you want to use two speakers for more volume, connect one between Left and GBUF, and one between Right and GBUF.

      3. The max output from the VS1053 into 8 Ohms is something like 0.4W. This will never be "loud" but will work fine for a toy or other project that you're close to when it's playing. You can connect larger-wattage speakers with no problems (a physically-larger speaker will sound better and have better volume), and you can safely use smaller speakers as long as you either keep the volume down (see the example code) or don't continuously send audio through it (it's heating which could damage the speaker, but this is unlikely to be a problem at such low levels).

      4. Check out Bill Porter's MP3 library which makes it very easy to play files. and Have fun!

      • Member #394256 / about 11 years ago / 1

        Thanks for your answer.

        Now next step - I think it's a stupid question, but I'm lost: where can I find the GBUF, Left, and Right pins on the board ? Available pins have names like MP3-CS and the like, and the schematics confuse me.

        thanks !

        • MikeGrusin / about 11 years ago / 1

          Sorry for the confusion; GBUF, LEFT and RIGHT are the same as the three "Speaker" pins marked -, L and R.

  • Member #17759 / about 11 years ago / 1

    Merry Xmas to All! Here's my YAAXT - Yet Another Arduino Xmas Tree, just in the nick of time. Used the SparkFun Spectrum and MP3 Shields, LPD8806 Addressable LEDs, Dayton Amplifier, Bose Speakers and controlled via IR Remote. Used great MP3 and IR libraries provided by Bill Porter. Also the LPD8806 LED library from AdaFruit. Video could not capture the true intensity of of the led colors - they are so bright, they overwhelm the camera CCD.

  • Member #356070 / about 12 years ago / 1

    Anyone hack this up with to use I2S yet?

    Wondering about the feasibility of the I2S interface with Clock, Data and LROUT to pipe high speed serial into a line driver for DMX512 embedded on one channel(ignoring the alternate LROUT state), and audio via the traditional analog out on the other channel. Thus, a stand alone intergrated audio and DMX512 device for animatronics with everything canned on the SDCARD in sequences.

    Havn't quite worked out how to properly inject the data and not sure how the chip would react to misc. data on one channel (I could be forced to use an off board DAC and maybe clock in zeros on the data channel) but dual channel mode (vs stereo) may be more forgiving.

    I figured I'd pose the question before reinventing the wheel.

  • Member #264817 / about 12 years ago / 1

    Hi all, have anybody used the arduino to attenuate the volume on this shield? Not just set the limit, but continuously varying the output volume from low to high and back


  • This will use up all digital I/O pins except 5 and 10:

  • Member #107429 / about 12 years ago / 1

    Is it possible to select a song to be played based on song file name?

  • RyeMAC3 / about 12 years ago / 1

    Is it just me, or is the board schematic in the Eagle file unfinished? Why does it look like the reset switch and U4 aren't connected to GND? Why are there random vias on the board that aren't connected to anything? Is there a ground plain I'm not seeing? Turning on the "rats nest" feature shows something that looks like a ground plain, but I'm still not seeing how these components are grounded.

    • Kamiquasi / about 12 years ago / 1

      The 'random vias' are indeed connected to two ground planes, top and bottom :) After hitting the ratsnest command/button to fill in the planes, try the following in the Eagle command line:

      display none 1 18


      display none 16 18

      To take a closer look at the ground planes without the clutter of components.

      The reset switch has its pin right on the top ground plane.

      As far as I can tell, most of the other vias aren't strictly required; there's a clear path between U4's GND pin and the GND header pins, which are PTH parts, via the top ground plane alone. On the other hand, it can't hurt to have them.

  • Member #362332 / about 12 years ago / 1

    Hi there, please tell me can i play sound from SD card and from Line-In simultaneously? Thanks for advice.

  • Member #363467 / about 12 years ago * / 1

    I have a spare vs1011e and the mp3 shield but i blew my vs1053 on the shield .Is it possible i could solder the vs1011e instead and code will still work ?

  • squeakbat / about 12 years ago / 1

    The datasheet here might be out of date, there's a newer version at The only difference I've noticed so far is the definition of struct parametric, which is not so much a correction but more like they've decided to not document the chipID field.

  • megaionstorm / about 12 years ago / 1

    Is it possible to enter rtmidi mode with this shield ?

  • megaionstorm / about 12 years ago / 1

    In the "Line Out Information" on page 8, figure 8. There are no values for c1 and c2 !!!

    • MikeGrusin / about 12 years ago / 1

      See several comments about this above. 10uF appears to work.

  • Member #352638 / about 12 years ago / 1

    Hi-Making some progress but still could use a little help, please. Here's my serial report: TimMP3 Testing SCI_Mode (0x4800) = 0x4800 SCI_Status (0x48) = 0x48 VS Version (VS1053 is 4) = 4 SCI_ClockF = 0x0 SCI_ClockF = 0x6000 Track open Start MP3 decoding [Then a whole bunch of recurring "Time to replenish buffer" lines scream by.]

    Also, the Arduino Uno light is flickering as if it's doing something. Only problem is, I can't hear anything. I've got a simple pair of headphones plugged into the jack.

    I made this change, per the forums: card.init(SPI_FULL_SPEED) to card.init(SPI_FULL_SPEED,9)

    I feel like I'm so close, but what am I missing?

  • Member #344451 / about 12 years ago / 1

    I like this board but need digital IO ...which are free?? UNO/MP3 shield BM

  • Member #352638 / about 12 years ago / 1

    Having a little trouble I could use some help with. I'm confused that I can't find this line to change in the current library "To compile, you MUST change Sd2PinMap.h of the SDfatlib!"

    I see madsci1016's not about changing a single line in the sketch - is this what's it's supposed to look like?

    And... am have I edited this line correctly:
    //Let's play a track of a given number sprintf(trackName, "track001.mp3", trackNumber); //Splice the new file number into this file name playMP3(trackName); //Go play trackXXX.mp3

  • Member #352638 / about 12 years ago / 1

    Hi. I just downloaded the sdfatlib dated July 19 and this line isn't even in it to be fixed: .../arduino-0022/libraries/SdFat/Sd2PinMap.h

    I've got the mp3 shield on the program uploaded. But it's not going to work if I can't change that line, right? And I can't change that line if it doesn't exist, right?

    So... what do I do?


  • Snotomax / about 12 years ago * / 1

    A bit annoying to get it moving.

    Here's a step by step for Mac users:

    1) Download the library from The Sparkfun software didn't work for me and was outdated.

    2) Install the libraries...

    2.1) by right clicking (or CTRL clicking) on Applications/Arduino and select show package contents.

    2.2) Place the libraries inside the Arduino application package folder in Applications/Arduino/Contents/Resources/Java/libraries/

    2.3) Quit the Arduino program if it's open and restart it.

    3) Run madsci1016's code:

  • Member #342849 / about 12 years ago / 1

    how do I to play an mp3 when pin 0 and up and a different file when it is low?

  • Member #340580 / about 12 years ago / 1

    I am using MP3 player shield with adruino nano board. After downloading the mp3 player code i am not able to play the file and i am getting following output on serial port. Can anyone tell me what is wrong.

    MP3 Testing SCI_Mode (0x4800) = 0x4800 SCI_Status (0x48) = 0x48 VS Version (VS1053 is 4) = 4 SCI_ClockF = 0x0 SCI_ClockF = 0x6000 Failed to open track001.mp3 Failed to open track002.mp3 Failed to open track003.mp3 Failed to open track004.mp3 Failed to open track005.mp3 ...... Whoa there cowboy!

  • If you're having issues with playback failing, audio blips or just nothing at all, it's most likely going to be that your SD card doesn't support, or implement SPI correctly. I had a 1GB card that did not work, and the playback kept on cutting out after ~1 second. I bought a different card at my local photography store, and it immediately worked. The one that worked was a SanDisk card, but other brands will work as well.

  • Member #338034 / about 12 years ago / 1

    Hi, wanting to use this shield MP3 Arduino in the MIDI mode, do I do the linking SJ2 (3) MIDI-In (MIDI input signal) and SJ1 (4) GPIO1. With Arduino the signal output at the GPIO1 for the MP3 mode GPIO1 "low" and MIDI-In "high", for the MIDI mode at the GPIO1 "high" and MIDI-In "signal"),all right! But observing the resistances R13 and R14 from 1K are not too small, if the maximum voltage tolerated by VS1053 is 3.6 V, (the output voltage from the divider is > 3.6 V), the signal "high" of Arduino is 5V?

  • Member #2895 / about 12 years ago / 1

    I'm trying to get this shield to handle wav files. After reading the datasheet, it seems like I should just be able to feed a wav file into the chip (header information in the wav file should help the chip identify as a windows PCM wav file).

    Has anyone had any luck with wav files? The reason I don't want to use MP3s (and they play fine) is there appears to be a ~20ms lag time between when you tell the sound to start, and when it actually starts (I believe this is due to MP3 compression using a moving window, so you have to read in a certain amount of data before decoding can start).

    • Member #354555 / about 12 years ago / 1

      hello, i´d like to know if you´ve succeeded in making this shield work with wav files. i havent yet ordered the shield because i still have doubts about whether it would be capable of handling wav files. any comment would be great, thanks.

  • The Kontraptionist / about 12 years ago / 1

    Hi! OK, so most important piece of info that needs to be repeated, as per SDFAT Readme.txt

    Nobody has to modify any pin definitions in the libraries! (Rejoice!)

    If you have a shield like the SparkFun MP3 shield that uses pin 9 for chip select you would change the line: card.init(SPI_FULL_SPEED) to card.init(SPI_FULL_SPEED,9)

    This way you don't have to go and change SDFat every single time. Seems like the RIGHT way to do it..

    Also, as for the line-out protection, just don't connect the speaker/headphone common pin to ground in any way shape or form, like powering from USB and plugging the shield's 3.5 mm plug in to the PC's line-in. Figure 3.2 of "Line Out Information" shows a simple 4 resistor two capacitor setup which should be considered for implementation on the next revision of the board.

  • Member #335758 / about 12 years ago * / 1

    This board works well with the supplied code. Mine lasted a few days before I destroyed it by connecting the "virtual ground" to ground. I also have some boards from VLSI the makers of the MP3 ic. They are more expensive, but more robust in design. I have not yet managed to destroy these boards. All the Sparkfun shield needs is a couple of low cost caps for a minimal "line out" and it would be much improved.

  • Radiohound / about 12 years ago / 1

    Is there a way to make the shield automatically play all the tracks, like the MP3 Trigger device? I would like to use this MP3 shield solo, without it plugged into anything. Thanks!

    • M-Short / about 12 years ago / 1

      You can't, you need some sort of microcontroller to program, run code and figure out what you want to do. The MP3 trigger has a microcontroller built it, this board is designed to be used with an Arduino as a microcontroller.

  • Member #888 / about 12 years ago / 1

    Consistently getting:

    MP3 Testing Error: Card init Error: Volume ini Error: Opening root SCI_Mode (0x4800) = 0xFFFFFFFF SCI_Status (0x48) = 0xFFFFFFFF VS Version (VS1053 is 4) = 15 SCI_ClockF = 0xFFFFFFFF SCI_ClockF = 0xFFFFFFFF Failed to open track001.mp3 Failed to open track002.mp3 Failed to open track003.mp3 Whoa there cowboy!

    or error 1, if I use the below-mentioned SFEMP3SHIELD lib

    One of the reasons could be that I put the files on using a Mac, which does leave a bunch of trash on the volume (like .Trashes and such) but wouldn't I be able to pass the Card init test?

    Trying to narrow down my set of problems to ether bad connections or SD card formatting issues. Any advice?

    • microtherion / about 12 years ago / 1

      Bad connections are definitely the prime suspect. All the "SCI" values, and especially the "VS Version" should be readable and correct, regardless of whether your card is correctly formatted or not.

  • Marcel de Bie / about 12 years ago / 1

    Hi, the MP3 Player Control Example works great.

    Their is an approx 2sec delay from the time a contact is closed to the MP3 starting. How can I reduce this time to the shortest possible?


  • Pardeep / about 12 years ago / 1

    Is it possible to send a song directly to the shield from an arduino, without using the sd card? I mean tranfering the mp3 file through serial cable and then decode it using the mp3 shield.

    • MikeGrusin / about 12 years ago / 1

      It's certainly possible, but you might run into speed problems with the serial connection. In general, async serial's top speed is 115200 bps. If your MP3 file is encoded at a rate faster than that, the serial link won't be able to keep up.

  • ChiefRobot / about 12 years ago / 1

    I can only seem switch tracks after the current track has ended. What is the correct method for stopping the current track and playing a new track on the fly based on the MP3 Player Example Code?

  • Virgil_Disgr4ce / about 12 years ago / 1

    I'm completely baffled by why the MIDI-In and GPIO1 pins are solder jumpers that are NORMALLY CLOSED?!? This doesn't make any sense whatsoever. I had to scrape out the trace between the jumper pads to use these pins, and it took days before I realized that was the problem, because when you see solder jumpers you assume they're not connected by a secret trace!! What on earth are they thinking!??!?!

    • the jumpers are open when we ship them. did yours come soldered?

      • Virgil_Disgr4ce / about 12 years ago / 1

        As microtherion write, they are open jumpers, but with a trace connecting them, so the only way to actually open the jumper is to scrape out the trace. Was this a mistake?

        • Ah, OK, I understand now. Let me check into it.

          • MikeGrusin / about 12 years ago / 1

            The idea behind this style of NC jumper is that you can cut the trace to open them, but blob the jumper if you decide to close them later on. The alternative is to have jumpers without the trace, but paste them in the oven (which is not 100% reliable). We're sorry for the confusion, if people really hate these things we'll do our best to work on an alternative.

      • microtherion / about 12 years ago / 1

        They are not soldered, but they are connected with a small trace between the pads.

        (Personally, I find this sort of convenient, because the board by default comes with all the functionality available; the draw back is that even more pins are used by default).

  • Member #311015 / about 12 years ago / 1

    Hi guys ,

    I need some help with shield. I'm using arduino mega 2560 and the pin are set SPI: 53 (SS). 51 (MOSI), 50 (MISO), 52 (SCK), DREQ in 28, MP3-CS 30, and MP3-DCS 31. I'm using the latest sd library with this lilte code to setup.

    define MP3_XCS 30

    define MP3_XDCS 31

    define MP3_DREQ 28

    pinMode(MP3_DREQ, INPUT); pinMode(MP3_XCS, OUTPUT); pinMode(MP3_XDCS, OUTPUT); pinMode(MP3_RESET, OUTPUT);

    digitalWrite(MP3_XCS, HIGH); //Deselect Control digitalWrite(MP3_XDCS, HIGH); //Deselect Data digitalWrite(MP3_RESET, LOW); //Put VS1053 into hardware reset

    Serial.begin(9600); //Use serial for debugging Serial.println("MP3 Testing");

    //Setup SD card interface pinMode(53, OUTPUT);
    if (!card.init(SPI_FULL_SPEED),9) Serial.println("Error: Card init"); if (!volume.init(&card)) Serial.println("Error: Volume ini"); if (!root.openRoot(&volume)) Serial.println("Error: Opening root");

    And de results are

    MP3 Testing Error: Card init Error: Volume ini Error: Opening root SCI_Mode (0x4800) = 0x4800 SCI_Status (0x48) = 0x48 VS Version (VS1053 is 4) = 4 SCI_ClockF = 0x0 SCI_ClockF = 0x6000

    • Member #304495 / about 12 years ago / 1

      Strange - I'm using this shield with the same Mega 2560 Arduino, albeit through Bill Porter's 'SFEMP3Shield' library and it's working OK (I'm following up with Bill on an an unrelated problem on his web site). Besides making sure you've got the 4 SPI pins correctly connected the only thing I can point out is that Bill's code includes

      //MP3 Player Shield pin mapping. See the schematic

      define MP3_XCS 6 //Control Chip Select Pin (for accessing SPI Control/Status registers)

      define MP3_XDCS 7 //Data Chip Select / BSYNC Pin

      define MP3_DREQ 2 //Data Request Pin: Player asks for more data

      define MP3_RESET 8 //Reset is active low

      define SD_SEL 9 //select pin for SD card

      in its header and doesn't make the pinMode(53, OUTPUT) call above (not sure if that was in the comment or not).

      It's a very handy library - you may want to check it out. Good luck!

      • Member #304495, could you post the code that you are using? I have the shield working great on a Duemilanove, but now I'm trying to get it running on the Arduino Mega 2560. I have disconnected the SPI pins and reconnected them to the Mega SPI pins (as per the post above), but I am not having any success playing the sound files. Do you have any suggestions? Thanks, -Bob

  • Member #304495 / about 12 years ago / 1

    [ Also posted on Bill's SFEMP3Shield site]

    Hi everyone - I'm trying to use this MP3 shield through Bill's fabulous SFEMP3Shield library together with Adafruit's RGB LCD shield (see and for any details I may leave out) to play tracks from the SD card and put their names up on the LCD. I have buttons to skip forward and repeat but it looks like trying to do I/O to the LCD shield (which uses I2C using the 'Wire' library on pins 4 & 5) while I'm playing a song somehow makes it such that at the end of the song, when playback stops, the SdFatlib code can't find any data on the SD any longer. Trying to just play a random song from the SD works for one song, then no more. I can skip around between songs and start different songs fine but as soon as I let one play out, the sketch can't find any other tracks, even those it could've played a second ago.

    If I disable the code to do control the LCD (which appears to work fine, BTW) during playback (initializing it and putting up an initial message seems to do no harm) MP3 playback works as expected, playing random songs all day. The moment I re-enbable LCD display it fails (with playback error 2, file not found) after the first track.

    Code size seems around the limit - about 20K or so, but seems OK... Any ideas what may be going on here? The MP3 shield is using SPI, the LCD using i2c on address 0x20 and they seem to be using different pins - where's the conflict? Any hints greatly appreciated!

    Thanks in advance, -Patrick.

    • Member #304495 / about 12 years ago / 1

      FWIW it looks like the issue is something in the SFEMP3Shield library I'm using. I've reproduced the problem (on an Arduino Mega 2560 with jumpers for the SPI pins as mentioned in a post above) without the LCD involved at all. I'm following up directly with the author on his website ( ).

      The reason the code worked without the LCD involved was because removing the LCD function also removed the MP3 library's pause/resume functions that I suspect are involved in the problem. There's no reason to believe there's actually any incompatibility between this MP3 shield and Adafruit's RGB LCD shield at all and, in fact, they're starting to play together very nicely.

  • micke85 / about 12 years ago / 1

    How many pins will the shield use on a arduino uno ? I will need all 6 analog ports and at least 6 digital outputs. Or is it better to use a different card ?

  • durka42 / about 12 years ago / 1

    Does this work with the Mega 2560?

  • MrGreatGuy / about 12 years ago * / 1

    If you want to hook up a speaker to the board do you have to follow the amplifier Line out information? Nevermind I found my answer in a previous comment.

  • Member #293364 / about 12 years ago / 1

    Did anyone get this working on a ChipKit Max32? I face problems, mainly the SPI is on pins that are not chained to the shield SS = 53; // PIC32 SS2A MOSI = 51; // PIC32 SDO2A MISO = 50; // PIC32 SDI2A SCK = 52; // PIC32 SCK2A I tried to change them to 10,11,12,13 but no success

    Any help would be greatly appreciated!!

  • banolan / about 12 years ago / 1

    How do you decode Ogg Vorbis,MP3,AAC and WMA files? I tried changing the file extension in the MP3 Player example but that didn't work.

  • Pardeep / about 12 years ago / 1

    Is it possible to send a song directly to the shield from an arduino, without using the sd card? I mean tranfering the mp3 file through serial cable and then decode it using the mp3 shield.

  • Pardeep / about 12 years ago / 1

    Is it possible to send a song directly to the shield from an arduino, without using the sd card? I mean tranfering the mp3 file through serial cable and then decode it using the mp3 shield.

  • Artoo / about 12 years ago / 1

    Is this compatible with your 5V Arduino Pro, or does it require a full Arduino which has both 5V and 3.3V?

    • The Kontraptionist / about 12 years ago / 1

      The MP3 Player Shield has been tested as working with an Arduino Pro 3.3V on both LiPoly and USB programmer power and with an Arduino Uno with no modifications to hardware or code on either, save from the addition of the "9" in !card.init(SPI_FULL_SPEED,9)

      How it will perform on a partially charged battery is another issue that remains to be seen and will depend on the dropout of the voltage regulators, but for now 3.3V performance seems solid and there are no drops in audio at 8 MHz. FYI the Arduino Pro 3.3V doesn't have 3.3V and 5V pins, just VCC and VCC.

    • CF / about 12 years ago / 1

      Yes it is. This shield does not use the 3.3V pin. It has it's own regulator for that. You would have to modify it to work with a 3.3V Arduino Pro though.

  • faramaschi / about 12 years ago / 1

    Dear friends, can anyone help me? I bought an MP3 of this shield and now need to insert a control through a presence sensor. this sensor is 0V and 5V logic levels, but I am new to programming and do not know where I enter the codes that will make the play and stop function to the levels of 0V and 5V. I am using sample code provided by SparkFun with the necessary changes. Can anyone help me? Thank you.

  • microtherion / about 12 years ago / 1

    I'd like to experiment both with MP3 playing and with MIDI generation. Am I correct in assuming that the MP3 player shield can do everything that the Music Instrument Shield can do (including playing MIDI generated by the Arduino) ? Looking at the schematic with the connection from Arduino pin D4 to GPIO1, I would hope that this is true.

    • microtherion / about 12 years ago / 1

      Answering my own question, in case anybody else was wondering: Yes, the MP3 player shield plays MIDI just fine, with no extra hardware or board modification required. One would either send a General MIDI format 0 file to SPI, or it's possible to operate the shield in MIDI real time mode (like the Music Instrument Shield operates). The latter requires a small software patch (available from to switch the VS1053b to real time MIDI mode, then it's possible to send MIDI commands through SPI (instead of serial, as in most VS1053b related MIDI examples), as long as each byte is preceded by a 0x00 byte (the data shield says 0xFF, which turns out to be wrong).

      • microtherion / about 12 years ago * / 1

        Upon further review (and finally remembering what "NC" on a schematic means), it turns out that all these shenanigans are largely unnecessary, as the UART RX and GPIO1 pins are connected to the Arduino by default. All that's needed to make the Music Instrument examples work are two extra lines:

        pinMode(4, OUTPUT); // We want to control GPIO1
        digitalWrite(4, HIGH);  // ... and set the chip to real time MIDI mode (LOW = file/MP3 mode).

  • Wailer / about 12 years ago * / 1

    Is the extra ESD protection really necessary? I can see in the schematics that the standard (reference) ESD protection is incorporated in the shield, the extra protection is left out (?). This standard setup is labtested up to 8KV, what kind of amplifier gives this kind of discharge?

    • Wailer / about 12 years ago / 1

      Too bad nobody is responding (sparkfun?), it would be so much easier if the people at sparkfun would provide us with a simple solution for this because the "line out document" does not provide one but three(?) solutions (wich one should i use?). Maybe for a next revision of this board you could replace the speaker out with a line out (protected).

      • MikeGrusin / about 12 years ago / 2

        We've incorporated the "basic" ESD protection into the shield. This isn't so much about external amplifiers, it's about ESD that can come from humans walking on carpeting, etc. (You'll see HBM, Human Body Model, used in the specs.)

        The existing circuit works well for small speakers, headphones, and certain amplifiers (those with fully-differential inputs). Problems arise when you connect the MP3 Shield's negative output (which is not ground), to an amplifier which has a grounded negative input. In this case, current will loop between the amplifier and MP3 Shield through the MP3 chip, burning it out. To prevent this, you should connect the MP3 shield to an amplifier using the circuit on page 8 of the "Line Out Information" document. This circuit separates the two "grounds", preventing current loops from damaging the MP3 chip.

        • automaton / about 11 years ago / 1

          Is this circuitry already built into the STA540 amplifier kit or do I need to add it between the MP3 shield and that amplifier kit you sell?

        • Wailer / about 12 years ago * / 1

          Thanks for the reply, this is a helpfull answer. You don't happen to know the values of the capacitors C1 and C2 because there are no values given in the schematics of figure 8 (if that's the circuit you refering to).

          • MikeGrusin / about 12 years ago / 1

            That's the one. A commenter above suggests 10uF based on the schematic on page 7; I suspect that it's not critical what the values are.

            And remember that R7,R8,R9 and C3,C4,C5 are already on the shield, so you only need the other components. Good luck!

            • Wailer / about 12 years ago / 1

              Thanks! Only one small question (again), the 10uF caps in fig 7 are electrolytic only the symbol in fig 8 is for a ceramic type. Could i use both types? (asuring the polarity is right on a electrolytic type)?

              • MikeGrusin / about 12 years ago / 1

                From looking at what other people do with their amplifier circuits, I'd go with the 10uF electrolytic, with the + side towards the MP3 Shield.

                • Wailer / about 12 years ago / 1

                  Thanks for the help!!!

                  • Wailer / about 12 years ago / 1

                    It works ! The 10uF eletrolytic works like a charm. You have to set the output volume a bit higher then the standard 20 (Mp3SetVolume(20,20) in example code) this works well for a headphone but is too low for amplifier input. My setup works best on Mp3SetVolume(2,2), but the mp3 volume (normalization) level could be of influence as well. So with a few components 2 caps and 4 resistors (and figure 8 of the vs10XXan_output.pdf) you can build a adequate lineout with no worry's of burning out your mp3 shield.

                    Thanks again Mike.

                    • Member #323904 / about 12 years ago / 1

                      Hi Wailer,

                      would you please tell me what is the polarity for the caps ?


  • PBenapres / about 13 years ago / 1

    ¿what are those tiny regulators that you use for the 3v3 and 1v8 sources?

  • Almost Scientific / about 13 years ago / 1

    Hey All --
    I'm having some trouble compiling any of the example code above. I've followed the instructions in the comments and download the SdFat lib and installed it and edited Sd2PinMap.h. But the compiler can't find the needed header files (SdFat.h and SdFatUtil.h) but they are there. I've even placed them in the sketch folder and still I get the error:
    sketch_nov02a.cpp:53:19: error: SdFat.h: No such file or directory
    sketch_nov02a.cpp:54:24: error: SdFatUtil.h: No such file or directory
    Thanks in advance!

    • MikeGrusin / about 12 years ago / 1

      Put the SdFat folder in a "libraries" folder within your sketch folder. Restart the Arduino IDE, and it will find it.

  • JasonMcIver / about 13 years ago / 1

    Which pins are required ?

  • cottsay / about 13 years ago / 1

    Is this shield for the 5V or 3.3V Arduino?

  • Tadpole / about 13 years ago * / 1

    I spent forever (a litte over 2 hours) trying to get this to work, so I thought I'd drop some information for anyone else that is having difficulties. I kept getting errors using the MP3_Player_Example.pde code on the arduino 22 IDE. Specifically, it was only sporadically initializing the card, and then never making a volume (Error: volume ini) and Error: root. I did edit the Sd2PinMap.h in the last section for my Duemilenova so that the SSPIN for the clock select (CS) was set to 9, as opposed to teh default of 10. That wasn't helping at all so I reformated the card to FAT32 and downloaded the new SdFat library (simply google it). Voila it now works. No idea what was wrong before.
    I did have to change this line:
    if (!card.init(SPI_FULL_SPEED)) Serial.println("Error: Card init"); //Initialize the SD card and configure the I/O pins.
    if (!card.init(SPI_FULL_SPEED,9)) Serial.println("Error: Card init"); //Initialize the SD card and configure the I/O pins.
    The new SdFat allows you to change the CS when you innitialise the card, as opposed to messing in the library, which is REALLY nice.
    Hope this might help anyone. Now that it works I'm really happy with it!
    Now if only I could figure out what that line out warning is about. I think I see blue smoke already.

  • Darwin Grosse / about 13 years ago / 1

    I'm trying to get this shield to play nicely with an SPI RTC (the DeadOn DS3234-based breakout), but reads of the RTC aren't working correctly. Doing some debugging points to the card.init(SPI_FULL_SPEED) call as somehow bollixing up the serial read function.
    If I avoid the init call, reads and writes work fine through the shield. As soon as I init the SdFat systems through this call, the time reads become scrambled.
    Any ideas?

    • Almost Scientific / about 13 years ago /

      I'm looking to do the same thing. Did you get your problem solved?

  • Member #11962 / about 13 years ago / 1

    Also, is an 8Mhz Arduino fast enogh?

  • Member #11962 / about 13 years ago / 1

    Does anyone know where one can find the 3.5mm audio jack used on this board?
    It's very neat, slim and in the Spark Fun Eagle Library...

    • Pearce / about 13 years ago / 1

      We don't have it for sale separately, however it can be found on Digikey. Part number; CP-3523SJTR-ND

  • Member #251389 / about 13 years ago / 1

    What capacity card does it accept? 1G, 2G, 32 GB?
    Also what is the file system: fat 12, 16, 32?

  • Yoi / about 13 years ago / 1

    Need to hook it up to an external amp. Using the Simple Connection-diagram on page 8 of the line-out info sheet, what caps should I use for C1 & C2 (doesn't say) - also, any pointers on what parts of the code to modify in order to adress the part about "Some transient in the outputs during power up and down will occure if the startup is not slowed down with software." ?
    Or is there a 'ready to go' piece of hardware that just eliminates the power-on transient alltogether?

    • Using 10uF caps for C1 and C2. Got that value from C1 and C2 on page 7, which seem to be the same caps. Haven't tested it yet though.

  • r0ot / about 13 years ago / 1

    how can i protect the analog output? (yes i red the "Line Out Information")
    Do i have to build the examples myself or is there something ready to use (plug and play)?

  • Member #169273 / about 13 years ago / 1

    Do I need to save MP3 in any particular format? When I run the sample code and using track001.mp3, track002.mp3 or even my own mp3 they all shows Failed to open xxx.mp3?
    Tried to search the forum but not much talk about this shield.

  • Member #88110 / about 13 years ago / 1

    I have a need for something like this but it uses way too many pins.
    I truly wish the next rev interface for this unit is simply:
    AT COMMANDS {TX,RX,Gnd}, beyond the standard SPI, to access the uSD card.
    And it would be great if the TX/RX could be disconnected from the shield, in-case you need to use a Arduino mega boards extra serial TTL ports (as these not exposed on the arduino shield)
    It uses a lot of pins on the shield, limiting other functions

  • mmcp42 / about 13 years ago / 1

    does this shield support recording?
    I can't see mic connectors on the schematic

    • Snotomax / about 12 years ago / 1

      A mic jack would transform this shield into something so much better.

  • FredT / about 13 years ago * / 1

    This board is a cool little shield. However, it lack proper lineout support. The stereo jack is meant for headphone usage only, it should NOT be connected to an external amp. Anyone considering this shield should look at the evaluation board reference design to add the required filter for a line out configuration.
    See also:
    ESD protection and line-out|ESD protection of analog IO and example of quality line-out connection
    on this page:
    Beside that, the audio is really good. Able to play 320kbps mp3 with no problem.

    • mcuaust / about 13 years ago / 1

      Hi FredT,
      the link does not work.
      It would be handy for the board's next revision to include the outputs you described (in addition to the current ones).

      • FredT / about 13 years ago / 1

        Just updated the link.

  • sunil vallu / about 13 years ago / 1

    Hi all,
    Im fairly new to arduino and programming. Im able to play the .mp3 files on stereo with reasonable audio quality. Im running the mp3 player control example. seems to work flawlessly. But I needed to tweak the volume and playback sample-rate dynamically through a sensor input.
    is it possible on this shield?
    Has anybody tried something of this sorts? And also how does one pause and play the track?
    Thanks in advance,

  • Member #231177 / about 13 years ago / 1

    Hey just wondering how many pins this thing takes up. I'm pretty new to electronics but in the schematic it looks like pretty much all the digital pins on the Arduino would be used... is this the case? or would I be able to use it in conjunction with some other sensors etc?

  • Member #117765 / about 13 years ago / 1

    Just to warn people, you can't attache this sheild to an amplifier directly without burn the analog out of the vs.
    (Yes I've done that)
    So be carefull and read this doc (founded later): VLSI Application Note for protecting analog outputs(link on the mp3 trigger page product)

  • jwertz / about 13 years ago * / 1

    There seems to be an error in the MP3_Shield_Example.pde sample code. The pin definitions for DCS and DREQ need to be corrected.
    The lines:
    define MP3_XDCS 2 //Data Chip Select / BSYNC Pin
    define MP3_DREQ 3 //Data Request Pin: Player asks for more data
    need to be edited to read:
    define MP3_XDCS 7 //Data Chip Select / BSYNC Pin
    define MP3_DREQ 2 //Data Request Pin: Player asks for more data

  • Halibatsuiba / about 13 years ago / 1

    Could one stack two of these with one Arduino-board and play two mp3s simultaneously?
    (I am a PIC-guy, done nothing with Arduino. Yet.)

  • coopersnout / about 13 years ago / 1

    There really needs to be a like function, because if there was, I would so like this.

  • Warwickben / about 13 years ago / 1

    i had this idea to sick a arduino inside a gizmo doll and make it say bright lights and cry when light level goes up x amount. and when it goes down x amount gizmo says thank you and sings his song.

  • customer207 / about 13 years ago / 1

    This looks much easier to manage and understand then adafruit wave shield. It looks like its all processed in the VSLI chip, and not in software.

  • Leonidas993 / about 13 years ago / 1

    Wow this really helps!!! i've been working on a project like this for almost a month now and it's good to have something to work from!
    defenatley getting it!

  • jpkelly / about 13 years ago /

    On the schematic the Arduino pins which seem to be unused have an asterisk. Does anyone know what the asterisk denotes?

    • faramaschi / about 12 years ago / 1


    • The pins with an asterisk (D3, D5, D6, D9, D10, and D11) are the pins that can be used for pulse width modulation (PWM) output - this is an Arduino thing (actually an ATmega thing) and has nothing to do with this shield.

Customer Reviews

4 out of 5

Based on 3 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Awesome MP3 board!!!

The MP3 board simply was one of the easiest things to add to our component system and play with. I am a lighting designer so it was nice to use this MP3 board to integrate into our system and it is small enough so we could use it inside our own concealed box. Love love love it!

0 of 3 found this helpful:

MP3 Project

Haven't started my MP3 project yet. Still completing my Android game called Polgonroids (like asteroids only more fun). Have the prototype up and running but more development to come. I am currently completing a Masters in IT and use projects like this to test myself against complex logic and to keep up to date with programming. The MP3 shield will be used in conjunction with blue-tooth technology to build a high quality portable wireless speaker system which can be completely controlled by a typical android phone (like a PILL but much better, No shitty cables or audio). This means writing, deleting and streaming MP3 files and adjusting all sound properties. The speaker system will be very "arty" and perhaps decals can be specially designed to suit individual tastes. I will let you know how I go. I see great potential in your product for fun individual projects. So easy to imagine possibilities.


Need some update?!?


I cant compile the example sketch with the SFEMP3Shield library.

Compiling during 24h and didnt work ?

ANy idea if there is a better library somewhere?

I hacked on this for a bit and found that this library set includes the files needed to compile.