OTA / DFU Updates

You flashed POOM once over USB in Getting Started. After that, you rarely need the cable again: POOM can update itself over the air using its built-in DFU (Device Firmware Update) service. This chapter explains how that works, when to use it, and how to do it safely.

Why OTA is safe here: POOM ships with a dual-slot partition layout (ota_0 and ota_1, 3712 KB each). An update is written to the inactive slot and only becomes active after it validates, so a failed or interrupted update leaves the currently-working firmware untouched.

How the DFU Service Works

The updater (poom_fw_update) puts POOM into AP mode: the device becomes a small Wi-Fi access point and serves an update interface. You join that access point from a phone or laptop and push the new firmware image to it. Under the hood it writes to the spare OTA slot, updates the otadata partition to point at the new slot, and reboots into it.

The service exposes its own AP SSID and password (from poom_fw_update_get_wifi_ap_ssid() / _password()) and emits progress events — start, progress, and result — which the device screen shows as a progress indicator.

USB Flash vs OTA: Which to Use

SituationUse
First time / blank boardUSB web flasher or idf.py flash
Recovering a bricked or wrong-target boardUSB (download mode)
Routine update to a newer POOM buildOTA / DFU
No cable handy, device in the fieldOTA / DFU

Updating Over the Air

  1. Get the new poom.bin application image (the app-only OTA binary, not the full merged flash image).
  2. On POOM: SETTINGS → DFU → A. The screen shows the AP name to join.
  3. On your phone/laptop, join that POOM access point (use the SSID/password shown by the device).
  4. Open the update interface and upload poom.bin.
  5. Watch the on-screen progress. When it reports success, POOM reboots into the new firmware from the other slot.
Use the app image, not the merged image. OTA updates only the application slot — bootloader and partition table stay as they are. Flashing a full merged image over OTA is neither needed nor correct; that is a USB-only operation.

Safety & Recovery

  • Don't power off mid-update. Even though the active slot is protected, let the write finish so you don't have to repeat it.
  • Keep a USB cable as your safety net. If an OTA ever leaves the device in a bad state, re-flash over USB in download mode (hold BOOT, tap RESET, release BOOT) — see Troubleshooting.
  • Version mismatch: an OTA image must be built for the same target (esp32c5) as the board. A wrong-target image will be rejected or fail to boot; the dual-slot design lets the old firmware carry on.