DFPlayer Mini MP3 player: specs and pinout
A small serial-controlled MP3 and WMV player module with a microSD (TF) card slot and a built-in 3 W amplifier. SPK1/SPK2 drive a speaker directly (output under 3 W), or DAC_R/DAC_L give line outputs to an amplifier. It takes serial commands from a microcontroller or push buttons on its trigger pins.
Specs
| Spec | Value | Source |
|---|---|---|
| Working voltage | DC 3.2 V to 5.0 V (typical 4.2 V) | source 2.1 Specification Description, p.1; Table 2.2 pin VCC, p.2 |
| Standby current | 20 mA | source 2.1 Specification Description, p.1 |
| UART | Standard serial, TTL level, adjustable baud rate, default 9600 bps; no parity, no flow control | source 2.1 Specification Description, p.1; 3.1 Serial Communication Format, p.3 |
| Audio formats and sample rates | MP3 and WMV decoding; 8, 11.025, 12, 16, 22.05, 24, 32, 44.1 and 48 kHz | source 1.2 Features, p.1 |
| DAC | 24-bit DAC output, dynamic range 90 dB, SNR 85 dB | source 1.2 Features, p.1 |
| Card file system | FAT16 and FAT32 TF card, up to 32 GB | source 1.2 Features, p.1 |
| Speaker output | Drives a speaker of less than 3 W directly (SPK1/SPK2); DAC_R and DAC_L drive an earphone or amplifier | source Table 2.2 Pin Description, p.2 |
| Volume and track commands | Volume 0 to 30 (command 0x06); track number 0 to 2999 (command 0x03) | source 3.2 Serial Communication Commands, p.3 |
| Start-up time | About 1.5 s to 3 s to initialise, depending on the files on the card | source 3.3.1 Returned data of module power-on, p.4 |
| Operating temperature and humidity | -40 to +70 C; 5 % to 95 % humidity | source 2.1 Specification Description, p.1 |
| Size | 20 mm x 20 mm | source Specification table |
Power
| Value | Source | |
|---|---|---|
| Supply | 3.2 V to 5.0 V (typical 4.2 V) | source 2.1 Specification Description, p.1 |
| Current | 20 mA standby; playback current is not given | source 2.1 Specification Description, p.1 |
Pinout
Pin rows are from the original maker's DFR0299 module document (V1.0). Your unit may be a compatible module from another maker, so check its silkscreen against these names before wiring. The maker's document says only that the serial port is TTL level; it does not give the RX pin's voltage tolerance. The the original maker's wiki (DFPlayer Mini, troubleshooting) advises a 1 kOhm resistor between Arduino TX and DFPlayer RX.
| Pin | Function | Voltage | Notes | Source |
|---|---|---|---|---|
| 1 | VCC | 3.2 V to 5.0 V | Input voltage; DC 3.2 V to 5.0 V; typical 4.2 V | source Table 2.2 Pin Description, p.2 |
| 2 | RX | UART serial input | source Table 2.2 Pin Description, p.2 | |
| 3 | TX | UART serial output | source Table 2.2 Pin Description, p.2 | |
| 4 | DAC_R | Audio output, right channel; Drives earphone and amplifier | source Table 2.2 Pin Description, p.2 | |
| 5 | DAC_L | Audio output, left channel; Drives earphone and amplifier | source Table 2.2 Pin Description, p.2 | |
| 6 | SPK2 | Speaker-; Drives a speaker of less than 3 W | source Table 2.2 Pin Description, p.2 | |
| 7 | GND | Ground; Power GND | source Table 2.2 Pin Description, p.2 | |
| 8 | SPK1 | Speaker+; Drives a speaker of less than 3 W | source Table 2.2 Pin Description, p.2 | |
| 9 | IO1 | Trigger port 1; Short press: play previous; long press: volume down | source Table 2.2 Pin Description, p.2 | |
| 10 | GND | Ground; Power GND | source Table 2.2 Pin Description, p.2 | |
| 11 | IO2 | Trigger port 2; Short press: play next; long press: volume up | source Table 2.2 Pin Description, p.2 | |
| 12 | ADKEY1 | AD port 1; Triggers play of the first segment | source Table 2.2 Pin Description, p.2 | |
| 13 | ADKEY2 | AD port 2; Triggers play of the fifth segment | source Table 2.2 Pin Description, p.2 | |
| 14 | USB+ | USB+ (DP); USB port | source Table 2.2 Pin Description, p.2 | |
| 15 | USB- | USB- (DM); USB port | source Table 2.2 Pin Description, p.2 | |
| 16 | BUSY | Playing status; Low means playing; high means not playing | source Table 2.2 Pin Description, p.2 |
Build with it
Project ideas for the DFPlayer Mini MP3 player. Each link opens Soldr with the prompt filled in; Soldr assigns the pins, checks power and shows how to wire every part.
- Doorbell chime player: The Uno sends a serial play command (9600 baud) when the button is pressed. Put a 1 kOhm resistor from the resistor pack in series between the Uno's 5 V TX pin and the module RX, as the original maker's wiki advises. The 8 ohm speaker connects to SPK1 and SPK2, which the built-in 3 W amplifier drives (output under 3 W). Wait about 3 s after power-up before the first command. Power the module from the Uno's 5 V, which is inside 3.2 V to 5.0 V.
- A pocket sound board where two buttons play the next and previous track using a DFPlayer Mini, a speaker and three AA cells: Trigger port IO1 plays the previous track and IO2 the next on a short press, without a microcontroller. Three alkaline AA cells give about 4.5 V, inside the 3.2 V to 5.0 V supply range; do not use a four-cell pack (about 6 V).
- Voice-triggered sound player: The Uno reads the recognized record ID from the voice module and sends the matching play command to the DFPlayer. Put a 1 kOhm resistor from the resistor pack in series between the Uno's 5 V TX pin and the DFPlayer RX, as the original maker's wiki advises. Both modules use 9600 baud serial by default, so use a software serial port for one of them.
- ESP32 reminder message player: The ESP32 sends the serial command from one of its UART pins. The maker's document says only that the serial port is TTL level, so confirm that the module's RX input accepts the ESP32's 3.3 V output on your unit before relying on it. Learning project.
Common mistakes
- Powering it above 5 V: the maker's table gives 3.2 V to 5.0 V, so a 6 V battery pack is outside the range (source: link, p.1-2).
- Using SPK1/SPK2 for anything but a speaker: the pin table says they drive a speaker (output less than 3 W, from the built-in 3 W amplifier), so use a speaker rated for that; for a bigger speaker or headphones take DAC_R/DAC_L into an amplifier (source: link, p.1-2).
- Sending serial commands straight after power-up: the module needs about 1.5 s to 3 s to initialise, depending on the card contents (source: link, p.4).
Not covered by the official source
- The maker's document does not name the decoder chip, so no chip-level facts are stated.
- The datasheet and the wiki give different numbers of songs per folder and of EQ modes; those figures are not used here.
- Playback current is not given in the maker's document. The RX pin's voltage tolerance is not given either: the document says only TTL level, and the original maker's wiki advises a 1 kOhm resistor between a 5 V Arduino TX and the module RX.