This is an old revision of the document!
Lab 10. Secure OTA
This lab shows how to implement real remote firmware updates from a browser for an ESP32-C6 board using PlatformIO + pioarduino and an Async Web OTA page powered by ElegantOTA.
You will:
flash a first “baseline” firmware over USB,
host an authenticated OTA webpage on the device,
upload a new firmware from your browser,
verify success with a visible NeoPixel behavior change,
document basic threat-model thinking.
Learning outcomes
After completing this lab, you can:
Explain why OTA requires an A/B (dual-slot) style partition table.
Configure PlatformIO to use pioarduino and an OTA partition scheme.
Implement a device-hosted OTA updater available at /update.
Validate OTA end-to-end by changing device behavior without USB access.
Identify key security risks for OTA and apply simple mitigations.
Concept snapshot