This symptom is typical of the interrupt not triggering the refill(). I bet if you play that or any other file, the music will advance about one second at a time, then stop.

I apologize for not being familiar with the Leonardo, as I don’t have one. So I am getting up to speed vicariously. Some Google Foo, leads me to see there are Issues with attachInterrupt(). Our method of establishing the pin’s interrupt to the refill(). INT.0 and INT.1  are SWAPPed. (nice). And that initial release of the Arduino IDE 1.0.0 had all INT’s outright broke.

So make sure you have IDE 1.0.1 or higher. As 1.0.1 fixed INT 0 & 1. IDE  1.0.2 also fixes INT 2 & 3. But note the Leonardo still has the pins of 2 and 3 swapped.


Two solutions:

1) put a jumper between D2 and D3. Remembering to leave D3 (not used by our example) as INPUT. I have actually done this on my UNO to validate that other INTs will work on this driver. (just not on a Leo).


2) Change line 174 of SFEMP3ShieldConfig.h to :


It is by default: USE_MP3_INTx

You can also try USE_MP3_Timer1