I thought I'd discovered the answer to this problem by searching through the forum.
However an older fix no longer seems to work (or I'm not implementing it correctly)
I refer to this post made by @xl97 :
I have an Arduino UNO R3 connected to the computer and powered via USB
The DFPlayer is set up on a breadboard.
Pin 10 of the Arduino is connected to the TX pin on the DFPlayer module (with a 1K resistor).
Pin 11 is connected to the RX pin (with a 1K resistor).
GND in connected to GND.
I'm powering the DFPlayer with 5V (a 7.5V 1.5A power adapter plugged into the wall and connected to a breadboard power supply that has a built in 5V and 3.3V regulator).
Finally there's a small 8ohm speaker (I believe it's 1W) connected to the SPK_1 & SPK_2 pins.
I'm running a basic example sketch from the DFPlayer library and everything is working as expected.
I have it all set up and working correctly. The only issue is the loud pop from the speakers when the DFPlayer initialises. The pop also occurs when disconnecting the external power source.
I followed the fix in the link above, making the small change to the CPP file in the library.
After disconnecting the USB cable and restarting the IDE software, I reconnected the cable, reopened the software and and uploaded the same example sketch from the library.
Now the DFPlayer fails to initialise. In the Serial Monitor it reads the following:
Unable to begin:
- Please recheck the connection!
- Please insert the SD card!
After this failed I undid the change I made to the CPP file and reloaded everything. Everything went back to normal. The sketch works and the DFPlayer initialises fine.
To be clear, the only line I changed in the CPP file was the "reset();" line.
I simply changed that one line to "//reset();" and saved over the original file.
Originally, I thought it might be because @xl97 was using a different version of the library.
The change is said to have been made on line 103 of the sketch, but in my version of the library it's 109.
So I looked through the available versions of the library here:
Looking back through the older versions, only 1.0.2 has the "reset();" on line 103.
I deleted my version of the library from the IDE and installed the older version and repeated all of the previous steps, but the same thing happened. I even made sure I was using the example sketch that comes with that version of the library.
I must be missing something, or there's something different about my DFPlayer.
It was purchased last year directly from DFRobot and has a 2021 batch number on the packaging.
I bought a few at once and they all have the same issue.
The LED on the module is blue, but I can't make out some of the lettering on the chips on the underside of the device.
The audio amplifier is an "8002A" (that much I can read) but the other (larger) chip says "DFROBOT" followed by some lettering and numbers, ending with "SP3"
I hope all of that is clear.
There's nothing special about the sketch. It's an example sketch from the DFPlayer library called "getStarted"
There's nothing special about the wiring. It's all hooked up as it should be, because I've had it running and even played around with the sketch to play different tracks, change the volume etc.
But for the purposes of testing, I used the example sketch in it's default state without any changes.
And just to reiterate. Everything "works" until I change "reset();" in the CPP file to "//reset();"
Then I get the error in the Serial Monitor when trying to initialise the player.
If @xl97 and @Protonerd are still around I'd love to know what you think.
Have I missed something? or does this fix only work with "older" versions of the module?
Thank you.