I have been playing around with the ESP32 S3 Touch LCD 1.85C with speaker box, it is a neat little package but the speaker is fairly terrible. I also had a couple of old 5th Gen Echo Dots that I had decommissioned in my transition to the fully local home assistant setup. They had great little speakers in them! Let’s use one of those.
Opening the patient#
So I cut the speaker wires and kept the little plug. I then proceeded to remove all the electronics from the Echo Dot, we wouldn’t be needing them anymore.
Maybe one day someone will reverse engineer the electronics, I won’t throw them away yet.
The replacement is a Waveshare ESP32-S3 audio board. It handles the audio side and gives the satellite a tiny screen for status feedback.
Inspecting the speaker box#
The Echo Dot has an internal black plastic speaker box that connects with the electronics with two small metal pads. The internal circuitry has two pins that connect to the speaker through these pads.
So you can easily strip back the speaker wires from the S3 speaker box and solder them directly onto these pads (I am hiding my terrible soldering skills with some blurry photography and electrical tape).
So now that the speaker was connected, I got the hot glue gun out stuck the ESP32 board and lcd screen over the now unusable Echo control pad. I cut a small slot in the mesh cover to let the speaker wires slide through.
Franken Dot#
It ain’t pretty but it is a way better speaker and you still have the interactive LCD screen.
First power-up#
It is a very rough first build, but the important parts work: an old Echo Dot speaker has become the housing for a local, ESP32-S3-powered voice-assistant satellite.
The ESP32-S3 firmware for connecting to a Fulloch server can be found here: https://github.com/liampetti/fulloch-satellite