A really simple solution to building a Network controlled MP3 player.

The project utilizes the ESP8266 module, I am using a Wemos D1 mini that is really inexpensive . The MP3 player is available from various supplier on eBay and AliExpress, AliExpress seems to be cheaper but takes for ever to arrive.

D1 Mini ESP8226

YX5300 UART MP3 Player

both items available on eBay here.

Step 1: ESP8266 Web Controlled MP3 Player

I am using the ESP8266 with the MicroPython firmware, head over to the MicroPython website for instructions on how to do that.

Step 2: The MP3 Player

For the MP3 Player I am using the CATALEX uart controlled MP3 player. The player expects commands on the serial ports and then carries them out.

Commands include






Volume Up

Volume Down

Volume Set


Wake up

and many more ...

Step 3: Connecting the Two Components.

There are just 4 wires to connect. I am using jumper leads in my test setup.

  • Connect the Gnd from the MP3 player to the ground on the ESP8266
  • Connect the VCC from the MP3 player to the 5v pin on the ESP8266
  • Connect the RX from the MP3 player to the TX on the ESP8266
  • Connect the TV from the MP3 player to the RX on the ESP8266

That's all for the wiring, just plug an amplified speaker to the audio jack of the MP3 player and we are done with the setup.

Step 4:

Go over to the GitHub repository and download all the files,

You will need to upload the following to the ESP8266 module.

  • yx5300.py
  • mp3.py
  • main.py

The MicroPython firmware automatically runs the main.py script at startup if it exists. So once these three files have been transferred you should have a working WiFi MP3 player.

Transferring the files to the ESP8266 Module.

I am aware of at least two ways to transfer the files.


A command line utility that connects to the ESP8266 module over the serial port.


The official MicroPython utility that connects to the module over IP. One useful advantage of the WebRepl in this instance is that it displays the console output. This is not possible otherwise as we are using the serial port on the ESP8266 to control the MP3 player.

<p>What is maximum bitrate this module supports...?</p><p>Is it has stereo output...?</p>
<p>It supports sampling rates up to 48KHz and yes it is stereo. </p>
<p>does this mp3 module support id3 tag reading from the mp3 files? thanks</p>
<p>Unfortunately it does not. I have looked at other modules and they don't seem to support them either. The only work-around I can think of is a solution where the mp3 module is reading of a external sd card. </p>
The vs1053 seems to support it, using the adafruit library... I'll order one, let's see
<p>That would be interesting. It's a bit costly but would make for a nice MP3 player implementation. I just realized after commenting that the one from SparkFun has the ability too. </p>
<p>Thanks for sharing :)</p>
You are welcome, I hope you find it helpful.

About This Instructable




More by usear:Arduino Heart Rate Monitor Arduino OLED Calculator NeoPixel NTP Clock Using ESP8266 
Add instructable to: