ClavdaClavda

Update ESP32 firmware over the air from anywhere

Install new firmware on an ESP32 from your browser, over the internet and without a USB cable: export the .bin, upload it in Clavda, and confirm the new version.

Updated 1 min read

Arduino's built-in OTA only works on the same local network as the board. With the ClavdaOTA library in your firmware, the board downloads updates through Clavda instead, so you can update it from anywhere it has Wi-Fi, behind any router.

What you need

  • An ESP32 already connected to Clavda and showing green under Devices.
  • The partition scheme from setup, Minimal SPIFFS (1.9MB APP with OTA) or min_spiffs.csv, flashed once over USB. Without two app slots there is no room to install an update.

Install an update

Give the build a new version

Change CLAVDA_FIRMWARE_VERSION at the top of the sketch for every build you upload, from "1.0.0" to "1.0.1", say:

#define CLAVDA_FIRMWARE_VERSION "1.0.1"

Clavda counts an update as done only when the board reconnects reporting the new version, so a build with an unchanged version never shows as installed.

Build the firmware binary

Choose Sketch → Export Compiled Binary. Upload <sketch>.ino.bin from the sketch's build folder, not the .merged.bin or the bootloader.

Upload it in Clavda

Open the device's Connect sheet, upload the .bin, and press Update now.

Let the board install it

The board downloads the new firmware, checks it, and restarts into it. Once it reconnects reporting the new version, the update shows as done.

Version strings

Start with a letter or digit and use up to 31 letters, digits, dots, underscores, plus signs or hyphens: 1.0.1, 2026.10.15 and v2-beta all work.

Keep updates reliable

  • Call ClavdaOTA.loop() on every pass through loop(), and avoid long delay() calls. Updates install from there.
  • Keep your firmware small enough for one app slot: with the Minimal SPIFFS scheme, each slot is 1.9 MB.

Next steps