2

I have a DFPlayer Mini bought from AliExpress. The player works correctly in standalone mode, but I am having troubles while using it with the following components:

  • Seeduino v4.0;
  • 2GB Smartbuy MicroSD card.

When I try to use this standard sketch for Arduino to connect my Seeeduino V4 to the player:

  • if I set the serial like mySoftwareSerial(11, 10), the player's tiny LED turns on for 2 seconds, then it switches off, and after that, the board tells me the error message below (video here);
  • if I set the serial like mySoftwareSerial(10, 11), the player`s tiny LED switches on and remains being switched on, while the board tells me the error message below (video here):
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!

This module's image: Image

The circuit diagram:

schematic

simulate this circuit – Schematic created using CircuitLab

I have tried almost everything I could. I changed the filenames on my SD card, tried to use different pins, tried to use different wires..! I even tried to disconnect the speaker from the player!

I also had seen this message on the manufacturer`s forum:

I found that the solder joint on the TX pin was bridged to the SD card holder, effectively bridging the pin to the ground. Try a continuity test between the TX and ground. If they are connected you have a bad joint. I was able to remove the excess solder and it worked fine after that. It's a medium difficulty soldering task.

Maybe, it`s my case?

Starter
  • 153
  • 12
  • 1
    The module functions as a stand-alone player. If you find a tutorial where someone is controlling it with buttons and you have success with that, you can eliminate any concerns you may have about the sdcard, its formatting, the sound files, and their formatting. You can then edit your question to remove those concerns, put the actual code your using, and clear images of the actual wiring. – timemage Dec 09 '20 at 14:01
  • You didn't show, how you connected the player to the Arduino – chrisl Dec 09 '20 at 14:46
  • 1
    @chrisl, edited the question. – Starter Dec 10 '20 at 01:51
  • @timemage, fixed everything I could – Starter Dec 10 '20 at 15:45
  • The comment I left suggested you try it without an Arduino, with only the button signals as a diagnostic test to be certain that your file and card formats and names are correct. Did you in fact do this test? – timemage Dec 10 '20 at 16:09
  • 2
    The player works correctly in standalone mode, @timemage. – Starter Dec 11 '20 at 13:44
  • You can edit that fact into your question early on, since it will answer a bunch of questions straight off. – timemage Dec 11 '20 at 14:29
  • You seem to be confused about what the correct TX/RX pin wiring is. If you aren't confused, then you should remove that from your question. If you are still confused, then I would recommend convincing yourself by checking the TX and RX pins in question. With nothing else attached to them, you can measure with a meter. See what number you get. Then connect a 1k (or so) resistor from the pin to 5V, see if the number changes significantly. Try 1K to GND, see if it changes again. It it doesn't change significantly you're looking at a driven pin, presumably TX; if it does, presumably RX. – timemage Dec 11 '20 at 14:37
  • Does it look like the manufacturer's connecting instructions are incorrect? Do you think that RX and TX pins are messed up on my DFPlayer or on my Seeeduino? – Starter Dec 11 '20 at 15:04
  • I don't have specific reason to think that. I just note that you don't seem sure. And if it were me being unsure which pin was which, I would perform that sort of test to eliminate that variable in question. – timemage Dec 11 '20 at 15:24
  • After simply switching RX and TX wires on my Seeeduino, I got the player online! This question is solved. – Starter Dec 12 '20 at 09:12

2 Answers2

1

Please check if the RX/TX pins are messed up. In my case, simply RX and TX wires' places' switching did help!

Starter
  • 153
  • 12
1

I simply removed the test for the return value of the constructor and assumed it initialised correctly. It then ran properly every time I started it. I have no explanation for this, but it worked.