You may recall that a few years ago, I built a networked music player for Dylan. Recently I switched up the control code because the joystick jitter was making it go off at random times in the night, and he’s started using it again (There’s still an outstanding problem where sometimes there’s a caching delay while it loads a file over the network, at which point he starts hammering the buttons and then everything goes to hell, but I’m working on it).
My younger child is mostly content to listen to Alexa, but a few weeks ago, she told me that she’d like a music player like Dylan’s, except red. After a bit of prodding, I worked out that she didn’t mean the networked one; Dylan also has a portable mp3 player – a SweetPea 3 player, which is a small, fairly rugged mp3 player with a speaker. She’d had it in her room for several years, but at some point Dylan reclaimed it.
Unfortunately, Dylan has the original model of the player, and the current model has significantly worse reviews. Also, it’s not available in red. So I sort of offhandedly said I could build one, and she just lit up at the idea of her daddy making her a music player.
So I was on the hook.
Making an MP3 player isn’t all that hard, really. The B43 module is an mp3-player-on-a-chip with an SD card reader that costs about two bucks if you buy it from China. And I did order one, but Evelyn also specified that she wanted it to have a screen. Adding a screen to a chip like that which showed something meaningful would mean sticking a microcontroller in there too and now the complexity level goes up quite a lot. I was working on talking her into being happy if I just stuck some LEDs in there when I happened upon a “car” MP3 player – probably the exact same module wired up to a faceplate with buttons and a small screen. And Amazon’s price is like five times what you’d pay on aliexpress, but I really wanted to Just Get On With It, so I paid retail and got it last Monday.
Last week’s post showed the module with its wires spring-clipped onto a USB power adapter and an audio amplifier circuit I happened to have left over from an earlier project (This was my first project where I actually ended up using it. The last one turned out not to need it). I also had a couple of 3 watt speakers just laying around.
I looked at a few options for cases, but ended up finding a pencil case at Michaels that seemed like a good fit. This one is a little flimsier than I wanted, and they seem to carry a sturdier one in a similar size, but I couldn’t find it in stock. They also had a smaller one, but you had to buy them by the dozen. This is about twice the size overall of the SweetPea 3. I could’ve gone smaller, but the extra size made it a lot easier on me to build it and a lot less fiddly about keeping the wires from touching.
The most surprising thing is how good it sounds. The speakers in Dylan’s player on paper should be better, but they always sounded tinny. Good for audiobooks, but not really great for music. Evelyn’s player actually produces pretty good audio. Certainly good enough for a hand-held device.
Because the power is via USB, you can use any USB power bank to drive it (or a wall adapter if you like. I had a bit of trouble doing it that way: one of my wall adapters kept shutting the port off because it was drawing so little current. I had thought about just getting a normal rechargeable lithium battery and attaching it permanently, but then it would need to be taken away from her for hours to recharge – a power pack you can swap out was a better idea.
I used a USB cord with a switch on it instead of wiring up a switch on the far side of the USB adapter mostly because I forgot to add the switch when I did the soldering and soldering the leads for the mp3 module was incredibly finicky. Unfortunately, none of the glues I had would attach ABS to polypropylene. In fact, I tried a silicone adhesive and that kind of anti-glued it – not just “didn’t stick” but almost seemed to actively repel each other. I had to use screws there, which stick out a bit. There’s also a nut visible at the top of the picture. I added a screw through the latch of the case to discourage opening it. The nut popped off later and I’ll reattach it when I find some better adhesive. I cut sheets of styrofoam to fill in the space around the battery to make it more secure. Cutting styrofoam with a hot wire cutter is shockingly satisfying.
This is the final product. It works well enough, and the styrofoam blocks inside give it just a little extra bit of structure. The light from the display also spills through the inside giving it a neat glow in a dark room (Though the shadow of the USB cord did make Evelyn think a large spider was inside it for a moment). It works pretty well.
The main improvement I would’ve liked to make is some sort of sleep timer. I can build short-duration timers, but something that could cut the power after, say, an hour isn’t really something I could manage in a practical amount of space. The battery pack will last for hours, but since it doesn’t shut off on its own, “hours” means “one night” unless someone cuts the power once Evelyn’s fallen asleep. The controls are a little clumsy – no playlist support, and the volume buttons are overloaded with the track-change buttons (Though this is also true of the SweetPea3), but she’ll get the hang of it.
She’s over the moon about it. I am, allegedly, the best daddy and the best maker of music players. Hopefully she takes it okay when she finds out there is no way in hell she will ever be able to take it on an airplane.
She’s over the moon about it. I am, allegedly, the best daddy and the best maker of music players.
AWWWW