Developer Marc Schöndorf has released a library for easily flashing over-the-air (OTA) updates onto Espressif ESP32 targets — with support for Raspberry Pi’s RP2040 microcontroller to follow: PrettyOTA.
“I want to share a library for ESP32 series chips and Arduino I have been working on in the past time,” Schöndorf writes of the project. “A simple to use, modern looking web interface to install firmware updates OTA (over the air) inside your browser or directly from PlatformIO/Arduino IDE. PrettyOTA provides additional features like one-click firmware rollback, remote reboot, authentication with server generated keys and shows you general information about the connected board and installed firmware.”
If you’ve got Espressif ESP32 projects deployed in the field, PrettyOTA can help you keep them bang up to date. (📹: Marc Schöndorf)
Over-the-air updates are the more convenient way of keeping your Internet of Things (IoT) projects fresh: rather than having to schlep over to the physical device, unplug it, connected it to a computer, flash a new firmware, and plug it back in again, you can transmit authenticated updates over a network — but, Schöndorf says, existing libraries and tools leave a lot to be desired.
“The standard OTA samples look very old and don’t offer much functionality,” he explains. “There are libraries with better functionality, but they are not free and lock down a lot of functionality behind a paywall. So I wanted to make a free, simple to use and modern OTA web interface with no annoying paywall and more features.”
The library’s current release supports the Espressif ESP32 range, with Raspberry Pi RP2040 to follow in a future version. (📷: Gareth Halfacree)
Schöndorf’s PrettyOTA provides both a web interface, complete with drag-and-drop firmware upload support and board status information, and compatibility with OTA flashing from PlatformIO and the Arduino IDE. Updates can be rolled back in one click, Schöndorf promises, and the library requires only around 25kB of program flash on the device.
Schöndorf’s ESP32 version of the tool is available in the Arduino IDE and PlatfomIO Library Managers now, with source code on GitHub under the permissive zlib license; the developer has indicated that support for the Raspberry Pi Pico W and other RP2040-based devices is a work in progress, and that Espressif ESP8266 compatibility may follow in the future. More information is available in Schöndorf’s Reddit post.