A cheap satellite speaker turned voice assistant - my build notes

Nov 04, 2026 Last reply: 40 seconds ago 5 Replies
Jump to replies (5)

So I picked up one of those small cube IKEA Bluetooth speakers on a whim, mostly becasue it looked decent on a shelf and I figured the enclosure was too nice to leave as a dumb speaker. Ended up gutting it and turning it into a proper voice satellite for Home Assistant, and it works better than I expected. I pulled the original driver and kept the case, then wired in an ESP32-S3 board, a small I2S amp and a MEMS mic. Ran the amp off the 5V from the USB-C input. Bench tested everthing on the desk before touching the enclosure, which saved me a lot of grief. My mic read all zeros at first and it turned out to be a solder bridge shorting a pin to ground, so check that before you blame the part. On the software side, ESPHome with the voice assistant component and micro_wake_word does the wake word detection locally, so nothing gets sent anywhere untill it hears you. Two gotchas I hit: playback needs a media player entity with the speaker platform, a bare speaker.play just silently drops audio. And TTS sounded muffled until I matched the sample rate properly, something like 22050 Hz with a decent Piper voice cleared it right up. I also reused the stock buttons by wiring them to GPIOs. They read pressed constantly at first because the original chip was back-feeding the lines thru its pull-ups, so I removed those resistors and they behave now. Still want to add proper volume beeps with a restore afterwards, mine reset the volume every time. Happy to post my config if anyone wants it.


I did basicly the same thing with an old tabletop radio case from a thrift shop. Gutted it, put in an S3 board with a small amp and mic, and it has been running in the kitchen for a few months now. Yours sounds like it came togather cleaner than mine did, I learned the bench test lesson the hard way after frying a mic board with a backwards power wire.

Reading this makes me want to try somethig similar with a little round speaker that's been sitting in a drawer for years. I have no clue about any of the board stuff though, my experiance with home automation so far is plugging a smart bulb in and feeling proud of myself. Is the soldering part hard to learn, or can I get by with those little clip-together connector things?

I did a similar build with an old alarm clock radio shell and hit the same sample rate issue. Took me ages to figure out the audio sounded like it was underwater until I matched the output rate to what the voice was actually made at. Also on the buttons, I found running them to GPIO with the internal pullups enabled saved me from touching the original board at all. Did you end up mounting the mic right where the old grille hole was, or did you drill your own? Mine picks up the wake word fine unless the fridge kicks on next to it.

This is giving me hope for the little speaker sitting on my bathroom shelf, except mine plugs into the wall with no battery and I have no idea how to even open the case without cracking the plastic. Question about the wake word bit, does the local detection still work okay if the wifi drops, or does the whole thing go deaf until the network comes back? Asking because our router reboots on a schedule and I'd rather not shout at a silent box every night at 3am.

Update: someone asked if the wake word still works when wifi drops, so I actually pulled the plug on the router to check. It kept listening, since that part runs on the board itself, but any command after the wake word just sat there until the network came back. So it degrades to a very polite brick. Also finally got the volume beeps sorted, ended up saving the level before the beep and restoring it after.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required