Best MP3 player Arduino project?

I've found many MP3 player projects based on the Arduino, but it is hard to choose. I'm looking for one which

  • has bluetooth to send sound to earphones,
  • remembers the track/place-in-track when the Arduino is switched off.

I don't need someone to write the software for me, but having no experience with audio and memory cards for audio I wondered if anyone has any opinions ideas about the software/libraries to use.

TIA

Hello @giovanniguerra. Start with a list for ddg.gg

  1. Arduino - or ESP32 if you want higher performance
  2. Bluetooth module - because I could never design a bluetooth circuit
  3. EEPROM - on-board the Arduino AND on ESP32 for non-volatile storage
  4. SD module or MP3 module - one seems ready-made for audio

** warning on EEPROM - do not place in uncontrolled loop(), use it once at the beginning of the sketch (and once at the end of the sketch if needed). Limited writes (100,000 is the number I remember)

Your list (not mine) is all you need... you will know when a device is too much, too little, or just right for your project. Get two of each device, learn about it, simulate it (wokwi.com), prototype it, then build it. Learn as you go... for example, I knew nothing of a "word clock" a few months ago. I searched on it, found its meaning, made mistakes, asked for others to criticize it (and... they... did). Make it fun. : )

Urm. "Interesting" philosophy of learning post. But what about my question?

What about your question? I tried to answer it. Maybe I added to much stuff. Your coding will make it work how you want it to work.

Choose a modern module. Some older modules seem to lack in function or flexibility, even when they all "work the same." Same with bluetooth. EEPROM seems all the same to me. I have the BT that "do not work"... but I can use them for my purpose - which is not the same as your purpose... I guess that goes for everything. What you want is different than what I want.

@xfpd, this module seems to have much of what I want, PDF manual:

but no bluetooth and I don't think you can start playing at an arbitrary point within a track,

No, although I suppose you could start play and then use code to silence the unwanted earlier section. But I'm curious why you need that facility? Could you not just split the track into smaller tracks? Or do you want to start at a random place, rather than specific times? If so then you could apply the
randomAll();
command to an appropriate set of shorter tracks.

For BT, possibly the UNO R4?

I am tired of expensive and cheap MP3 players breaking on me. I never use them when going out, just in bed. So portability is not a problem. I listen to podcasts and the "play at the point you were when you switched it off" is an essential feature for podcast listening...

Smartphone audio app "pause" button.

I've never used it myself, but you might consider the Raspberry Pi. It's a "single board computer" with an operating system so it also has a standard file system and it can run applications, etc. It's also got a built-in "soundcard" and Bluetooth (at least some versions). I don't know it the Bluetooth works with audio, but I'd be shocked if there aren't "solutions".

Of course most people these days are using their smart phone.

But I don't know why you are having reliability problems. I have an iPod Classic and iPod "docks" in both of my vehicles. My vehicles are even older so they don't have Bluetooth but I'll have to upgrade when/if the IPod or one of the car stereos dies.

Hello @giovanniguerra

For Bluetooth audio, you can use the "DFPlayer Mini" with an Arduino and add a Bluetooth module like HC-05. For track memory, store the track info and position in EEPROM so it can be retrieved after power off. Libraries like "DFPlayer_Mini_Mp3" and "EEPROM" should help get you started!

Show an example, chatGPT.

1 Like

Do you listen to podcasts on your smartphone? I’m not sure I’ve understood your Arduino requirement?

@Terrypin, I know I can use my smartphone, but it is bulky and has too many other temptations (look at email, look at messages, look up things on the web).

The only time I take my smartphone to bed with me is if a member of my family is out for the night, just in case there is an emergency.

In general I hate smartphones, all those bent heads scrolling through stuff. Walking into you and not apologizing, I was supposed to get out of their way, couldn't I see they were looking at something important o their phone?

A bit off topic and ranty!

@yashwa01 I haven't found an MP3 module where I can know a position within a track and restart from that position.

@xfpd , but it won't unless I can find an MP3 module that supports that function.

I agree. The MP3 module (YX6300 for example) has PAUSE and PLAY (RESUME).

Aha ! Thanks. Almost what I want. I need to be able to power down and remember the position....and then restart at that position at power up.

Use your phone.

@giovanniguerra the VS1053 Arduino shield will allow for recalling the last position of the last track and it is fairly cheap and has a pretty good sound quality https://www.amazon.com/VS1053-VS1053B-Stereo-Player-Development/dp/B0CN2R15YY/ref=sr_1_3?crid=2MQCR4DKM8TUI&dib=eyJ2IjoiMSJ9.zz-G73ez4w8D5xuQRvr1aaPrV9BejHPuA8lD82DGHwQXfQKajDPsc8wqDAGEjh9pki7CaYbvKorpK2o39xhd_bHG9VYRKsmnT1x6yNqh88f5R0kuItoHaABhEGOqUS_tlhbVLYstgVDWryp5B_F165MUv0w2cExY3K--PJeoaRCzR24vbRDVqgf6MiKEYQGjnz5L0aGLtpyTc6SwcLVp22nTmc8DsetZt8u6MYE7W9E.XidBkFDMfJ-NNQTHmk3XT9JUsJC1Foaf6OcgEp_3mDI&dib_tag=se&keywords=vs1053&qid=1725717526&sprefix=%2Caps%2C105&sr=8-3

There are tutorials and code on Adafruit

1 Like

Magic! Many thanks. I definitely need to investigate that solution (to my admittedly idiotic personal problem). :slight_smile: