Go Down

Topic: DFPlayer Noise: Researched, Tried, and Bep Bep Bep Bep Bep ... (Read 717 times) previous topic - next topic

beapilot

Spent an entire day researching and attempting to fix the DFPlayer noise problem. The amp works as expected, so it is not the problem. I have made a video to help you better understand the sound produced: https://www.youtube.com/watch?v=uK2kkR0XjFs&feature=youtu.be

This is the amp/speaker used: https://sites.google.com/site/wayneholder/chiptunes

https://imgur.com/oce7We9


The amp with speaker works as expected using another similar mp3 player like from a computer or possibly a phone.

https://imgur.com/UkiO8oS

Here we get the bep bep bep bep bep... as the amp/speaker has its own battery power.

https://imgur.com/vjsYYlL


Here I made everything as one power source. Bep bep bep bep bep...

I think I exhausted my research and made the following attempts:

  • Electrolytic Capacitor at the power terminals
  • Electrolytic Capacitor parallel with ceramic capacitor from negative terminal to VCC in DFPlayer
  • Diode from positive terminal to VCC in DFPlayer
  • Battery Power source; USB power source; Power Supply power source; 5V USB plug regulator power source
  • 1k Resistor from TX RX; Rx Tx
  • 1-10k resistor from Rx Tx
  • 1k between channel to GND
  • Separate power source for each the Arduino, amp, and DFPlayer
  • Tried multiple DFPlayers


Keep note that the amp/speaker works well. The files are the same both on the computer and in the SD card.

Here is my code:
Code: [Select]

#include <DFRobotDFPlayerMini.h>

/***************************************************
DFPlayer - A Mini MP3 Player For Arduino
 <https://www.dfrobot.com/index.php?route=product/product&product_id=1121>
 
 ***************************************************
 This example shows the basic function of library for DFPlayer.
 
 Created 2016-12-07
 By [Angelo qiao](Angelo.qiao@dfrobot.com)
 
 GNU Lesser General Public License.
 See <http://www.gnu.org/licenses/> for details.
 All above must be included in any redistribution
 ****************************************************/

/***********Notice and Trouble shooting***************
 1.Connection and Diagram can be found here
 <https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
 2.This code is tested on Arduino Uno, Leonardo, Mega boards.
 ****************************************************/

#include <Arduino.h>
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>
int counter = 0;
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup()
{
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
 
  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini Demo"));
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
 
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
  }
  Serial.println(F("DFPlayer Mini online."));
 
  myDFPlayer.volume(15);  //Set volume value. From 0 to 30
  delay(1000);
myDFPlayer.enableDAC();  //Enable On-chip DAC
}

void loop()
{
  static unsigned long timer = millis();
  if(millis() - timer > 1000 && counter == 0)
  {
   myDFPlayer.play(1);
   Serial.println(F("Music Started"));
   delay(1000);
   Serial.println(F("1 second later..."));
   delay(6000);
   Serial.println(F("7 seconds later..."));
   delay(1000);
   counter =1;
  }


delay(7000);
 
  if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
  }
}

void printDetail(uint8_t type, int value){
  switch (type) {
    case TimeOut:
      Serial.println(F("Time Out!"));
      break;
    case WrongStack:
      Serial.println(F("Stack Wrong!"));
      break;
    case DFPlayerCardInserted:
      Serial.println(F("Card Inserted!"));
      break;
    case DFPlayerCardRemoved:
      Serial.println(F("Card Removed!"));
      break;
    case DFPlayerCardOnline:
      Serial.println(F("Card Online!"));
      break;
    case DFPlayerPlayFinished:
      Serial.print(F("Number:"));
      Serial.print(value);
      Serial.println(F(" Play Finished!"));
      break;
    case DFPlayerError:
      Serial.print(F("DFPlayerError:"));
      switch (value) {
        case Busy:
          Serial.println(F("Card not found"));
          break;
        case Sleeping:
          Serial.println(F("Sleeping"));
          break;
        case SerialWrongStack:
          Serial.println(F("Get Wrong Stack"));
          break;
        case CheckSumNotMatch:
          Serial.println(F("Check Sum Not Match"));
          break;
        case FileIndexOut:
          Serial.println(F("File Index Out of Bound"));
          break;
        case FileMismatch:
          Serial.println(F("Cannot Find File"));
          break;
        case Advertise:
          Serial.println(F("In Advertise"));
          break;
        default:
          break;
      }
      break;
    default:
      break;
  }
}







beapilot

The source of noise is coming from the DFPlayer: https://youtu.be/nJpbncvTetU

I used the positive wire from the amp to check it. Please see the video. Any ideas?

beapilot

Solution found through trial and error, lots of it, with the help of the Lord.
It was a ground problem. The GND pin on the right side needs to be wired to the GND terminal (negative). The GND between SPK1 and SPK2 is the GND of the data wire that goes to the amplifer. Optional to place a GND wire to the GND terminal here.
What remains is a small hum sound unlike the annoying bep bep bep bep. ....

Anyways, this I think will help those who are struggling.



Go Up