Fnm16p mp3 with arduino nano, uno

I am trying to make this project and apply it application for modern project
but currently, I am getting problems and issue
please solve this?
I have currently make proper connections and uploaded my program that was working but getting an error
on serial monitor

DFRobot DFPlayer Mini Demo
Initializing DFPlayer ... (May take 3~5 seconds)
Unable to begin:

  1. Please recheck the connection!
  2. Please insert the SD card!
    solve and give me
    a solution...
    i want to play music after fsr trigger so that why i am using fnm16p mp3 module
    but now i am getting error....
    while upload program that was successfully uploaded but no one data processed..
    and no one music play

code:

So you want help with wiring you have not told us about or code you have not shown, is this correct?

You should also request that a moderator move this thread into a more on-topic form, like "Project Guidance".

Installation & Troubleshooting is for getting the IDE installed/setup and working.

fnm13p_testing.ino (3.5 KB)


Ī. Aashish

fnm13p_testing.ino (3.53 KB)

@tcarduino, your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with (nor for advise on) your project :wink: See About the Installation & Troubleshooting category.

If you look at the link in the code you provided: DFPlayer_Mini_SKU_DFR0299-DFRobot

It would appear you have your RX/TX pins swapped.

So nothing is going to be done about this persistent problem, is it? :roll_eyes:

@tcarduino, why did you move it back to Installation and Troubleshooting? Installation and Troubleshooting is NOT for problems with your project; did you read the link that I gave in post #6?

Probably related to the reason the OP is having difficulty with the Arduino? :thinking:

I solved my issue which i faced with the pin 10, 11 has been successfully work but now
I want same worked with rx and Tx pin 0 and 1 which is showing same error...
I am getting stuck on my project to complete

What did you do to solve it? If it's code related, post your new sketch; this time, don't attach but post it in a reply using code tags (the </> button).

Please show your sketch that attempts to use RX and TX.

Your original code from reply #5

/***************************************************
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"

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)"));
      myDFPlayer.reset();
  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(10);  //Set volume value. From 0 to 30
  myDFPlayer.play(1);  //Play the first mp3
}

void loop()
{
  static unsigned long timer = millis();

  if (millis() - timer > 3000) {
    timer = millis();
    myDFPlayer.next();  //Play next mp3 every 3 second.
  }

  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;
  }
}

/*

*/

`#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial (10, 11);  // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail();

void setup()
{ Serial.begin(115200);
  mySoftwareSerial.begin(9600);
  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(("Unable to begin:"));
    Serial.println(("1.Please recheck the connection!"));
    Serial.println(("2.Please insert the SD card!"));
    while (true);
  }
  Serial.println(F("DFPlayer Mini online."));
  millis();
  myDFPlayer.volume(30);  //Set volume value. From 0 to 30
  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
  myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD);
  Serial.print(myDFPlayer.read());
  Serial.println("files: ");

  myDFPlayer.play();
}

void loop()
{
  static unsigned long timer = millis();

  if (millis() - timer > 3000) {
    timer = millis();
    myDFPlayer.play();
    //myDFPlayer.next();  //Play next mp3 every 3 second.
  }

  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;
  }
}`

i have solved previous problem using this
but now i am testing another one to play same using rx and tx 0 and 1 respectively pin in place of 10 , 11.
now want to solved this
soon....

I don't see your sketch that wants to make use of RX and TX.

Are you trying to use SoftwareSerial mySoftwareSerial (0, 1); ? That will not work.

but why?

#include <DFRobotDFPlayerMini.h>

#include <SoftwareSerial.h>

SoftwareSerial mySoftwareSerial( 0 , 1 ); // RX, TX

DFRobotDFPlayerMini myDFPlayer;

void setup() {

  pinMode (8 , OUTPUT);
  //pinMode (3 , OUTPUT);
  digitalWrite(8 , LOW);
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
  Serial.println();
  Serial.println(F(" introducing force sensor music system "));
 // Serial.println(F("initializing music player"));
  //check SD card connection
  if (!myDFPlayer.begin(mySoftwareSerial))
  {Serial.println("unable begin");
  Serial.println("recheck connecton");
  Serial.println("insert sd card again");
    while(true);
  }
    Serial.println("success to established connection");
    millis();
    //volume control
    myDFPlayer.volume(30);  // volume ranges 10 to 30
    myDFPlayer.volumeUp();
    myDFPlayer.volumeDown();

    myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
  // put your setup code here, to run once:
}

void loop() {  // put your main code here, to run repeatedly:

 int fs_reading = 1023 - analogRead(A0);
 Serial.print(" force reading = > ");
 Serial.println(fs_reading); // print the raw analog sensor reading 
 delay(1000);
 
if (fs_reading < 100) //
Serial.println(" - trigger ");
else if (fs_reading < 300)
Serial.println(" - low pressure ");
else if (fs_reading < 500)
Serial.println("- medium squeeze ");
else if (fs_reading < 700)
Serial.println("- medium pressure ");
else if (fs_reading < 900)
Serial.println("- heavy pressure ");
else
Serial.println(" - fool on ");
delay(1000);

if (fs_reading > 600)
{  digitalWrite(8 , HIGH);
   myDFPlayer.play(1);
   Serial.println(" music on ");
   delay (1000);
  }
}

but why will it not work?
i have seen a project connection like this so i thought it could be..

The RX and TX pins on the Uno, Nano and Mega are the HardwareSerial pins that are also used for the communication with the TTL-to-USB converter.

If you want to use them, use Serial for the communication with the player; you will loose the ability to communicate with the PC.

like what i can lose during that
i have tried another one code if anyone got missing and error on the code just let me know first...and help

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

//SoftwareSerial mySoftwareSerial (0 , 1); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail();

void setup()
{ 
  Serial.begin(9600);
 // mySoftwareSerial.begin(9600);  
  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(("Unable to begin:"));
    Serial.println(("1.Please recheck the connection!"));
    Serial.println(("2.Please insert the SD card!"));
    while (true);
  }*/
  while(!myDFPlayer.begin(Serial))
  { Serial.print("Unable to begin:");
    while(true);            
    }
  Serial.println(F("DFPlayer Mini online."));
  millis();
  myDFPlayer.volume(30);  //Set volume value. From 0 to 30
  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
  myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD);
  Serial.print(myDFPlayer.read());
  Serial.println("files: ");
}

void loop()
{
  static unsigned long timer = millis();

  if (millis() - timer > 3000) {
    timer = millis();
     myDFPlayer.play();
    //myDFPlayer.next();  //Play next mp3 every 3 second.
  }

  if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
  
  }
}
 
![dat1|688x451](upload://pLtrG9wAwwDxRnn5s9inOc5t6QI.png)


result in my serial monitor
it's not working...

You can not simultaneously have your serial monitor open AND have your player connected to pins 0/1. You don't get to use a Serial port with 2 things.

If you are using pins 0/1 for the player, you will have to remove all of your Serial.print() calls... and not have Serial Monitor open. And possibly disconnect your player when you want to upload a new sketch...