CYD Thermostat
by M TWELVE

A smart thermostat on a $15 touchscreen.

Firmware for the ESP32 “Cheap Yellow Display”. A touch UI, weekly schedules, weather-compensated heating that tunes itself, and a local web app with no cloud account needed.

Both demos run entirely in your browser against a simulated room. Nothing is sent anywhere.

Starting the thermostat…
This is the real device UI (LVGL) compiled to WebAssembly. Click or tap it.

Everything a thermostat should do

Built for slow underfloor heating, and works with any on/off heating relay.

🌡️

Smart heating

Weather-compensated, predictive duty-cycle control using live outdoor temperatures from Open-Meteo.

🧠

Auto-tuning

Learns your home’s heat loss and thermal lag from its own history, then recommends or applies better parameters.

🗓️

Weekly schedules

Up to six changes per day, Auto/Manual modes, boost and frost protection, with automatic DST handling.

📈

7-day history

Indoor, outdoor, target and heating stored in flash, viewable on the screen and as an interactive web chart.

🔒

Local web app

Password protected and paired with a code shown on the screen. Has full settings, schedules and OTA firmware updates.

🔌

Open integrations

Optional MQTT for Home Assistant or Node-RED, plus a documented JSON HTTP API. °C or °F.

The web app, live

The thermostat serves this app on your local network. Here it talks to a simulated device: change the target, edit the schedule, browse the history or apply an auto-tune recommendation.

Open full screen ↗

Under the hood

HardwareESP32-2432S028 (CYD), BME280 sensor, relay
FirmwareESP-IDF 5.4, modern C++23
UILVGL 9 at 320×240 with resistive touch calibration
WebSingle-file app, cookie sessions, PBKDF2-hashed password
UpdatesDual OTA partitions
This pageThe same UI code built with Emscripten

Built by M TWELVE

Embedded Systems & HMI development. This thermostat is a showcase of what we design and build: ESP32 firmware, touchscreen user interfaces with LVGL, connected devices with local web apps, and control algorithms that learn from real data.

Need firmware or an HMI for your product? Let’s talk.

Get in touch →