Project 2 · TIGP Basic Skills for Experimentalists, 2026

Glowmeter

A phone web app that reaches across the room's WiFi to an ESP32-S3 and back: set the colour and brightness of its onboard LED, then watch a live measurement stream in twenty times a second, drawn as a strip chart. No native app, no cloud service, no server in between — the phone and the board talk directly, in plain JSON over one WebSocket.

Glowmeter app: an amber colour picker and brightness slider for the LED, above a live strip chart of the board's temperature reading and a row of telemetry chips.

How it talks to the board

The app never runs its own logic on the board — every value shown is read straight off the 20 Hz status broadcast, and every control is a command the board acknowledges or refuses. Full protocol in firmware/PROTOCOL.md.

DirectionMessageWhat happens
App → board{"cmd":"led","args":{"r","g","b"}}Sets the RGB LED colour
App → board{"cmd":"brightness","args":{"value"}}Sets brightness, 0–255
Board → app{"type":"status", …} · 20×/sReports the live LED state, temperature, uptime, WiFi signal, free heap, client count

Notes

Firmware
Unmodified baseline from class-board-2026 — the LED and status protocol it already implements is everything this app needed; only the phone app (host/pwa/) is new.
Same origin
The app is built onto the board's own filesystem (LittleFS) and served from it directly over plain HTTP, so it opens on the same local network the board creates — no mixed-content HTTPS/WebSocket conflict.
Try it now
The copy on this page runs the same code with a demo data generator, so the controls and chart are real even before you're on the board's WiFi — open the app and tap "Try demo".
Measurement source
Defaults to the board's onboard temperature sensor, always present; if the ADS8688 input block (b1) is attached, the chart can switch to any of its 8 analog inputs instead.