Your devices update themselves

ElegantOTA Pro comes with extended functionality and updates the fleet you can’t reach - devices behind NAT, on a customer’s network or in another country - devices fetch their own firmware and install automatically.

1.0k on GitHubAdd to bag - $249
One payment, unlimited devices·No cloud service·Commercial license·Instant repo access
Update consoleElegantOTA v4
ESP32 · S2 · S3 · C-SERIESESP8266 · ESP8285RP2040 · RP2350 (+W)FILE · DIRECT · AUTO7.4 KB UIUNLIMITED DEVICES
01 · HOW IT WORKS

Build to reboot, in about a minute.

Just three lines of code to integrate it in your firmware and rest is handled by the library. The device checks capacity, writes the image, verifies it and reboots - all unattended.

01
Export your build
Compile as usual in Arduino IDE or PlatformIO and grab the .bin. No build system to adopt, no agent to install alongside it.
02
Pick how it travels
Drop the file from your laptop, hand the device a URL to fetch, or publish it to the channel it already watches. Same firmware, three ways in.
03
Watch it write
Live progress, transfer rate and free space on the target. Capacity is checked before the first byte and MD5 after the last, so a bad image is refused rather than half-written.
04
Reboot into new firmware
The device restarts on the new build automatically. That’s the whole job.
02 · INSIDE THE PORTAL

Just one library with three different OTA methods

Drop a .bin from your laptop, hand the device a URL, or publish to a channel it already watches - the same portal, the same progress bar, and not a line of HTML from you.

80K+ installs7.4 KB portal, no CDNESP32 · RP2350 · ESP8266
Write toFirmware1.88 MB free

Current build · 1.15 MB

https://releases.softt.io/lantern/1.5.0.bin

The device downloads this itself over HTTP or HTTPS, so the link has to be reachable from the device’s network.

Fetch and write
Paste an HTTP or HTTPS URL - the transfer belongs to the device, so closing the tab doesn’t stop it
Write toFirmware1.88 MB free

Current build · 1.15 MB

https://releases.softt.io/lantern/1.5.0.bin

The device downloads this itself over HTTP or HTTPS, so the link has to be reachable from the device’s network.

Fetch and write
Device-side download from any URL Automatic updates from a release channel Firmware + filesystem updates Capacity checked before the first byte MD5 verified after the last Root CA pinning for HTTPS Lock update modes from firmware Device identity & firmware version Custom logo & title (white-label) WebServer or ESPAsyncWebServer Update page UI source code Unlimited devices, no per-device fee Private repo & Discord access
03 · THE REACH PROBLEM

Let the library do everything for you.

The same release, pushed by hand and pulled by the fleet.

BEFORE ELEGANTOTA PRO - PUSHING EVERY DEVICE YOURSELF
Every device has to be reachable from your machine
A VPN, a port-forward or a site visit for anything behind NAT
One browser tab per device, held open until it finishes
A release means doing it again, device by device
WITH ELEGANTOTA PRO
Publish the build once - the devices pull it themselves
The device reaches your URL; nothing has to reach the device
The transfer belongs to the device, so you can close the tab
Version compared, MD5 checked, then a reboot on the new build
04 · OPEN-SOURCE VS PRO

Already using open-source ElegantOTA?

Two reasons people upgrade. The free build is AGPL-3.0, so shipping it inside a product means publishing your own firmware source alongside it - Pro replaces that with a royalty-free commercial license. And the free build only reaches devices you can reach; Pro adds the two modes that matter once the hardware is in somebody else’s building.

Open-source
Free
forever, for open projects
OTA updates with progress UI
Password authentication
Direct download - the device fetches a URL
Automatic updates from a release channel
Write target picker with free space
Lock update modes from firmware
Device identity, chip & firmware version
White-label logo & custom title
Update page UI source code
LicenseAGPL-3.0 copyleft
DeliveryPublic repository
SupportGitHub issues
ElegantOTA ProUpgrade
$249
one-time · unlimited devices
OTA updates with progress UI
Password authentication
Direct download - the device fetches a URL
Automatic updates from a release channel
Write target picker with free space
Lock update modes from firmware
Device identity, chip & firmware version
White-label logo & custom title
Update page UI source code
LicenseSCL-1.3 commercial
DeliveryPrivate repo + Discord
SupportPriority Discord & email
Upgrade to Pro - $249Free lifetime updates
05 · FIELD NOTES

