After tonnes of search on the internet I'm asking this question. I have a super simple device to be created.
The device should take in a micro SD card (or a pen drive)
Read at max 10 sound files (say mp3)
Display the read files to a mobile app via bluetooth (not internet)
Accept a play command (say file name/number) from mobile app via bluetooth
play the selected sound file
I've played around with Arduino Uno and DFPlayer mini and was able to play sounds but wan't able to access the contents on the SD card to display to the user.
What is the best possible way to design this device keeping the total cost <= $15?
Another constraint is that the user should be able to give commands while the audio is playing and the commands should be served simultaneously.
Can someone help me out?
Is there some module available which provides both audio player and access to SD card?
I've found these interesting links but because I'm just beginning into microcontrollers and stuff I am unable to grasp how to implement the solution.
Barring you getting into manufacturing- this project can't be done for sub $15. You'd have an Arduino Uno, a Bluetooth Arduino shield, and some type of MP3 player that won't be a DFMini as the DFMini doesn't "read" the file- only plays it. So while it's playing File 0001- I assume you want your mobile app to read "Gold on the Ceiling" by the Black Keys for example. At an under $15 parameter I just don't think it can happen.
@halloweenrick
You understood it right. That's pretty much what we wanna do. I'm fine with going to any extent to create this under $15. Can start from scratch and redesign DFPlayer or create a new chip altogether. Do you have a (hard) solution in mind?
Got stuff working with a Uno and got stuff working with TMRpcm library. But this thing works only for .wav files. We do not want to add another step in the UX to first convert mp3 to wav (we know mp3 format is ubiquitous).
So now I'm trying to use a mp3 decoder library (helix or libmad) to decode mp3 but Arduino Uno and Nano are too slow for this so gonna switch to Pi PICO (32 bit).
The other option I have is try to decode mp3 to wav files as a preprocessing step. The device is okay to take 30 seconds to start up so I'm thinking of preprocessing the audio files on the SD card (we're restricting to max 10 files of max 60 sec duration) from mp3 to wav so that the previous solution can work.