Highlights
- Thread-safe ISR timing —
portMUX_TYPEspinlocks on all 64-bit timing variables across dual-core ESP32-S3 - Theme engine — 5 selectable CSS themes (Interceptor, Classic, Daytona, Case File, Cyber)
- Modular web UI — LittleFS-first HTML/CSS/JS with PROGMEM fallback
- Kiosk mode —
?kioskURL parameter orCtrl+Kfor display-only presentation - Dual-layout navigation — Desktop sticky tabs + mobile bottom thumb bar
- NTP timestamps — Wall-clock time in serial log ring buffer with timezone support
- Regional settings — Imperial/metric units, configurable POSIX timezone
- WiFi diagnostics —
/api/wifi-statusendpoint with RSSI, failure reasons - Captive portal fix — OS-specific handlers for iOS, Android, and Windows CNA detection
- Peer hotlinks — Clickable
hostname.locallinks to paired devices - Named constants — 20+ magic numbers extracted to
#defineconstants - Dead code cleanup — Removed unused functions from lidar, WLED, and ESP-NOW modules
push_ui.sh— Remote LittleFS UI update script over HTTP
Upgrade Notes
- No breaking config changes — existing
config.jsonis compatible - New LittleFS UI files are optional — PROGMEM fallback serves pages without them
- To use the new modular UI, run
pio run -t uploadfsor usepush_ui.sh
See CHANGELOG.md for full details.
Firmware Binary
MD5: 6cf3af27f4d91519b2c5ed13521ce778
Size: 1,744,448 bytes (1.66 MB)
Board: ESP32-S3-WROOM-1 (N16R8)