Power down DFPlayer Mini

I am using a DFPlayer Mini and an Arduino Pro Mini on battery power. I want to put the Arduino to sleep but the DFPlayer still draws around 24 mA. The sleep modes in the various DFPlayer libraries do not offer any power savings so I decided to switch the DFPlayer on and off.

I have tried using either (1) a 2N2222 transistor or (2) a STP16NF06 mosfet. The good news is that both of these solutions work. I can turn the DFPlayer off before putting the Arduino to sleep and power it back up afterwards. Here’s a diagram. I know you’ll ask for it!

So everything sounds good until I turn the volume up to around 18 or 20. At this point the sound distorts and the DFPlayer seems to reset itself. This doesn’t happen without the switching circuit above - I can safely get the volume up to 30 (max).

Funny thing is I have seen this same behavior when the DFPlayer is powered by the Arduino connected to USB. I always thought this was a result of it pulling too much current at higher volume, but on batteries this has not been a problem (using a 5V power bank or 3x AA batteries).

Can anyone explain this?

Sounds like a current issue with voltage drop occurring at the transistor (either type) as the volume goes up. That NMOS is not logic level. What’s the current at full volume without any transistors.

I agree about the mosfet. It is just not fully turned on, so you get a voltage drop across it.

You will also want to consider the state of the lines connecting the Arduino to the DFPlayer when you turn off the power. If you switch off the low side, those lines may drift up to 5V on the DFplayer side. You just want to be sure no current will flow into the Arduino when that happens. So you might want to make sure those pins are configured as inputs on the Arduino, or output high. These issues are often less likely to arise if you switch the high side instead using a P-channel mosfet, assuming your Arduino is also running at 5V.

Thanks for the replies.

At max volume I saw peaks up to 240 mA. Voltage at the emitter dropped from about 4.9 V when not playing to 4.5 V at max volume.

This is on a breadboard so that might be contributing to the problem. I added extra jumpers (Vcc, Gnd) and it seems to have improved, even with the transistor. Though the LED on the DFPlayer does some noticeable flickering at max volume.

From what I have read and experienced (by disconnecting Vcc from the player) there is noise generated through the speaker with a high side switch. Of the 3 connections to the Arduino, 1 is an input (DFPlayer BUSY pin) and the other 2 are the software serial pins (each with a 1 kOhm resistor).

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.