For lazy parents like myself: check out a Yoto player. It's web-connected, has limited internal storage, and the cards are just NFC cards -- but it is easy.
It's unfortunate that "always offline" needs to be added, as that would be the norm 15-20 years ago when portable media players were at the peak of their popularity. You can still buy SD/TF/microSD players at a very, very low price today.
The main culprit is that "custom ESP32-S3 board" - in this application, it is equivalent to a combination of a random off-the-shelf ESP32 board and a separate battery charger/protector. Half of the equipment on the list (hot air, hot plate, microscope, logic analyzer, etc...) is only needed for this board.
Weirdly enough, the rest of the device is a solid design, suitable for someone with "a few months" of electronic experience: lots of pre-made modules, and designing a carrier PCB for them. This means large and easy to solder 2.54mm hole spacing, regular soldering iron, no microscope, etc.. It's a really weird contrast for me....
Regarding the solidness of the mechanical design, I have my doubts. The volume know is too small, and too close to the navigation buttons. The speaker grill is too coarse, allowing small items to easily drop inside. The cartridge attachment is not sturdy, not self-adjusting, and relatively easy to snap off. If anything, I would rework the mechanical part. (Alas, my kids are too old now.)
Pretty impressive work though! I think you must have learned a lot. I've spent quite some time on about 5 different projects that were way less polished, but it seems we have picked up the same level of skills along the way. The post is very recognizable ;) Looking forward to the your project!
But there's a reason for doing the custom board. As my projects get smaller in size, I need to get away from breakout boards. This project was a good fit to come up with sub circuits for different tasks that I can just copy and paste onto a new design, say for a little gaming handheld, or a micro RC car with a much thinner/smaller form factor.
What might be overkill for the current project might be the enabler for the next project. And it let's me iteratively learn new skills.
That said, I might do another version of this with off the shelf parts only for easier reproducibility.
I would love to know how does one go about doing this with off-the-shelf components. Can you share more, please
Since I didn't go down that route, I don't jave any recommendations for breakout boards that could do the job. I'm also not sure if the assembly is any easier than the assembly of my design.
I would imagine putting all the music on the device and just giving each cartridge an address would have been considerably cheaper and easier. This could have been electrically, connecting different pins of the existing battery holder solution; mechanically, such that each cartridge has a key shape that depresses different microswitches in the device; magnetically, using magnets on the cartridges; or optically, using different pattern holes on the cartridges and leds with optical sensors on the device.
I think, personally, I would have gone the mechanical route and just have an array of switches in the device. Then the cartridges can be simple plastic keys and the device can draw no power when there's no cartridge.
I think the Fischer Price record player worked this way: https://www.amazon.co.uk/Fisher-Price-Interactive-Packaging-.... The tracks on the record form a binary number and the record player head has mechanical switches.
I wanted to retain the same "always offline" and "physical" aspects of the experience. I used NFC labels hidden under the cover art label on old (edit: not SD) CF cards because I had a bunch of old ones around and they were all standard size and not easy to swallow. An internal microSD that held all the files needed. Plugging the cartridge in the fake socket which was actually just a hidden power on switch would trigger the playing of a specific file. It's a tad more maintenance heavy but much quicker to pull of.
It was also interesting to see that when all the kids were gathering around with their toys they were all gravitating towards the one none of them had. But that was an unintended side effect.
[0] When I first heard of Tonies my mind jumped at the idea that the content is stored on the figurine and somehow wirelessly transmitted to the box. The child, parent, and engineer inside me were all thoroughly disappointed this is not the case, and even more so at the perspective of the service being stopped one day or who knows, monetized more aggressively.
With a fully mechanical solution, she would still have to extract the SD card from the player (or I spend considerable more effort on the software side, so the device can somehow also act as a mass storage device when connected via USB, givng access to the internal SD card), print or construct the "key", stuff the key into a cartridge and label the cartridge.
There's no great practical difference. The only difference is a higher per cartridge cost. Since that's around €2.50 and could be further reduced by bulk orders, I was fine with this design decision.
I had a similar experience a while ago and believe me that building such a thing is a SERIOUS investment in time - especially as a parent. While admiring the effort and the result, I can't recommend anyone to go for such a self-made device, if it is not for the learning experience and the fun of the project.
I've built a "Phoniebox"[1] and a "Tonuino"[2] and both were used pretty heavily by my kids. The biggest issue I experienced is the "creation" of media. While this should be an easy task, it just takes it's time. Creating the cartridge, printing the image, copying the file, etc...
As my daughter was getting older (>4) it was so much easier to just buy a CD Player and used CDs. In the meantime we use an old Smartphone (offline) as spare device with Audiobookshelf to sync the media locally and VLC Media Player to play them.
I keep thinking that a cassette player would be the ideal interface for something like this. The controls are as obvious and as tactile as it gets and the whole analog-mechanical experience is familiar to folks from that generation. If only tapes could hold more than two hours of audio ...
[1]: https://www.printables.com/model/1269288-audiobook-player
This sounds so strange to me, but then I am not a native English speaker.
i am also working with esp32 s3 but only write rust code
https://youtu.be/y2Hi9ThKcy8?si=yV8onefVb9o7MdHC
My goal is to send midi wirelessly.
I'm curious why you chose the ESP32? Because if you're working offline, the cost for its most well-known features - BLE and WiFi - would be unnecessary.
If producing multiple, yeah esp32 is overkill, but when cost is <$5 wouldn't be worth the time to make the project harder to get started
But I do miss those days that I would blow a fuse because I made a mistake in the soldering.. heh.. good/fun days!
I'm still iterating over hardware, realising Pi Zero is a bit of overkill, using too many NiMH batteries in series may actually break those batteries, that ESP8266 has much less GPIO's available than the module design suggests, among other lessons learned.
My current approach is Pi Pico (ESP32 was the alternative) with a DfPlayer Mini and a 32GB SD card.
The DfPlayer isn't too keen on running on 3v3 from cheaper LDO's (which are on the modules I'm using) so my current approach uses a small power bank. That just offloads the hard part (for me) of battery management to the professionals. This weekend I added a few resistors and a transistor to draw extra power (0.5secs every 20 seconds) to keep the power bank awake.
But I have different LDO's and an ESP32 coming in, so it's not fully decided yet. Will for sure scan this thread and OP's article for more ideas!
(I'm wondering things like material toxicity, microplastics, teething hazards, swallow hazards, fracturing to sharp pieces, rounded corners, etc.)
OccamsMirror•9h ago
badlogic•3h ago
The tools are definitely a big expense, but are in constant use for other projects, so ammortize.
What's not factored in is the time spent working on this. I don't feel too bad about it, as working on this essentially replaced watching shows or movie at night when everyone is asleep.