Investigations

ESP32 Desk Companion

C February 2026

Animated desk companion for the ESP32-S3 round display — smiling face, analog clock, pomodoro timer, and plant soil moisture monitoring.

This is firmware for a tiny round display (the Spotpear ESP32-S3 1.28" LCD) that turns it into a multi-function desk companion. The main display is an animated smiling face with overlaid analog clock hands. It blinks, has rosy cheeks, and chirps like R2-D2 when it hears you talk.

The face changes expression and colour throughout the day — sunrise orange, daytime yellow, sunset coral, dusk purple, night blue. At night, the face closes its eyes, dims the backlight, and only wakes briefly if it hears a noise. It's genuinely charming.

Touch the screen to cycle through modes: the face/clock, a date display, and a pomodoro timer that shows a pie-slice countdown (configurable 5-60 minutes with alarm beeps). There's also a plant monitoring mode that polls a GraphQL backend for soil moisture data and shows a wilting plant when things get too dry.

WiFi setup uses a captive portal — on first boot, it creates a hotspot that you connect to from your phone, enter your WiFi credentials, and you're done. It auto-detects timezone from your IP address. The whole thing is built on ESP-IDF with LVGL 9.2 for the UI, driving a GC9A01 round LCD, ES8311 audio codec, and CST816D touch controller.

What this project demonstrates

Animated face with blinking eyes and R2-D2 chirp reactions
Time-of-day colour themes: sunrise, daytime, sunset, dusk, night
Pomodoro timer with pie-slice countdown (5-60 min)
Plant soil moisture monitoring via GraphQL backend
WiFi captive portal for zero-config setup
Built on ESP-IDF with LVGL 9.2 for round LCD display

Technologies

ESP32EmbeddedLVGLIoTHardware

© 2026 Jonathan Leahy · v0.8.1-31-g196fa14