As many readers have probably heard, back in 2017, Amazon announced a “new” RTOS, Amazon FreeRTOS, which is based on the popular open source real-time operating system (RTOS) FreeRTOS. Amazon FreeRTOS is designed to help developers creating IoT edge nodes to easily connect to Amazon Web Services (AWS). The interesting problem I found, was that it is a bit difficult for developers to understand how the demonstration code works and what changes they need to make to adapt it to their own needs.
Over the past several months, I’ve been digging deeper and deeper into Amazon FreeRTOS and publishing a series of articles covering it on embedded.com. These articles start with a basic overview on how the demonstration works and executes using the 2018 February release from the AWS IoT console. I then move on to discuss how the MQTT communication behaves and how much memory is used by the application. In the later articles, I examine how messages are published and received from the cloud and how developers can create and support multiple topics.
Developers who are interested in getting started with Amazon FreeRTOS will find these articles to be helpful and they can be found at the following links:
- A Peek Inside Amazon FreeRTOS
- A Peek Inside Amazon FreeRTOS: Communication and Memory
- A Peek Inside Amazon FreeRTOS: Publishing Messages to the Cloud
- A Peek Inside Amazon FreeRTOS: Receiving Messages from the Cloud
Since publishing those articles, I’ve learned that there have been a few improvements to the Amazon FreeRTOS 1.3.0 release over the old 1.2.3 release which was the 2018 February release. First, the MQTT library has been improved so that it uses 50% less code space. The application has shrunk from being nearly 400 kB to 200 kB. Next, the long MQTT start-up time of 37 seconds that maxed out the processor has been dramatically reduced to approximately 15 seconds. There have also been updates to the Wi-Fi module firmware on the STM32 IoT Discovery Board that may further enhance the wireless communication performance.
One concern to keep in mind is that just like any open source software, it may not have been put through all its paces and may not hold up to the high-quality standards that one would expect from a commercial OS. These would be things like security and robustness. In any case, experimenting with Amazon FreeRTOS is a good way to start to explore how to build your own IoT device and use AWS.