For people who are thinking about getting into electronics: that project is very complex for what it does. Nothing wrong with it as long as your goal is to learn advanced fabrication techniques, but most people don't need any of this stuff for one-off, home projects with no strict low price / small size requirements.
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....
This surely could be recreated with off-the-shelf components, no question. It would be a bit of a challenge to stuff another breakout board into the available space, but certainly doable.
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.
The weirdest decision, for me, was putting the music on the cartridges, so that each cartridge needs an SD card holder and SD card.
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 suppose this project served as a source of joy not only to the kid, but to the maker, too. It likely was a good excuse to do a lot of stuff that's not strictly necessary but is fun to do, and buy a lot of gear that's not strictly necessary but is a pleasure to use. The result is somehow better and more solid due to that, too.
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.)
Agreed, and it seems to stem from the NiMH requirement. Maybe designing a protective shell around a LiPO battery (to avoid puncture damage) would have made more sense?
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!
> For people who are thinking about getting into electronics: that project is very complex for what it does.
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.
I had grand plans to build something like this when my kids were small, but ended up building this https://github.com/dmd/nkplay/ instead.
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 recently built something[1] similar, though with far less effort and sophistication than the author. The goal was to have a plug-and-play audiobook player for an elderly family member with impaired vision. In retrospect, it would have been better to adapt an old phone or tablet with a macropad rather than build this on top of an espmuse speaker[2].
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 ...
Any tips for setting up a smartphone with a macropad as mentioned? I like this idea but worry it introduces a lot of complexity for the non-smartphone literate population.
Does anyone have suggestions for an simple audiobook/music player like this for the elderly and or those mild dementia? It should have large, tactile buttons, simple play/pause interface, volume control (ideally knob), and be able to read from sdcard or usb/
- 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.
A Yoto player might work. They're designed for children. They have two knobs (with momentary switch) to control everything (and a small on/off button). They're designed to be usable by children who cannot read, primarily through Yoto cards.
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.
If there is enough material on Spotify, you could grab one of those mini-keyboards with 6 or nine buttons and remap them to play/pause, next, previos, and just leave it on shuffle on one playlist?
Besides being a great project, this device reminds me a lot of the Technifant (https://technifant.de) which, under the hood, is similarly simple. The "hats" that you put on the Technifant contain a cheap USB thumb drive with the contacts soldered to a magnetic connector. All the audio is stored locally on the hat itself, and you can even add your own MP3 files with a cable provided by the manufacturer.
This is brilliant. Great design and great work. I love that the cartridges actually hold the content and aren't just NFC tags.
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.
We have a Yoto and it's okay, but my complaint is how difficult it is to get custom stuff on there. The "record-your-own" cards are expensive (and often unavailable, like during this past Christmas season), and off-the-shelf NFC cards don't work perfectly (you have to ensure the content is downloaded onto the device before a generic card will work for that title).
My kids love theirs, and we get tons of comments from other parents since they'll happily listen to stories on them instead of begging for a screen.
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.
With my kids, I just burned them CDs and bought them $15 CD players. They use them a lot. This gives my wife and I ultimate control over what they play—plus we find CDs at estate sales that allow them to build a collection ~$1 at a time.
I used PLA, which is a non toxic bio plastic. ABS is also an option for at-home 3D printing, which is the material used in lego bricks.
At his age, he doesn't put anything in his mouth anymore, so swallow hazards were not a concern. That said, the only thing that's small enough for him to swallow are the buttons and the knob, which can not be detached from the device without unscrewing the enclosure. If he is able to do that, nothing is save.
Next to what others have said (pretty sure there are only very few PLAs who are even close to actual non toxic in terms of small traces of helper materials) but there are finishings you can use to make it food save!
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.
You should never put anything 3D printed into your mouth, regardless if you swallow it or not, because 3D prints aren't "food safe" and may release small pieces.
Also, some materials are hazardous to print (ABS or resin for example) but fine when they've cooled down.
Fantastic article!
But when I read “inspired by the Gameboy form factor”, I thought the cartridge would insert much deeper, like a Gameboy (maybe not all the way so that the picture on the cartridge is still visible) . That way it cannot be accidentally yanked out.
It’s probably a dust trap but it’s more robust and compact.
Definitely NOT going to build that. I haven't touched a soldering iron in 30-35 years, and don't plan to do so again. Perhaps after retirement (and with some massive magnifying lens) I was thinking to buy and make some cool 'ready-to-built-kits' with silly stuff I don't really _need_.
But I do miss those days that I would blow a fuse because I made a mistake in the soldering.. heh.. good/fun days!
Cool! I'm working on something comparable, but with the audio stored on a single SD and playback triggered using an RFID tag that we can than stick on wooden figures made by my GF (or anything 3D printed).
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 also need an IC to convert the I2S signal (currently sent to the MAX98357A) to a headphone output. I haven't researched options yet. The motherboard will need additional routing to send the I2S signal from the ESP32-S3 to both the MAX98357A and this new IC. Suggestions welcome!
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)
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.
My kids were little back when the original iPod came out. They were unable to use it because they couldn't read yet, and the early iPods had a text-only interface.
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 !)
This is pretty awesome. Although disheartening that you ended up spending much more than just buying a Yoto player or Toniebox. But I'm sure the learning and accomplishment have been worth the expense.
Just factoring in the BOM cost including 3D printer materials this comes out quite below a retail Tonie Box. The same is true for the cartridges vs. Tonie figurines.
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.
While this is a neat project, the design is very strange. Most of the complexity seems to be a result of using the wrong components for the job.
Having a huge PCB for an SD card is completely unnecessary. Also using enig for mechanically stressed contacts seems to come from a wrong understanding of why one would use enig. enig is for corrosion resistance, not mechanical resistance.
Just use an rfid tag to read out the cartridge put into the console
[+] [-] theamk|11 months ago|reply
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....
[+] [-] badlogic|11 months ago|reply
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.
[+] [-] oniony|11 months ago|reply
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.
[+] [-] nine_k|11 months ago|reply
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.)
[+] [-] jtwaleson|11 months ago|reply
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!
[+] [-] addandsubtract|11 months ago|reply
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.
[+] [-] dmd|11 months ago|reply
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.
[+] [-] dukoid|11 months ago|reply
[+] [-] badlogic|11 months ago|reply
[+] [-] gvalkov|11 months ago|reply
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
[2]: https://raspiaudio.com/product/esp-muse-luxe/
[+] [-] sriacha|11 months ago|reply
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...
[+] [-] Dyac|11 months ago|reply
[1] https://www.amazon.com/Funnytoday365-Telecontrol-Cassette-Pl...
[+] [-] abdullahkhalids|11 months ago|reply
[+] [-] sriacha|11 months ago|reply
- 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
[+] [-] tweetle_beetle|11 months ago|reply
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.
https://yotoplay.com/
[+] [-] juujian|11 months ago|reply
[+] [-] perilunar|11 months ago|reply
Simple, tactile, and they already know how to use it (and it's old knowledge, so they won't forget soon)
[+] [-] qq66|11 months ago|reply
[+] [-] carpenecopinum|11 months ago|reply
[+] [-] scosman|11 months ago|reply
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.
[+] [-] turtlebits|11 months ago|reply
[+] [-] mc3301|11 months ago|reply
[+] [-] taco_emoji|11 months ago|reply
[+] [-] jdhawk|11 months ago|reply
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.
[+] [-] sandreas|11 months ago|reply
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.
1: https://github.com/MiczFlor/RPi-Jukebox-RFID
2: https://github.com/tonuino/TonUINO-TNG
[+] [-] nvahalik|11 months ago|reply
[+] [-] neilv|11 months ago|reply
(I'm wondering things like material toxicity, microplastics, teething hazards, swallow hazards, fracturing to sharp pieces, rounded corners, etc.)
[+] [-] badlogic|11 months ago|reply
[+] [-] herbst|11 months ago|reply
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.
[+] [-] lawn|11 months ago|reply
Also, some materials are hazardous to print (ABS or resin for example) but fine when they've cooled down.
[+] [-] broken_broken_|11 months ago|reply
[+] [-] HenryBemis|11 months ago|reply
But I do miss those days that I would blow a fuse because I made a mistake in the soldering.. heh.. good/fun days!
[+] [-] icoder|11 months ago|reply
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!
[+] [-] fsckboy|11 months ago|reply
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?
[+] [-] userbinator|11 months ago|reply
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.
[+] [-] perilunar|11 months ago|reply
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 !)
[+] [-] OccamsMirror|11 months ago|reply
[+] [-] badlogic|11 months ago|reply
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.
[+] [-] safasfdass|11 months ago|reply
Having a huge PCB for an SD card is completely unnecessary. Also using enig for mechanically stressed contacts seems to come from a wrong understanding of why one would use enig. enig is for corrosion resistance, not mechanical resistance.
Just use an rfid tag to read out the cartridge put into the console
[+] [-] rsync|11 months ago|reply
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.
[+] [-] unknown|11 months ago|reply
[deleted]
[+] [-] thih9|11 months ago|reply
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.
[+] [-] urbantrout|11 months ago|reply
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!