Hacker News new | ask | show | jobs
Show HN: I made a GitHub Actions workflow for OTA firmware deployment to ESP32 (github.com)
2 points by dominik_nowak 1663 days ago
1 comments

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 :)

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)