Hacker News new | ask | show | jobs
by dominik_nowak 1663 days ago
Hi guys, I have prepared a GitHub template with a configuration for over-the-air (OTA) firmware update from a level of GitHub workflow.

After a new push to a repo, the CI/CD pipeline is triggered that builds a new firmware and sends it with HTTP POST request to an OTA server running directly on ESP32. It takes ~3 minutes. Using that configuration in "matrix build" enables updating up to 256 devices at once.

The project is based on / uses:

- PlatformIO

- Arduino

- AsyncElegantOTA (for OTA server - we do not use the provided frontend)

- ESPAsyncWebServer (for a simple "Hello world" server)

- Husarnet (for direct access over the internet over NAT & firewall)

- GitHub Actions workflow definition

I hope it might be interesting for those of you who do sth with that cool WiFi chip :)

1 comments

Looks interesting, just wondering why you chose this architecture over the more standard "message to esp32 via mqtt then esp32 downloads firmware over https" route?
This architecture is IMHO simpler - you do not have any MQTT server or server for „hosting a new firmware”. You directly deploy new software like in a „standard workflow” where you send build artifacts to something with a public IP (in this example „public IP” is provided to ESP32 by Husarnet VPN)