The DFPlayer Mini is a compact and low-cost audio player module that supports MP3, WAV, and WMA formats. It includes an integrated microSD card slot and a built-in 3W mono amplifier, making it suitable for both standalone operation and microcontroller integration (e.g., with an ESP32 or Arduino).
This module supports UART (serial) communication and button-based control, enabling easy playback of MP3, WAV, and WMA files at a 48kHz sampling rate. These files are stored on a microSD card.
There are various versions of this board available. If you plan to use a microcontroller to control the module via UART, ensure that the version you order is compatible with your software libraries (see below for more details).
Overview
The DFPlayer Mini adds audio playback capabilities to your project and can be operated either standalone or controlled by a microcontroller via UART (serial interface). It has a wide voltage range (3.2V - 5V), making it compatible with both 3.3V and 5V microcontrollers, as well as single Li-ion batteries.
Audio files can be stored on a microSD card with a maximum capacity of 32GB.
Item | Description |
---|---|
Operating Voltage | 3.2V–5V |
Standby Current | ~20mA |
Max Current | ~200mA (~50mA when not using the built-in amplifier) |
Audio Formats | MP3, WAV, WMA |
SD Card Support | MicroSD card, up to 32GB |
File System | FAT16, FAT32 |
Audio File Limit | Up to 100 folders, 255 audio files per folder |
Sampling Rate | 8 / 11.025 / 12 / 16 / 22.05 / 24 / 32 / 44.1 / 48 kHz |
DAC | 24-bit (dynamic range 90dB, SNR 85dB) |
Amplifier | 3W mono |
Stereo Support | Only in some module variants |
Volume Control | 30 levels |
Equalizer Settings | 6 presets |
Standalone Control | Yes, via GPIO buttons |
Microcontroller Support | Yes, via UART (default baud rate: 9600 bps) |
ESPHome Support | Yes, see the dfplayer component |
Mono Amplifier
The DFPlayer Mini includes a 3W mono amplifier based on the YX5200, 8002, or MH2024K-24SS chip. This allows you to directly connect one small speaker with an impedance of 4Ω or 8Ω and a power rating of 3W or higher.
The speaker output (SPK1
and SPK2
) is bridge-tied load (BTL) mono, meaning it combines the left and right audio channels into a single mixed mono output.
Additionally, the module provides separate DAC_R
and DAC_L
outputs, which allow you to connect external stereo headphones or amplifiers. However, note that these pins still output a duplicated mono signal, rather than true stereo.
Audio Formats
The DFPlayer Mini supports MP3, WAV, and WMA audio formats.
Improving Audio Quality
Once you are able to hear sound, evaluate the audio quality. If you notice noise or other audio issues, you can try improving the quality with the following steps:
- Review Power Supply:
- 3.3V: If you are running the DFPlayer Mini at 3.3V, consider switching to the 5V pin on your microcontroller instead. If you use a 3.3V microcontroller, add a 1KΩ resistor in series with the
TX
pin of the DFPlayer Mini. - AC Adapter: If you’re using an AC USB power supply, try switching to a power bank. If this reduces noise, it may indicate that your adapter is introducing interference. In this case, consider using a USB isolator or another method to prevent noise from affecting the DFPlayer Mini.
- 3.3V: If you are running the DFPlayer Mini at 3.3V, consider switching to the 5V pin on your microcontroller instead. If you use a 3.3V microcontroller, add a 1KΩ resistor in series with the
-
Enable Auto Mute: If your DFPlayer Mini PCB supports it, bridge the solder pads to enable the auto mute function (more details below).
- Add a Decoupling Capacitor: Insert a large electrolytic capacitor in series with the speaker output, ensuring the correct polarity.
Pinout
This is the DFPlayer Mini pin-out:
Pin | Description | Notes |
---|---|---|
VCC | Power supply (3.2V–5.0V) | |
RX | UART serial input | For external playback control |
TX | UART serial output | For receiving audio status feedback |
DAC_R | Native audio output (right) | Both DAC channels duplicate the mono signal |
DAC_L | Native audio output (left) | Both DAC channels duplicate the mono signal |
SPK2 | Mono speaker (+) | |
GND | Ground | |
SPK1 | Mono speaker (-) | |
IO1 | Trigger port #1 | Short press: play previous Long press: decrease volume |
GND | Ground | |
IO2 | Trigger port #2 | Short press: play next Long press: increase volume |
KEY1 | AD port #1 | Functionality depends on resistor (see below) |
KEY2 | AD port #2 | Functionality depends on resistor (see below) |
USB+ | USB+ DP | |
USB- | USB- DP | |
BUSY | Current status indicator | Low: playing High: idle/standby/pause |
Power Supply
The primary considerations for powering the DFPlayer Mini are ensuring sufficient power and isolating noise:
- Power Consumption: The DFPlayer Mini can draw up to 200mA when using its internal 3W amplifier. Since your microcontroller and potentially other components like displays also require power, the total current draw can quickly exceed 500mA. Many development boards use inexpensive voltage regulators that typically have a maximum current capacity of 500mA, with some even having a lower limit.
- Noise: When powering your setup from an AC USB power adapter, you may introduce substantial noise. If you notice this, try using a power bank instead. If this improves sound quality and you must use AC power, consider adding a USB isolator to prevent interference.
The most robust power setup involves directly feeding 5V USB power to the DFPlayer Mini, bypassing any voltage regulator on your microcontroller development board.
Since it is easy to switch between 3.3V and 5V wiring, start with 3.3V if you’re using a 3.3V microcontroller. If you encounter issues, you can switch to 5V for improved performance.
Powering with 3.3V (ESP32 Example)
If the voltage regulator on your 3.3V microcontroller board can handle more than 500mA, you can drive the DFPlayer Mini directly from the 3V3
pin:
For 5V Arduinos, connect the red power line to the 5V
output pin instead.
Powering with 5V (ESP32 Example)
The 3.3V setup described above may or may not be suitable for your needs, depending on the following factors:
- Voltage Regulator: If the voltage regulator on your microcontroller board is underpowered, you may experience instability, noise, clicking sounds, or resets.
- Audio Chip: Some DFPlayer Mini clones use audio chips that are not compatible with 3.3V.
Switching to a 5V setup is simple:
- Power Line: Switch the red power line from the
3V3
pin to the5V
pin, bypassing the internal voltage regulator. This allows the DFPlayer Mini to be directly powered by the USB power input. - Resistor: To protect the DFPlayer Mini, add a 1kΩ resistor in series with the TX line to prevent damage from the 5V logic levels.
Microcontroller Control
The DFPlayer Mini can be controlled via UART (serial communication). As is typical with serial interfaces, ensure you connect the DFPlayer Mini RX
pin to your microcontroller’s TX
pin, and vice versa.
Additionally, make sure you use the appropriate GPIOs for the serial interface. Some microcontrollers allow remapping to any GPIO, while others require specific, designated GPIOs.
- Connect
RX
to the microcontroller’sTX
pin to send UART commands to the DFPlayer Mini. - Connect
TX
to the microcontroller’sRX
pin to receive status feedback. While the feedback line isn’t strictly required, many libraries wait for acknowledgment messages and may hang without it. - If there is a voltage mismatch between the DFPlayer Mini and the microcontroller, use a 1kΩ protective resistor on the DFPlayer Mini
TX
line.
Run an Initial Test
The subtle differences between DFPlayer Mini boards can significantly impact the supported UART commands and the file structure the module expects on the SD card.
To ensure everything is working properly, start by testing your DFPlayer Mini with this test code. This will verify the basic functionality and help isolate any issues.
Physical Control (Standalone Mode)
The DFPlayer Mini does not require a microcontroller and can be controlled directly using push buttons:
- Digital Input:
Use push buttons connected toIO1
andIO2
for simple previous/next control. These inputs function as standard digital inputs. - Analog Input:
For more control options, useKEY1
andKEY2
in conjunction with a resistor-based push button matrix. These inputs function as analog inputs, where each button press corresponds to a unique resistance value.
Hardware Variations, Clones, Knock-Offs
The DFPlayer Mini is so popular that numerous clones and knock-offs have been produced. These versions are often visually similar and pin-compatible, but subtle differences in chip types and PCB design can lead to significant variations that might affect your project (see below).
Audio Decoder
When examining the bottom part of the module, you’ll notice two chips:
- MP3 Player: The larger 16- or 24-pin audio decoder chip is usually a MH2024K-24SS, or one of the many compatible alternatives, such as MH2024K-16SS, YX5200-24SS, or clones like the AB23…, AB24…, AF24… series from Chinese manufacturers like Jieli Technology (JL).
- Audio Amplifier: The smaller 8-pin audio amplifier is typically a 8002D knock-off, which is a simple 2W or 3W mono audio amplifier.
Most chips found on DFPlayer Mini modules are from generic Chinese manufacturers, and may have no markings or use non-public numbering. If you do find a datasheet, it is likely to be in Chinese.
Below are some findings compiled from the community. Please note that these observations may be subjective, may result from a combination of chip types and PCB design, may have been coincidental, or may have been addressed by newer versions. Test for yourself before purchasing in bulk.
Chip | 3.3V | 5V | Library Support | Remarks |
---|---|---|---|---|
MH2024K-16SS | humming | ok | needs tweaking | red LED, responds differently to IO actions |
MH2024K-24SS narrow chip | humming | ok | yes | red LED, may introduce delays |
MH2024K-24SS wider chip | ok | ok | yes | blue LED |
JL AB23xxx | ok | ok | yes | blue LED |
JL AB24xxx | ||||
JL AF24xxx |
Use Auto-Mute (if available)
Some PCBs feature a solder bridge that can be moved to the opposite side (marked with red arrows in the illustration).
By default, a 0Ω bridge is mounted at the solder bridge marked P
. This can be removed and instead mounted to another solder bridge on the opposite side.
This controls the built-in audio amplifier and can significantly improve sound quality:
- Always On (Default): By default, the audio amplifier mute pin is permanently grounded, keeping the amplifier always on, even if no audio is playing. This can amplify noise, such as humming and crackling sounds.
- Auto-Mute: When the solder bridge is moved to the opposite side, the mute pin is set to high by default (muted). The audio amplifier will only turn on when DFPlayer Mini plays audio and its
BUSY
pin goes low.
There are additional subtle differences marked by the green arrows. Aside from different chips, the number of capacitors may vary, and some boards include a solder bridge marked A
with an unknown purpose.
Some users report this to improve sound quality immensely while others claim it wouldn’t work. Try yourself at own risk.
Slow Website?
This website is very fast, and pages should appear instantly. If this site is slow for you, then your routing may be messed up, and this issue does not only affect done.land, but potentially a few other websites and downloads as well. Here are simple steps to speed up your Internet experience and fix issues with slow websites and downloads..
Comments
Please do leave comments below. I am using utteran.ce, an open-source and ad-free light-weight commenting system.
Here is how your comments are stored
Whenever you leave a comment, a new github issue is created on your behalf.
-
All comments become trackable issues in the Github Issues section, and I (and you) can follow up on them.
-
There is no third-party provider, no disrupting ads, and everything remains transparent inside github.
Github Users Yes, Spammers No
To keep spammers out and comments attributable, all you do is log in using your (free) github account and grant utteranc.es the permission to submit issues on your behalf.
If you don’t have a github account yet, go get yourself one - it’s free and simple.
If for any reason you do not feel comfortable with letting the commenting system submit issues for you, then visit Github Issues directly, i.e. by clicking the red button Submit Issue at the bottom of each page, and submit your issue manually. You control everything.
Discussions
For chit-chat and quick questions, feel free to visit and participate in Discussions. They work much like classic forums or bulletin boards. Just keep in mind: your valued input isn’t equally well trackable there.
(content created Feb 08, 2025 - last updated Feb 09, 2025)