Can't get MP3 shield to work...

I have had this blasted MP3 shield (two now) and I can't get them to work. The one I have from Geeetech will even tell me how many tunes I have on my card, how much room I have left, etc but no sound. I just want to get this thing to work! >:( >:( >:( >:( >:(

What can we help you with? You do understand, I hope, that we can't read your mind or your screen so aside from the vendor of one MP3 shield we have no idea what you tried.

Point to the device you bought.
Point to the library you installed.
Point to the library example you are using to check your hardware.
If you aren't using an Arduino UNO R3 then what board are you using?

I'm using one of the Chinese copies of an UNO board...

I don't understand "Pointing". I have used so many different libraries that I'm ready to just blow them all away and start over...

Help please!

lkmont:
I don't understand "Pointing".

He means let us know which libraries you used etc. I don't know how you think we can help without knowing those things. I don't know anyone who can find bugs in code they can't see.

Provide a link to the MP3 board, provide a link to the library used etc.

And maybe a program? And a connection diagram?

My crystal ball is unable to tune in to your system.

Weedpharma

Delta: The libraries that i used are

SFEMP3Shield (exactly as I received it without any changed items)
SDFAT (exactly as I received it without any changed items)

The error messages are as follows:

Arduino: 1.6.8 (Windows 7), Board: "Arduino/Genuino Uno"

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:22:6: error: 'SdFatBase' has not been declared

void SdFatBase::errorHalt(Print* pr) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: In function 'void errorHalt(Print*)':

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:23:16: error: 'errorPrint' was not declared in this scope

errorPrint(pr);

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: At global scope:

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:27:6: error: 'SdFatBase' has not been declared

void SdFatBase::errorHalt(Print* pr, char const* msg) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: In function 'void errorHalt(Print*, const char*)':

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:28:21: error: 'errorPrint' was not declared in this scope

errorPrint(pr, msg);

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: At global scope:

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:32:6: error: 'SdFatBase' has not been declared

void SdFatBase::errorHalt(Print* pr, const __FlashStringHelper* msg) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: In function 'void errorHalt(Print*, const __FlashStringHelper*)':

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:33:21: error: 'errorPrint' was not declared in this scope

errorPrint(pr, msg);

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: At global scope:

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:37:6: error: 'SdFatBase' has not been declared

void SdFatBase::errorPrint(Print* pr) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: In function 'void errorPrint(Print*)':

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:38:22: error: 'cardErrorCode' was not declared in this scope

if (!cardErrorCode()) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:42:27: error: 'cardErrorCode' was not declared in this scope

pr->print(cardErrorCode(), HEX);

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:44:29: error: 'cardErrorData' was not declared in this scope

pr->println(cardErrorData(), HEX);

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: At global scope:

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:47:6: error: 'SdFatBase' has not been declared

void SdFatBase::errorPrint(Print* pr, char const* msg) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:53:6: error: 'SdFatBase' has not been declared

void SdFatBase::errorPrint(Print* pr, const __FlashStringHelper* msg) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:59:6: error: 'SdFatBase' has not been declared

void SdFatBase::initErrorHalt(Print* pr) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: In function 'void initErrorHalt(Print*)':

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:60:20: error: 'initErrorPrint' was not declared in this scope

initErrorPrint(pr);

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: At global scope:

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:64:6: error: 'SdFatBase' has not been declared

void SdFatBase::initErrorHalt(Print* pr, char const *msg) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:69:6: error: 'SdFatBase' has not been declared

void SdFatBase::initErrorHalt(Print* pr, const __FlashStringHelper* msg) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:74:6: error: 'SdFatBase' has not been declared

void SdFatBase::initErrorPrint(Print* pr) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: In function 'void initErrorPrint(Print*)':

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:75:21: error: 'cardErrorCode' was not declared in this scope

if (cardErrorCode()) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:81:18: error: 'vol' was not declared in this scope

} else if (vol()->fatType() == 0) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:83:19: error: 'vwd' was not declared in this scope

} else if (!vwd()->isOpen()) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp: At global scope:

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:90:6: error: 'SdFatBase' has not been declared

