Steve’s MP3 player 3000

That’s what it says on the case, anyway. (Thanks to Hannah for the silly name.)

This has been a hobby project for about a year! It’s a compact audio player with a clickable control knob, display, and a volume knob on the back. Surface transducers on the bottom allow it – depending heavily on the surface it’s on – to sound louder (and ideally even higher quality) than one might expect for its size and hobby project status.

You can charge it and access its internal MicroSD card over USB, and also charge it with any 5-10V 2.1mm DC plug – including a solar panel!

I wrote the control software in PlatformIO flavored Arduino, and designed, modeled, and 3D printed the case. This meant learning – and subsequently outgrowing – TinkerCad, and then moving to Fusion 360. The case has 3 pieces, and they print (almost) entirely without supports: body, back, and bottom.


It reads tags from files on the MicroSD card, sends commands and audio data to the VS1053 on the Music Maker board, renders text, and writes it to the display.


A stack of Adafruit Feather boards:

As well as Non-Feather parts:

If you’re interested in the code, case design files, or assembly instructions, you can find them here.

Home Assistant Button

I made button-poe to allow using an Adafruit Feather as a light switch via Home Assistant:

It’s not super clear that it’s doing anything, so check the shadow the cable casts from the lamp in the lower right.
Categorized as Maker

Invention through annoyance

Here’s the problem – my neighbor’s HVAC closet is doing this, and it’s preventing me from sleeping:

Audacity spectrogram with primary component around 55 Hz
This is the highlighted section

I’ve submitted a maintenance request, sure, but more data more better, right? There are three states here: not buzzing, buzzing, and buzzing without the higher component. 55 Hz primary, 220 Hz higher component. FFTs away!

I was hoping this would be the part where I link to the code, but boy howdy is it harder than I anticipated to get a microcontroller to do this.

Categorized as Maker