Page 1 of 1

Programming ESP32 with Rust: OTA firmware update

Posted: Sun Mar 31, 2024 7:04 am
by hongquan
We at AgriConnect have been using Rust to develop firmware for ESP32 (and even part of our IoT platform backend). From today we start a series to help fellows on the same journey. "Over-the-air firmware update" is the first sharing because it was the topic that one of the authors of esp-idf-hal suggested me to write.

For OTA firmware update, esp-idf-svc already provides API. What it lacks is a documentation how to use the API, how to prepare partitions to use with that API. This post will complement that.

Continue to read at https://quan.hoabinh.vn/post/2024/03/pr ... are-update

Re: Programming ESP32 with Rust: OTA firmware update

Posted: Fri Jul 18, 2025 2:42 pm
by patkepa
Hey, great read!

So basically I'm working on implementing a OTA loader into our software (similar as in your example)
But our main software is still currently C and will be for longest time.

Do you think, it'd be beneficial, to basically write our loader software in Rust (downloads update, flashes other partition, uses NVS to communicate by NVS if the update was succcesfully applied, then saves status to NVS, backs to rust loader, which then depending on sucess goes back to main program or tries to somehow recover from broken update), but keep the main codebase in C?
Would such division could perhaps create any issues?

Thanks!