void SdFatBase::initErrorPrint(Print* pr, char const *msg) {

^

C:\Users\larry_montgomery\Documents\Arduino\libraries\SdFat\SdFatBase.cpp:95:6: error: 'SdFatBase' has not been declared

void SdFatBase::initErrorPrint(Print* pr, const __FlashStringHelper* msg) {

^

exit status 1
Error compiling for board Arduino/Genuino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

As far as a connection goes, It is only the UNO with the shield on top connected to my laptop. Headphones connected to the jack.

I have formatted the MP3 files to be no larger than 192KB.

It sees the memory chip and can tell me what is on it. I just don't know what else I need to get it to work.

I apologize for not knowing more about this, but if someone could take me through this one step at a time? That might work.

It looks like you haven't installed the libraries correction.

You should provide a link ( the url ) to where you found that MP3 library and to the shield you are using.

@lkmont, has it not occurred to you that you may get more help with a useful title such as "Can't get MP3 shield to work"

If you edit your Original Post you can change the title.

...R

OK, here it goes. The MP3 player

The config

https://raw.githubusercontent.com/sparkfun/MP3_Player_Shield/V_1.5/firmware/MP3_RawPlay/MP3_RawPlay.ino

Hi,
Welcome to the forum.

Please read the first post in any forum entitled how to use this forum.
http://forum.arduino.cc/index.php/topic,148850.0.html
then look down to item #7 about how to post your code.
It will be formatted in a scrolling window that makes it easier to read.

We need to see your sketch to correlate it to the errors.
As some have said, it looks like a library problem.
The error list tells you where your library folders should be , so it would be worth checking them first.
We need to know what sites you got the libraries from, hence asking for their URL or link.

Thanks.. Tom.. :slight_smile:

lkmont:
OK, here it goes. The MP3 player. SparkFun MP3 Player Shield - DEV-12660 - SparkFun Electronics

The config
https://raw.githubusercontent.com/sparkfun/MP3_Player_Shield/V_1.5/firmware/MP3_RawPlay/

  1. That sketch says it is for https://www.sparkfun.com/products/10628
  2. That sketch does not use the SDFAT library
  1. That sketch does not use the SDFAT library

Which means that it was not the sketch that gave you the error message you posted.

Whew... this is so confusing!

I appreciate your guys help on this.

OK, I have two mp3 boards. I got a bit confused between them. I have the Geeetech one here:
http://www.geeetech.com/wiki/index.php/Arduino_MP3_shield_board_with_TF_card

I have attached the sketch to this post.

It doesn't make any sounds but the only error message I get is this warning:

Sketch uses 5,122 bytes (15%) of program storage space. Maximum is 32,256 bytes.
Global variables use 1,987 bytes (97%) of dynamic memory, leaving 61 bytes for local variables. Maximum is 2,048 bytes.
Low memory available, stability problems may occur.

sketch_apr13o.ino (19.9 KB)

That's not an error. That's the message you get from a successful compile and a warning that the program uses nearly all the RAM memory.

So, I guess my question is why don't I hear it make sound?

OK, I think I have made some real headway.

I deleted all of my library.
Next, I deleted all of the sketches that might have been monkeyed around by me.
Then I made new sketches, and loaded brand new library entries.

The error messages have cleared now and I can load the sketches onto the boards! I must have been having a conflict with too many files named the same thing. I guess you only need one library entry even if you have multiple sketches that reference it.

I am having an issue with the SD not being seen, but the greatest piece is no longer an issue!

How does this error manifest itself? Does the code send a message to the serial monitor?
If so it might be the card is not formatted correctly for the library.

The serial monitor was usually quiet. Nothing to be displayed. Occasionally I would get what looked like code letters. If you tried to issue a command it would get nothing back.

The error(s) came in while the sketch was being checked. You would see it in red at the bottom of the screen, before you would upload it to the UNO/MP3. Just a long litany of errors, many looking like duplicates. Now if I could only get it to recognize my micro SD card slot... But at least it is working!!! I really feel stupid but I am new at this and I am learning.

You know... This Arduino stuff is going to be big. Especially for DIY nuts like myself.

You would see it in red at the bottom of the screen, before you would upload it to the UNO/MP3.

If there are errors in red then that code does not get uploaded to the Arduino, it just runs the code already in it.

Errors like this are often caused by you not having the libraries installed correctly.