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

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

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.

bethekidyouwant

The ESP 32 has Wi-Fi. You can just connect to it and upload the next track.

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.

nicr_22

Why not just put an RFID reader in the box and an RFID tag on each cart? The reader modules are sub $10, and the tags are a few cents.

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.

badlogic

As I understood, 18650 and 14500 don't like water too much. Our 3yo will find ways to spill water onto and into it.

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.

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.

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!

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

abdullahkhalids

A standard cassette has two hours in it. You can always make larger cassette's yourself.

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

tweetle_beetle

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.

https://yotoplay.com/

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.

perilunar

A cassette player and some tapes?

Simple, tactile, and they already know how to use it (and it's old knowledge, so they won't forget soon)

qq66

Hörbert

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.

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.

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.

scosman

It's just damn cool and worth the $2. Plus more reliable, no syncing, no web-connection. New content is just new content. Not how you'd build it at scale, but that's kinda the point.

mc3301

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

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.

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

nvahalik

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.

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.

broken_broken_

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.

HenryBemis

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!

icoder

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!

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?