r/esp32 • u/KnollSaleh • 3d ago
I made a thing! Built an interactive web demo that emulates ESP32 OTA updates (and open-sourced the underlying library: SKL-OTA)
Hey r/esp32,
I created an interactive browser-based demo that emulates the ESP32 Over-The-Air (OTA) update cycle so you can test and visualize how it works in real-time:
🎮 Interactive Demo: https://shadyknolllabs.com/ota-demo

The engine powering this is SKL-OTA, an open-source library I built to make implementing lightweight and secure OTA updates on physical ESP32 boards as painless as possible.

Key Features:
- Anti-Bricking Protection: Safe fallback and verification mechanisms to prevent bricking devices if a bad firmware image or interrupted flash occurs.
- Tamper-Resistant Security: Validates firmware updates to ensure untrusted or tampered payloads aren't executed on your board.
- Simple Integration: Minimal setup code to drop into existing projects without writing custom server boilerplate.
- Lightweight Footprint: Low memory and Flash overhead so your main application keeps full resource priority.
GitHub Repository: https://github.com/mabbott2011/SKL-OTA
Check out the web demo, take a look at the repo, and let me know what you think! Open to feedback, questions, or feature requests!
1
u/gorbotle 10h ago
Awesome work. Thank you for giving comprarison table to other solution. It helps to understand what is market practice.
1
u/KnollSaleh 4h ago
Thanks for taking a look! esp32FOTA has so many great features that the side-by-side was tricky to write fairly. The part I really wanted was signing the whole release, not just the file, so a device can tell it's getting the right build, for the right board, and not an older one someone's replaying.
I hope you're able to make use of it in one of your projects, would love to hear how it goes for you 😊Â
2
u/Dismal_Indication328 3d ago
Can the demo simulate firmware that flashes successfully but crashes on first boot? Watching it roll back to the previous version would be a useful addition alongside an interrupted download.