New things come and go, but when Amazon launched its FreeRTOS — we knew it would be a huge benefit to both our clients and ourselves in IoT product development.
Here, Bill Wedin, our Principal Firmware Engineer, took the time to review his thoughts on the pros and cons about Amazon’s firmware made for edge devices from using it over the past year.
What is Amazon FreeRTOS and Why should I use it?
IoT edge device firmware trends have been moving towards device and server connectivity provided as end-to-end service. Device developers are given choices of device firmware SDK and server connectivity out-of-the-box.
Amazon FreeRTOS is one such ecosystem Breadware’s clients have been asking for on their IoT edge devices. Breadware has been developing Amazon FreeRTOS production-ready IoT devices for over a year.
In short, Amazon FreeRTOS is a combination of Amazon’s version of FreeRTOS (freertos.org) Real Time Operating System and an AWS IoT SDK, designed for IoT devices. It is free and a port is available for most MCUs used in the IoT device market.
Developers get the full power of AWS in addition to its AWS IoT specific offerings. Imagine AWS at your fingertips for device security, management, lambda functions, databases, CI/CD, and on and on. AWS never has just one offering in these areas so a company can choose the features that apply to their requirements.
One Breadware client, Shine Bathroom, found the Alexa Voice Integration to be a game changer. Imagine “Alexa, clean my toilet”.
IoT Core and IoT Device Defender
Amazon FreeRTOS seamlessly integrates with IoT Core and IoT Device Defender. Device Defender continuously monitors device security compliance, security metrics, and security violations.
AWS IoT Greengrass Integration
Amazon FreeRTOS also provides optional AWS IoT Greengrass to push more computing, decision making, and security to the edge device. This integrates easily with local network server running AWS IoT Greengrass Core. This Core can run on any Linux machine. This can be critical to products that want to “go easy” on the cloud communication.
The One-two Combination You Didn’t Know You Needed
AWS IoT Greengrass and AWS IoT Device Defender add to Amazon FreeRTOS the ability to communicate safely between IoT devices. A nice feature that is integrated into the SDK for you.
Here are the “cool stuff” about Amazon FreeRTOS:
- Breadware follows the latest news from Amazon and analyzes every official release. This means we are experts on this product.
- It’s open source. This allows developers to change the SDK as they wish.
- It’s free
- It’s supported on many target MCUs. It is very likely your MCU is supported. Goto https://devices.amazonaws.com and search for Amazon FreeRTOS. It lists the supported MCUs.
- Developers are not tied to using AWS servers with this product. Developers can use every part of the SDK with any server.
- The only exception is OTA which uses an AWS IoT specific protocol.
- High-level AWS IoT Shadow API is part of SDK.
- MQTTS is supported with TLS v1.2. High level pub/sub API is part of SDK. Manages encryption and certificates/keys for the developer.
- Supports Wifi or Ethernet
- Supports BLE MQTTS server communication. Requires Amazon’s “BLE Mobile SDK demo application”. SDK is provided for developers to create their own mobile app.
- AWS and Amazon IoT Core have easy integration with 3rd party service and application providers.
- AWS has a program for startups “AWS Activate” that provides generous credits for AWS services and separate generous credits for support.
Here are the “could be better” things about Amazon FreeRTOS:
- Amazon FreeRTOS is a relatively young product.
- Amazon is still getting some of the defects out of it and stabilizing the SDK API. However, Breadware has worked around all issues here and has production ready stable firmware.
- The Amazon FreeRTOS SDK changes on each release, and is not always backward compatible. In 2020, it is settling down now and the latest release was backward compatible.
- Some features on AWS can get expensive. For example: AWS’s machine learning. Buyer beware.
- Greengrass is a fee service. I’d prefer it to be free.
- Amazon FreeRTOS uses 500Kbyte to 1Mbyte of ROM and 100s of Kbyte of RAM. Therefore, this ecosystem is not suitable for the very small IoT MCUs on the market.
If you’re ready to bring your IoT edge device to fruition, we’re all ears!
- Breadware Team
AWS: Amazon Web Services
MCU: Microcontroller Unit. A small, lower power CPU. By lower power, I mean slower clock frequencies (100s of MHz).
Amazon’s version of FreeRTOS: FreeRTOS is a free, market-leading real-time operating system (RTOS). FreeRTOS is a trusted offering, that has gained IoT industry-wide acceptance.