freeRTOS OTA with RF-chips using AT-Commands

Hi there, I’m new to freeRTOS and I came across the OTA Library.
In my setup I’m using a STM32 MCU as main CPU running the Application and a ESP32 as Wifi interface running the AT-Command Firmware. Connection to aws cloud works fine, so does MQTT/IoT stuff.
My Question now is, is it possiple to use the freeRTOS and the freeRTOS OTA Library to update the STM32 firmware remotely? I can imagine the AT-Command stuff could be the bottleneck here :thinking:

Any thoughts or experience on this use case?
regards Lukas

You should be able to use the new refactored OTA library to achieve this. Look at the following repository for an example - GitHub - FreeRTOS/Labs-Project-ota-example-for-aws-iot-core: An example of an AWS IoT Core OTA orchestrator, running on the FreeRTOS POSIX port.

Thank you aggarg for your fast reply :v:t2:
I just had a qick look on the link you provided. It seems this Demo runs on a PC not on a microcontroller. No buzzwords on STM32 or AT-Commands…
But I will investigate further. Thank you for your help :+1:t2:

This is a sample orchastrator for PC which uses several components as described here - You should be able to write an orchastrator for your use case using the same components.

My Question now is, is it possiple to use the freeRTOS and the freeRTOS OTA Library to update the STM32 firmware remotely?

To add to what @aggarg has mentioned, you’re going to want to use the newer, modular OTA libraries as it will greatly simplify OTA integration.

Now for the ‘orchestrator’ you’ll need, the ST board OTA update will look fairly similar to the example lab one (assuming you’re using AWS IoT OTA) with the exception that you’ll need to handle the messages coming from the ESP32 instead. The ESP32 chip at that point would just pass through OTA update blocks to the STM board.

Great, thak you gentleman!
As mentioned befor I’m new to freeRTOS and I have to dig into it but I will manage. Thanks for your guidelines.

Allow me one more question.
Since i stick to STM32 ecosystem there is a CMSIS-RTOS2 wrapper to freeRTOS as default interface to app-code (cubeMX code generator). You might have heard of it.
Does it make sence using it? Especially if I’d like to use the new OTA libs.
Regards Lukas

OTA libs (and any of our libs) have no dependency on CMSIS RTOS wrapper, so it is not needed. The purpose of this abstraction is to enable you to switch RTOS. The drawback of any such abstraction is that your application is limited to the common functionalities of all the RTOSes. With this information, you should be able to decide for your application - if you do not plan to switch RTOS, there is no use of using this wrapper.