MP3 Shield

Adafruit Ethernet, Motor, Proto, Wave, Datalogger, GPS Shields - etc!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
Robskee_013
 
Posts: 4
Joined: Wed Sep 20, 2017 6:26 pm

MP3 Shield

Post by Robskee_013 »

Hey guys,

i'm having a slight issue with my mp3 shield.
Now i accept that i'm a noob in the wonderous world of arduino, but i'm pretty sure it's not me.

I've figured out how to get the shield to play music over the headphone jack, but when i use the direct speaker outputs it wont make a peep.

I've tried holding the speakers leads against the headphone's jack contacts and it plays very softly (even with the volume on 1, 1)
but when i press the leads against the speaker ports or solder them in place, it doesnt work.

so the actual questions.

- Do i have to change anything, either in the code or in the solder connections on the board (like a jumper)
- Do i have to use the terminal connectors shown on pictures, because i assumed making a simple solder connection would work just as well.

Here is the code i used, its the standard code with a slight change to the "Shield to breakout board" and the volume is set to 10

I use the code on a arduino Uno, so the solder jumpers should remain open according to the tutorial

Code: Select all

 /*************************************************** 
  This is an example for the Adafruit VS1053 Codec Breakout

  Designed specifically to work with the Adafruit VS1053 Codec Breakout 
  ----> https://www.adafruit.com/products/1381

  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

// include SPI, MP3 and SD libraries
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>

// define the pins used
//#define CLK 13       // SPI Clock, shared with SD card
//#define MISO 12      // Input data, from VS1053/SD card
//#define MOSI 11      // Output data, to VS1053/SD card
// Connect CLK, MISO and MOSI to hardware SPI pins. 
// See http://arduino.cc/en/Reference/SPI "Connections"

// These are the pins used for the breakout example
#define BREAKOUT_RESET  9      // VS1053 reset pin (output)
#define BREAKOUT_CS     10     // VS1053 chip select pin (output)
#define BREAKOUT_DCS    8      // VS1053 Data/command select pin (output)
// These are the pins used for the music maker shield
#define SHIELD_RESET  -1      // VS1053 reset pin (unused!)
#define SHIELD_CS     7      // VS1053 chip select pin (output)
#define SHIELD_DCS    6      // VS1053 Data/command select pin (output)

// These are common pins between breakout and shield
#define CARDCS 4     // Card chip select pin
// DREQ should be an Int pin, see http://arduino.cc/en/Reference/attachInterrupt
#define DREQ 3       // VS1053 Data request, ideally an Interrupt pin

Adafruit_VS1053_FilePlayer musicPlayer = 
  // create breakout-example object!
  // Adafruit_VS1053_FilePlayer(BREAKOUT_RESET, BREAKOUT_CS, BREAKOUT_DCS, DREQ, CARDCS);
  // create shield-example object!
  Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
  
void setup() {
  Serial.begin(9600);
  Serial.println("Adafruit VS1053 Simple Test");

  if (! musicPlayer.begin()) { // initialise the music player
     Serial.println(F("Couldn't find VS1053, do you have the right pins defined?"));
     while (1);
  }
  Serial.println(F("VS1053 found"));
  
   if (!SD.begin(CARDCS)) {
    Serial.println(F("SD failed, or not present"));
    while (1);  // don't do anything more
  }

  // list files
  printDirectory(SD.open("/"), 0);
  
  // Set volume for left, right channels. lower numbers == louder volume!
  musicPlayer.setVolume(10,10);

  // Timer interrupts are not suggested, better to use DREQ interrupt!
  //musicPlayer.useInterrupt(VS1053_FILEPLAYER_TIMER0_INT); // timer int

  // If DREQ is on an interrupt pin (on uno, #2 or #3) we can do background
  // audio playing
  musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT);  // DREQ int
  
  // Play one file, don't return until complete
  Serial.println(F("Playing track 001"));
  musicPlayer.playFullFile("track001.mp3");
  // Play another file in the background, REQUIRES interrupts!
  Serial.println(F("Playing track 002"));
  musicPlayer.startPlayingFile("track002.mp3");
}

void loop() {
  // File is playing in the background
  if (musicPlayer.stopped()) {
    Serial.println("Done playing music");
    while (1) {
      delay(10);  // we're done! do nothing...
    }
  }
  if (Serial.available()) {
    char c = Serial.read();
    
    // if we get an 's' on the serial console, stop!
    if (c == 's') {
      musicPlayer.stopPlaying();
    }
    
    // if we get an 'p' on the serial console, pause/unpause!
    if (c == 'p') {
      if (! musicPlayer.paused()) {
        Serial.println("Paused");
        musicPlayer.pausePlaying(true);
      } else { 
        Serial.println("Resumed");
        musicPlayer.pausePlaying(false);
      }
    }
  }

  delay(100);
}


/// File listing helper
void printDirectory(File dir, int numTabs) {
   while(true) {
     
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       //Serial.println("**nomorefiles**");
       break;
     }
     for (uint8_t i=0; i<numTabs; i++) {
       Serial.print('\t');
     }
     Serial.print(entry.name());
     if (entry.isDirectory()) {
       Serial.println("/");
       printDirectory(entry, numTabs+1);
     } else {
       // files have sizes, directories do not
       Serial.print("\t\t");
       Serial.println(entry.size(), DEC);
     }
     entry.close();
   }
}
 
Included a few images of the board with soldering connections
Speaker ports
Speaker ports
rsz_dsci1600.jpg (943.09 KiB) Viewed 447 times
Back side MP3 Shield
Back side MP3 Shield
rsz_dsci1599.jpg (777.58 KiB) Viewed 447 times
Side view top side
Side view top side
rsz_dsci1595.jpg (682.09 KiB) Viewed 447 times

User avatar
Robskee_013
 
Posts: 4
Joined: Wed Sep 20, 2017 6:26 pm

Re: MP3 Shield

Post by Robskee_013 »

just a slight update, this is the wiring in the demo mode

the 2 speakers in the image is the same one but i switch the white leads between 15+16 and 20+21

the speaker isn't exactley the one that's noted in the manual.
the speaker i used is a 130w 4Ω, on the headphone port (line port) it gives the sound tough it's very soft, on the speaker port there is no audio at all.

the LED is to see the reset blink, during the MP3 playback it keeps blinking so i can keep track wether or not the file is still playing.


i switched the mp3 file to the standard MIDI code because it loops.
Test board 1.jpg
Test board 1.jpg (983.48 KiB) Viewed 426 times

User avatar
jim_lee
 
Posts: 709
Joined: Thu May 24, 2012 8:24 pm

Re: MP3 Shield

Post by jim_lee »

Notice on your wiring image there is a chip showing next to your speaker outputs. Now look at the board you are using. That chip is not there. From what I remember, that chip is the amplifier for your speakers. No amp, no sound. Some have the amp, some don't.

-jim lee

User avatar
Robskee_013
 
Posts: 4
Joined: Wed Sep 20, 2017 6:26 pm

Re: MP3 Shield

Post by Robskee_013 »

jim_lee wrote:Notice on your wiring image there is a chip showing next to your speaker outputs. Now look at the board you are using. That chip is not there. From what I remember, that chip is the amplifier for your speakers. No amp, no sound. Some have the amp, some don't.

-jim lee
i contacted my supplier and they let me know the sent the wrong board.
i hadnt even checked that, i feel so dumb right now haha
thanks Jim for your reply

-Rob

User avatar
jim_lee
 
Posts: 709
Joined: Thu May 24, 2012 8:24 pm

Re: MP3 Shield

Post by jim_lee »

No worries!

-jim lee

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino Shields from Adafruit”