⚠ Hosted preview (HTTPS). Browsers block requests from an
https:// page to a
local http:// clock (mixed content), so this copy can’t connect to your clock. To
drive the clock, run the helper locally — open tools/helper.html from
the repo
(double-click the file, or serve it over http://localhost). This page is fully usable
for designing scenes offline.
🎛️ Clock controls
🎬 Scenes save · load · edit · cycle
A scene captures:
🔁 Cycle
⏱️ every
sec
Tick ☑ the scenes to include, then ▶ Start — it shows each in turn, leaving your
editor untouched. Great for a rotating kid dashboard.
re-pushes after the clock restarts
🔑 API keys
🗄️ —
Scenes autosave as you edit and live in this browser — images in IndexedDB
(large, de-duplicated), only tiny refs in localStorage, so storage no longer fills up. 💾 Backup all
makes one portable file of everything (settings + scenes + images + keys); 🧨 Reset all wipes this
browser's helper data. Free API keys are saved locally only (never pushed to the clock or GitHub).
🖼️ Spanning canvas all the tubes act as one wide screen
Rendered to a wide canvas (N×135 × 240), sliced into 135-px strips, pushed
left→right (far left = index 5). Set scene mode to “Spanning” so “Push scene” sends this.
✨ Animation studio moving effects · pushes only changed tubes
✨ Transition into the current scene:
Full frames are pushed as RGB565 to
/raw565 (the memory-safe path;
BMP /image is never used — it crashes the clock). Across 5 tubes this runs
~1–3 fps (bandwidth-bound) — design screen animations to look good slow. LED effects
(Rainbow/Breathe/…) use the cheap 3-byte /rgb primitive and run much faster.
Only tubes whose pixels changed are re-sent.🔧 Flashing & tools
HTML can't flash the ESP32 — run these in a terminal
from the
tools/ folder. Copy with the buttons../flash.sh # build + USB-flash (default port /dev/cu.usbserial-1220)
./monitor.sh # serial console @115200 (Ctrl-C to quit)
pio run -d ../firmware/custom-fw -e esptube -t upload --upload-port esptube.local
# OTA update over WiFi (no cable)./esptube status # pretty-print /status (set ESPTUBE_IP or use esptube.local) ./esptube text 0 HI # quick CLI poke (tube 0 = far right)
The clock also serves its own on-device panel at
http://esptube.local.
This helper is a richer, offline-first companion.
Local file · nothing leaves your machine except REST calls to the clock (and open-meteo.com /
api.coingecko.com / your JSON URL for the data widgets).