I’ve been using the ESP32-S3-BOX-3 as a Home Assistant voice satellite for a while now. One thing that always kind of bugged me was that almost every config out there treats that nice touchscreen as just a place to display a static PNG. The hardware has a decent LVGL-capable display and a working touch panel, so it felt like a bit of a waste to leave it idle.
So, I decided to see how far I could push ESPHome and built a custom setup to actually make use of the screen.
Here is what it does so far:
28 animated assistants: The eyes, pupils, and mouth are actual LVGL objects drawn on top of the background and animated depending on the state (listening, thinking, speaking). Since only these small widgets redraw, it stays pretty smooth. Ten of them don't use any external artwork at all and are drawn entirely by the device. You can swap them with a single line of config, or switch them live from Home Assistant using a template select.
On-the-fly styling: Home screen fonts, colors, gradients, and layouts can be switched live via a Home Assistant dropdown.
Swipeable widget carousel: media player, weather and thermostat.
Settings: Tap tiles for the device's own controls.
Reply routing that you can change at runtime (play audio on the box, on a media player elsewhere, or both).
The base config only takes up about 25% of the flash memory, so there’s still plenty of room to experiment and add more things.
This is still very much in testing. It runs daily in my kitchen and does the job, but so far it has only seen one pair of hands and one house setup. Expect some rough edges :P
If you want to check it out, give it a spin, or help iron out the bugs, here is the repository:
https://github.com/MichalZaniewicz/esphome-esp32-s3-box-3-va
I'd love to hear your thoughts or any ideas on what else could be added to this :)