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....
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.
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.
Duuuuude. What?
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.
That disclaimer makes me even more uneasy. It implicitly says the toy might stop working after. You bought a toy, you didn't rent it or buy toy-as-a-service. There's no reason the device shouldn't work forever or for as long as it's in good enough condition to operate. And there's no reason you shouldn't own the content on that toy or be free to supply your own forever.
If you buy an audio cassette and a player they work until they fall apart. Here you need to rely on the goodwill of the seller to allow you to keep using them as long as they don't compete with their newer product too much.
I strongly believe that the better option for anyone who can opt for it is something that relies on no online components even if it's more elbow grease for the parents.
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!
Although if I wasn't too confident and wanted to avoid the fires of lithium ion I'd probably gone for NiMH too.
But then the decision to put both charger types on the board when only one will ever be used? Strange, but you can't let indecision paralysis get to you I guess.
As for the dip: I designed the board to be multi-purpose, including new projects down the line, where I might need LiPo energy density. I think I mentioned that in the blog post.
For people who want to get into electronics, I can recommend getting started with an LED strip, an ESP32 and WLED. You can dip your toes into soldiering, and using an ESP32, for very cheap and with a large margin of error.
It's just a rpi plugged into a standalone numeric keypad, acting as a jukebox. Playlists are numbered.
By the time my kids were about three, they could enter the numbers on their own, and by four they had memorized the playlists so well they didn't look at the printed catalog any more.
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
Regarding the cassette player, in the US the 'National Library Service for the Blind and Print Disabled' has a player with an excellent simple interface, using cartridges for each book: https://blog.library.in.gov/wp-content/uploads/2020/04/isl-t...
[1] https://www.amazon.com/Funnytoday365-Telecontrol-Cassette-Pl...
- I've used the Relish 'dementia radio' [1] before. Its a radio with support for reading from usb, but has no memory so useless for audiobooks. Very overpriced.
- The 'National Library Service for the Blind and Print Disabled' has excellent cassette type players [2], but they only take their cartridges. Ideally something this format but supporting usb/sd card
- Another comment [3] here suggests a smartphone with a macropad. this could work. they also built a custom solution.
[1] https://relish-life.com/en-us/products/relish-radio [2] https://blog.library.in.gov/wp-content/uploads/2020/04/isl-t... [3] https://news.ycombinator.com/item?id=43818639
These are just NFC type cards with with some kind of DRM. They allow your player to connect to an API, download the audio content (books, music) and store it locally for instant playback whenever the card is inserted.
Normally I hate vendor lock in stuff like this. But surprisingly they also sell "blank" cards. Using the app you can load any audio content "onto" them (same deal - audio is sent to cloud so it can be redownloaded if local storage runs out). These are pretty cheap and can be "wiped" and reused as many times as you want and you can write on them or mark them up. You can even design a specific image to show on screen when your custom card is inserted.
The hardware is good quality too and can survive daily life.
Simple, tactile, and they already know how to use it (and it's old knowledge, so they won't forget soon)
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.
They swap cards with their friends, and so long as its on a wifi connection the first time the card is inserted, the local storage is plenty enough to keep the cache there for offline use.
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.
So there is no more need to buy expensive Tonie figurines. Instead I can use cheap RFID chips and pair them with any content.
This project is very impressive though!
William of Ockham had much to teach the 21st century “maker” community.
But they were very capable using cassette players. The could identify different tapes by the images on the labels and cases, and were able to manipulate the tapes and controls easily. Also, cassette players are cheap and robust.
So as cool as this project is, it's overkill. An old cassette player and a bunch of tapes would have worked just as well.
(and when they get older they can graduate to CDs or vinyl !)
(I'm wondering things like material toxicity, microplastics, teething hazards, swallow hazards, fracturing to sharp pieces, rounded corners, etc.)
I have some actually recyclable PLA but even that has no real no toxicity rating.
I wouldn't eat from it, but it works and would pretty much solve any issues.
Pretty sure those finishing resins are marketing to finish Beton and stuff like that.
Also, some materials are hazardous to print (ABS or resin for example) but fine when they've cooled down.
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!
isn't a headphone just a high impedance speaker? you just grab the same output that goes to the speakers and reroute it through a big resistor to the headphones.
did a little searching, here you go (the extra resistance isn't that great)
https://samtechpro.blogspot.com/2014/03/how-to-use-speaker-o...
i suggest put efforts into stereo for speaker and headphones, more pleasing, and wouldn't stereo set the stage for truer brain development?
https://electronics.sony.com/audio/walkman-digital-recorders...
Very simple. Shows up as a USB drive and I copy mp3 files to it.
My son likes to listen to audiobooks so we purchase them at the maximum price possible and then download them from bittorrent.
Eg. my kindle is always offline, has been working great for the last 5+ years, I see no ads, upgrade prompts, UX changes, or slowdowns.
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 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.
Did you investigate using a MiniDisc player at any point? I could see a minidisc player with some kind of shell and a DIY inline remote working with relatively little. Never actually used one enough to know how much they'd withstand a kid though!
For power wouldn't an internally routed trace on the cartridge function better than the switch on a stick? the gold contact fingers could have been offset so it doesn't power up till fully inserted.
https://www.aliexpress.com/item/1005007061184507.html
Connect a speaker, hook it up to an ESP32, then connect some buttons to it so you can select the track to play.
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!