Hello everyone. It would be wonderful if someone could help me find documentation for making firmware updates using OTA with AWS services for ESP32 devices. I understand that it is possible to do it with the Spressif IDE, but all my development has been done in Arduino IDE.
Thank you in advance
Not sure whether this is what you mean but the Arduino IDE has an option under the Sketch menu called Export Compiled Binary which allows the compiled sketch to be output and saved as a binary ready sending via OTA.
A quick Google found this for the AWS part:
Disclaimer: never used it nor have any experience of it so use at own risk!
Of course, you don't have to use cloud services for OTA although I expect you have a reason?
Thank you for your answer. I'm working on a project where I need to make updates to hundreds of devices (ESP32) located on different networks. For this reason, I think it is best to host the .bin in a cloud service such as AWS S3 and then deploy it to all devices that are connected to the internet. It's similar to what is mentioned in the article, but I need it to be the OTA update by wifi and using some Arduino library
Hey there!
You're right, OTA updates can be done with AWS services for your ESP32 devices, and while it's often done through the ESP-IDF and the Espressif IDE, you can still implement it in the Arduino IDE with a bit of work. Here's a quick breakdown of how you can approach it:
- AWS IoT Core Setup: First, you'll need to configure AWS IoT Core to interact with your ESP32 device. This involves setting up things like Thing certificates and policies for secure communication.
- Use AWS S3: Upload your firmware binary to an S3 bucket in AWS, which will act as the source for OTA updates.
- OTA Library in Arduino: You can use the ArduinoOTA library for ESP32, but you’ll need to combine it with AWS IoT Core. To do this, you’ll need to add AWS SDK for C++ or use an existing library that communicates with AWS for downloading the firmware from the S3 bucket.
- Update Check in the Code: On the ESP32 side, your code will need to check for firmware updates by querying your AWS IoT Core. If an update is available, you can download it from S3 and apply it using the ArduinoOTA method.
- Documentation & Resources: You might find these resources helpful:
- AWS IoT Core Documentation
- ESP32 OTA Updates on Arduino
- AWS IoT SDK for Arduino
I hope that helps point you in the right direction!
Thank you for your answer, it helps a lot. I need to focus on working on step 3 and you give me a hint on using the AWS SDK and combining it with the Arduino library.
Looking a little further, I found that in examples for "ESP32S3 Dev Module" in the Arduino IDE, it has a folder called "Update" and it has an example for doing an OTA update using the AWS S3 service. Works pretty well.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
