Home Forums Sparkfun MP3 Shield Library Support Forum Problem with ElecFreaks MP3 Shield (Seeeduino compatible)

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
  • #2913

    Hello, I am using an ElecFreaks MP3 Shield v2.0. It has a VS10538 chip. I believe that it uses the same pins as the Seeeduino Music Shield. I first loaded the “MP3Shield_Library_Demo.ino” sketch without changing “#define SEEEDUINO 0”. That resulted in this Serial output:

    Free RAM = 2292 Should be a base line of 1040, 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

    Next, I changed “#define SEEEDUINO 0″ to ‘#define SEEEDUINO 1” in the SFEMP3ShieldConfig.h.
    When I try to test or compile that I get this:

    C:\Program Files (x86)\Arduino\libraries\SFEMP3Shield\SFEMP3Shield.cpp: In static member function ‘static void SFEMP3Shield::enableRefill()’:
    C:\Program Files (x86)\Arduino\libraries\SFEMP3Shield\SFEMP3Shield.cpp:1743: error: ‘MP3_DREQINT’ was not declared in this scope
    C:\Program Files (x86)\Arduino\libraries\SFEMP3Shield\SFEMP3Shield.cpp: In static member function ‘static void SFEMP3Shield::disableRefill()’:
    C:\Program Files (x86)\Arduino\libraries\SFEMP3Shield\SFEMP3Shield.cpp:1761: error: ‘MP3_DREQINT’ was not declared in this scope

    I am using the Arduino 1.0.5 application. I have an Arduino Uno R3.
    I made sure that I have the latest SFEMP3Shield and SdFat (sdfatlib20130629.zip) libraries.
    I have read the forums here, the support and troubleshooting info and the code to try to follow what is causing this error. The Arduino help web site says it is caused by ‘MP3_DREQINT’ being an undeclared variable.

    Any help that anyone can provide would be much appreciated.


    Sorry, its a VS1053B chip.


    Note that Seeduino MP3’s DREQ pin is not connected to a Arduino Pin that support’s Interrupts. Hence the Error that MP3_DREQINT was undefined, as there is nothing to point it to on the Seeduino MP3 shield.

    This is denoted in the support documentation

    So the work around is to configure SFEMP3ShieldConfig.h’s line 195 the refill method to use something other than USE_MP3_INTx.

    #define USE_MP3_REFILL_MEANS USE_MP3_Polled
    Then it will compile.


    Two questions:  should the RX pin (pin2) be connected to 3.3V on the elecfreaks module?  According to the VS1053b datasheet this pin should be connected to IOVDD / 3.3v if not used.  On the shield it is connected to an interrupt pin, pin 2.

    Secondly, in theory could the DREQ pin be connected to an interrupt pin if it was connected to the Arduino via jumper or breadboard?  I am curious if the analog pin could be abandoned and an interrupt pin be used to drive the DREQ line.

    One more thing on elecfreak’s forum – it has come to my attention that a 1M resistor is missing, R4, which is directly below the crystal.  It’s the only pad not populated below the crystal.  image can be provided if needed.  I noted a ‘floating logic’ problem receiving commands.  When I touch pins 1 and 2 then the serial data / commands display in serial monitor.  I have a feeling this may be the reason why it behaves this way.  I’m going to solder a 1M resistor in today and will get back with my results.

    Last tip – if the SD card cannot be accessed, add this line after including libraries…

    #define SD_SEL  10


    OK, I have a working module now.  There is a resistor missing (R4) below the crystal.  solder in a 1M ohm resistor.  I had no SMD resistors so I used a small radial 1/4 watt and it works perfectly now.

    I’ve also worked out the kinks in the demo sketch and Bill’s libraries for this Elecfreaks module.  I’m adding full joystick support to the demo now.  When done I will link to the .rar files

    Image of the missing resistor to follow …



    Hi Relic, did you finish your new library yet?

    I’d like tot use it when possible, please let mee know


    To the following file


    append the following code to it:

    #undef MP3_XCS
    #undef MP3_XDCS
    #undef MP3_DREQ
    #undef MP3_DREQINT
    #undef MP3_RESET
    #undef SD_SEL
    #define MP3_XCS             A3  //Control Chip Select Pin (for accessing SPI Control/Status registers)
    #define MP3_XDCS            A2  //Data Chip Select / BSYNC Pin
    #define MP3_DREQ            A1  //Data Request Pin: Player asks for more data
    #define MP3_DREQINT           //Corresponding INTx for DREQ pin
    #define MP3_RESET           A0  //Reset is active low
    #define SD_SEL              10  //select pin for SD card
    #define USE_MP3_REFILL_MEANS USE_MP3_Polled

    For a quick test it is simpler to use the #undef to remove any prior pin assignments. And per the schematics/docs I believe the above should work.

    Note there DREQ does not land on any IRQ’s, hence the driver needs to run the refill mode as POLLed. Subsequently the MP3_DREQINT is not used.




Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.