// the find
Fishwaldo/esp_ghota
esp32 OTA Component to update firmware from Github Releases
An ESP-IDF and PlatformIO component that checks GitHub Releases for a newer SemVer tag, then downloads and flashes the matching app and storage images over OTA. It's for people who already build firmware in GitHub Actions and want devices in the field to pick up those releases without a manual flash.
- Uses a streaming JSON parser (lwjson) instead of buffering the whole GitHub API response, which matters on an ESP32 with limited RAM. The README calls out that these responses can be large.
- Version gating is done with SemVer comparison, and the README says it works with the esp-idf app rollback and anti-rollback features, so a bad image can fall back to the previous one.
- One release can carry both the app and a storage image (spiffs, littlefs or fatfs). Glob patterns select the right per-target binary, so one CI pipeline can serve an ESP32 and an ESP32-S3 fleet.
- Progress is reported through the esp_event loop, and updates can be triggered by a timer or by a manual call, so the application decides when and how to show the update to the user.
- The last push was in February 2024, more than two and a half years ago. Check the issue tracker and recent esp-idf releases before depending on it in a new product.
- The sample CI workflow pins esp-idf v4.4.3 and uses upload-artifact v3 and download-artifact v2. Copying it verbatim will probably fail on current GitHub runners, so it needs updating before it's useful.
- The usage examples never show how the GitHub token is supplied. The README warns against hardcoding a PAT and suggests NVS, but gives no code for that path, so the easiest way to follow the examples is the one the README warns against. The repo and owner names also live in Kconfig rather than the config struct shown, so the snippets don't cover the full setup.