⚡ Sensyte ESM — Firmware Updates

Over-the-air update server for ESP32-S3 energy monitors

🔌 Flash a device over USB
Provision a blank board or recover one that won't boot — straight from the browser, no ESP-IDF toolchain needed. Chrome, Edge or Opera on desktop.
Open flasher
Latest Firmware
Released
Flash layout 16 MB — OTA + Balanced
Download
SHA256

Changes:

How OTA Works
1 Devices poll this server every 6 hours:
GET /version.json
2 If version in the manifest is newer than the running firmware:
GET …
3 Firmware writes to the inactive OTA slot, sets boot flag, and reboots
4 If the new firmware panics, the bootloader auto-rolls back
API Reference
Version check GET /version.json
Download firmware GET …
# Check latest version
curl https://updates.sensyte.io/version.json

# Response:
# …
📦 Adding a New Firmware Version

One command, from this directory. It runs a full idf.py build, copies all five flash artifacts, computes hashes, and regenerates both manifests.

.\deploy.ps1 -Version "X.Y.Z" -Notes "What changed"

It refuses to publish a build whose artifacts came from different idf.py runs — a stale bootloader shipped with a fresh app produces a board that boots wrong rather than an error, so the check is a hard failure. See README.md for details.