MP3 Audio Playback SD Card Module – MP3-TF-16P User’s Guide

Overview
The MP3-TF-16P is a compact, low-cost MP3 playback module designed to read audio files from a microSD (TF) card and output sound directly to a speaker or via DAC. It supports serial communication (UART) and can be controlled via microcontrollers like Arduino, STM32, or ESP32.
Features
- Supports MP3, WAV, WMA decoding
- 24-bit DAC output with 90 dB dynamic range and 85 dB SNR
- Built-in 3W amplifier for direct speaker drive
- Supports FAT16/FAT32 file systems
- Max TF card size: 32 GB
- Control modes: UART, IO trigger, AD key
- Folder-based playback: up to 100 folders, each with 1000 files
- Adjustable volume (30 levels) and EQ (10 levels)
Electrical Specifications
Parameter | Value |
---|---|
Operating Voltage | 3.2 V – 5.0 V (typ. 4.2 V) |
Standby Current | ~20 mA |
Operating Temp | -40 °C to +70 °C |
Humidity Range | 5% – 95% |
UART Baud Rate | Default: 9600 bps (adjustable) |
Audio Sampling Rates | 8 kHz to 48 kHz |
Pinout Description
Pin | Function | Notes |
---|---|---|
VCC | Power Input | 3.2 V–5.0 V |
RX | UART Serial Input | Connect to MCU TX |
TX | UART Serial Output | Connect to MCU RX |
DAC_R | Right Channel Audio Out | For amplifier or line-out |
DAC_L | Left Channel Audio Out | For amplifier or line-out |
SPK1 | Speaker+ | Direct speaker drive (<3W) |
SPK2 | Speaker– | Direct speaker drive (<3W) |
GND | Ground | Common ground |
IO1 | Trigger Input 1 | Short press: prev / Long: vol– |
IO2 | Trigger Input 2 | Short press: next / Long: vol+ |
ADKEY1 | AD Port 1 | Play first segment |
ADKEY2 | AD Port 2 | Play fifth segment |
USB+ | USB DP | USB interface |
USB– | USB DM | USB interface |
BUSY | Playback Status Output | High when playing |
Typical Applications
- Voice prompts for kiosks, vending machines, or industrial panels
- Audio playback in toys, alarms, or educational devices
- Embedded systems needing simple sound playback
- Biomedical devices with auditory feedback
Integration Example (Arduino UNO)
Wiring
- VCC → 5V
- GND → GND
- RX → Arduino TX (via 1 kΩ resistor)
- TX → Arduino RX (via 1 kΩ resistor)
- SPK1/SPK2 → Small 8 Ω speaker or amplifier input
Code Snippet
#include <SoftwareSerial.h>
SoftwareSerial mp3(10, 11); // RX, TX
void setup() {
mp3.begin(9600);
delay(1000);
mp3.write(0x7E); mp3.write(0xFF); mp3.write(0x06); mp3.write(0x03);
mp3.write(0x00); mp3.write(0x00); mp3.write(0x01); mp3.write(0xFE);
mp3.write(0xF7); mp3.write(0xEF); // Play track 1
}
void loop() {}
Notes & Tips
- Format SD card as FAT32, and name files as
0001.mp3
,0002.mp3
, etc. - Use external amplifier for better audio quality.
- Avoid powering from noisy USB sources—use regulated supply.
- For ESP32 or STM32, use hardware UART for better stability.