Skip to content(if available)orjump to list(if available)

Boxie – an always offline audio player for my 3 year old

dmd

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.

dukoid

I wonder if one of the Anberinc (or similar) devices with single-purpose software would be an option for people shy of going into hardware...

badlogic

I love this idea!

theamk

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....

badlogic

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.

avinassh

> This surely could be recreated with off-the-shelf components, no question.

I would love to know how does one go about doing this with off-the-shelf components. Can you share more, please

badlogic

Replace any custom PCB with off the shelf breakout boards. Redesign the enclosure so the breakout boards can be mounted. Instead of a custom motherboard PCB, solder wires between the pins of each breakout board, sprinkling through hole resistors and capacitors around where needed.

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.

oniony

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 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.

badlogic

I actually went with a design like you proposed in the first iteration. It turned out to be more time consuming than the SD card solution, specifically for my non technical SO. Now, she just stuffs an SD card into her laptop, transfers files, puts the card into a prepared cartridge, and sticks a label on it. The cartridges can be ordered fully assembled, so she doesn't have to solder anything.

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.

buran77

A couple of years ago, inspired bu the Tonie box, I built a similar yet much simpler device for a toddler in my family but without such a lofty goal of the learning experience.

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.

asyx

That’s essentially what Tonie boxes do. They have internal storage and NFC stickers on the figurines. The box is then caching on the SD card and playing from their based on the ID on the NFC chip. If you take the box offline, it can still play the stuff on the box because of that.

nine_k

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.)

jtwaleson

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!

alnwlsn

I can understand not wanting to puncture a pouch style lithium-ion cell (what most people call LiPo), but then why not go for an 18650 or 14500 battery? Same lithium ion chemistry packaged into a more traditional and durable metal can.

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.

addandsubtract

> 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.

carpenecopinum

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.

sriacha

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.

[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

juujian

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?

sriacha

I think that might be the easiest, or even one with 3 buttons and volume knob.

gvalkov

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 ...

[1]: https://www.printables.com/model/1269288-audiobook-player

[2]: https://raspiaudio.com/product/esp-muse-luxe/

sriacha

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.

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

Could something like [1] work? My understanding is it's a "fake tape" that has an SD slot and can be used in any player.

[1] https://www.amazon.com/Funnytoday365-Telecontrol-Cassette-Pl...

bigstrat2003

This is really cool! I don't remotely have the skills to pull this off, so I am in awe of what you achieved here. The explanations were pretty clear even for someone such as myself, but I was confused by one thing. If the device is powered by NiMH AAA batteries, why include the charging circuit, rather than just removing the batteries when needed to put into a dedicated charger?

badlogic

Because this way, I (or my SO) doesn't have to unscrew the enclosure to get at the batteries. Usually, the batteries die, while the boy is in the middle of an audiobook. This way, we simply plug in a USB-C cable and everything keeps going.

scosman

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.

taco_emoji

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).

aeroevan

it does take a surprisingly long time for the device to download the content for offline use, but my only real complaint is that I can't self host the server side (it seems to do some ssl certificate pinning or something similar).

jdhawk

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.

turtlebits

Actual cartridges makes sense if there are other players, otherwise a PCB and SD card seems like a huge waste over a nfc card that costs a few cents.

badlogic

I'll be building a few of these for the kids in the neighbourhood. I hope they'll start swaping and trading like we did with our Gameboy games.

mc3301

Bonus: The yoto a nice 'normal' bluetooth speaker, as well.

neilv

When 3D-printing toys for young children, are there any safety tips to know?

(I'm wondering things like material toxicity, microplastics, teething hazards, swallow hazards, fracturing to sharp pieces, rounded corners, etc.)

badlogic

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.

herbst

Pretty sure the issue with 3d printing materials is that they contain additional materials other than PLA and ABS for proper melting and flowage and those could indeed be an issue.

I have some actually recyclable PLA but even that has no real no toxicity rating.

badlogic

That's good information, thanks!

herbst

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.

lawn

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.

thih9

Always offline is an underrated feature.

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.

fsckboy

>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)

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?

sandreas

Great post, thank you.

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

schnable

Any suggestions for someone who wants to get started on a similar but less ambitious project, ideally without any soldering? Ie, more software and breadboard-style wiring.

stavros

You can get a DFPlayer module:

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.