Already out in the field.

Teams shipping ElegantOTA Pro inside hardware they no longer have to visit.

All of our field devices take their updates through ElegantOTA Pro. We just put the latest release on our server and all the devices update themselves overnight!
Diego M.· Firmware lead · industrial IoT
Our techs used to open enclosures and hunt for USB ports. Now they join the device’s network, open its page and drop the new build - done in a minute.
Priya Raghavan · Product engineer · smart metering
The white-label page looks like part of our product, not a third-party tool. Customers update their own devices and never know the difference.
Tom Becker · CTO · HVAC controls
06 · BEFORE YOU BUY

Questions, answered.

Anything else? Write to [email protected] - a human answers within a day.

Can I ship it in a commercial, closed-source product?
Yes - that’s what you’re buying. Pro comes with the SOFTT Commercial License 1.3: royalty-free, closed-source friendly, valid for unlimited devices, including hardware you white-label. The open-source build is AGPL-3.0, which obliges you to publish your firmware source if you ship it in a product.
Is there a per-device fee or a subscription?
Neither. One payment covers unlimited devices, forever, and every 4.x release along the way. There is no cloud service between you and your hardware, so there is nothing metered and nothing to renew - the difference against a hosted OTA platform stops being a rounding error somewhere around your hundredth device.
Do devices in the field have to be reachable from my machine?
Only for file uploads. With direct download and automatic updates the device opens the connection, so your release URL needs to be reachable from the device’s network - not the other way round. That is what keeps hardware behind NAT on a customer’s network, or on a mobile connection, updatable without anyone visiting it.
What are the three update modes?
File drops a .bin straight from the browser onto the device. Direct hands the device a firmware URL and it downloads the image itself over HTTP or HTTPS. Auto points the device at a release channel - a small JSON manifest it checks on your schedule - and it either installs new builds unattended or fires onUpdateAvailable() so your code decides the moment.
What stops a bad update bricking a device?
The image is measured against the free space on the target before a single byte is written, so an oversized build is refused rather than half-flashed. MD5 is verified after the transfer, downloads that stall are timed out and abandoned, and update channels can pin a root CA so the device only accepts firmware from your server.
Which boards does ElegantOTA Pro support?
The full ESP32 family (including S2, S3, C3 and C6), RP2040 and RP2350 boards with WiFi, and ESP8266 - on the Arduino core via Arduino IDE or PlatformIO, with either the standard WebServer or ESPAsyncWebServer. RP2040 and RP2350 stage the incoming image in flash, so they need a LittleFS partition. ESP-IDF directly isn’t supported.
Does it update the filesystem too?
Yes. Pick firmware or filesystem (LittleFS / SPIFFS) from the write-target selector and the page shows the free space before it writes. File drop and direct modes can write either image - and Pro lets you disable modes and targets from your firmware code, which removes them from the portal and stops the routes serving at all. Auto update only updates firmware.
What happens right after I pay?
Invites to the private ElegantOTA Pro GitHub repository and the SOFTT Discord land in your inbox the moment payment clears. Pull the library into Arduino or PlatformIO straight from the repo, and you have the portal’s UI source alongside it.
Can I get a refund if it doesn’t fit?
No - a purchase unlocks the full source code, and that access can’t be handed back, so all sales are final. Prove it out on the open-source build first: it shares the same core API and the same portal, so if it updates your board, Pro will too.
Buy once. Update forever.

One payment of $249covers unlimited devices, forever - no per-device fee, no subscription, no service in the middle to go down or put its prices up. Private repository and Discord access, the portal’s UI source, and every 4.x release from here on.

Add to bag - $249Not sure yet? The open-source build shares the same core API - prove it on your board first.
Instant repo access Private Discord Free lifetime updates Secure checkout
ElegantOTA Pro
ElegantOTA Pro$249Add to bag