DIY Pocket MP3 Player

When [Neutrino-1] saw DFRobot’s DFPlayer module, he decided he wanted to make his own retro MP3 player. This tiny module comes packed with a ton of interesting capabilities such as EQ adjustment, volume control, and a 3 watt amplifier amongst other things. It can even play ads in between songs, should you want such a thing.

Controlling the DFPlayer module is easy using serial commands from a microcontroller, making it a convenient subsystem in bigger projects, and a potential alternative to the popular VLSI chips or the hard to come by WT2003S IC. [Neutrino-1] does a good job walking readers through the build making it fairly easy to remix, reuse, and reshare.

With the hardware sorted, all you’ve got to do is flash the firmware and load up an SD card with some MP3s. There’s even a small Python GUI to help you get your new player up and running. [Neutrino-1] also introduces users to the U8g2 display library which he says is a bit more feature-rich than the common Adafruit SSD1306 library. Great job [Neutrino-1]!

While you’re here, take a look at some of our other MP3 projects.

13 thoughts on “DIY Pocket MP3 Player

      1. ive always been curious about bringing my projects on planes. really wanted to bring my raspberry pi tablet when i had to go out of town, but im worried its janky battery system wouldn’t pass muster at security. i mean it had a bms in it but i dont expect tsa to know what those are and it was in a printed enclosure. and ive heard horror stories about people having to throw away hundreds of bucks worth of project just to get through security.

  1. That 4-pin OLED is something I have a bit of experience with. I bought some and tried using the Adafruit SSD1306 library with it and had tons of initialization problems. It took specific timing to get to work. Then I discovered the OakOLED driver and all of those problems went away. I’ll check into that U8g2 library, but if you’re looking for fixes, OakOLED is a good step.

    1. @John, Perhaps you mean this one?

      * netguy204 / OakOLED

      That looks like an overlay of some sort for the Adafruit_GFX library. Plus there’s no documentation for the OakOLED blob (have to dig in the source I guess). BTW that I2C OLED used in the MP3 player uses an SSH1106 chip, not an SSD1306, if that matters much.

  2. These small stand-alone MP3 players should be great for listening to long format content like audiobooks and podcasts, they can have long battery life so you’re not running down your phone when you are biking or on public transport, plus they are cheaper, smaller, lighter, and less fragile than a phone.

    Unfortunately all the small stand-alone MP3 players I see these days are crippled when it comes to long format content because of one missing feature – no non-volatile bookmarks that work across SD cards. Some other things that would be nice in a long format MP3 player: * Mono/Stereo selector so only one ear-bud or speaker is needed. * Removable batteries like rechargeable AA’s or beefy 18650’s. Also, removable batteries help eliminate planned obsolescence. Bluetooth for car connections (FM transmit too would be icing on the cake).

    A homebrew MP3 player can have all these missing features, plus you might even be able to sell it – at least until the Chinese copy it and put you out of business :-(

    1. The very cheap “DIY bluetooth car mp3 player/radio with remote” made by Kebidu and sold on aliexpress (bought 4 of them at around 3 dollar each) actually does most of what you are looking for, the most important of which is that it remembers where you were when you stop/power off the device.

      You need to bypass the voltage regulator and solder a connector directly to the unit (I solder it right across the filter capacitor for the voltage regulator) to be able to run it off 18650 (it needs a minimum of about 3.8V to run). When using anything less than 5V you can only play from a SDCard and not from a USB key.

      It has a few small problems. For one It is a bit big for a portable player (but it still fits into your shirt pocket). Another issue is that the LED display is on all the time draining the battery. I have not yet figure out which pin to cut to disconnect the power to the display (I plan to replace the connecting wire with a switch). It uses about 40mA when running and about 7mA in standby mode, so to conserve battery you need to be able to switch off the battery. You can fast forward to any point in a single track, but you can only do that through the remote (you can skip track and change volume by using the buttons built into the unit itself). You can use the unit as a BT receiver (i.e, play songs on your phone through speakers connected to the unit), but it cannot output via BT. The player only shows the track number and not the name of the track, but that is not an issue for playing audiobooks.

      For its cheapness and versatility it is hard to beat.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.