Based on the FreeRTOS Kernel
Amazon FreeRTOS is based on the FreeRTOS kernel. The FreeRTOS kernel has a 6-15KB memory footprint, making it well-suited for microcontroller-based devices with limited memory and computational power. It includes features such as task prioritization, code modularity, and power management that can help ensure an application meets its processing deadlines, the application code is simpler, and the application is power-optimized. The latest version of the FreeRTOS kernel (v10) includes string buffers, message buffers, updated API references, and new device support. See FreeRTOS.org for more information on the FreeRTOS kernel and microcontroller operating system functionality.
Local connectivity to an edge device running AWS Greengrass allows Amazon FreeRTOS devices to continue communicating, collecting data, and taking actions without a cloud connection. Amazon FreeRTOS devices can connect to the local network via Wi-Fi and Ethernet using local connectivity libraries such as Wi-Fi management. The Wi-Fi management library implements an abstraction layer for Wi-Fi features such as setup, configuration, provisioning, security, and power management.
Once Amazon FreeRTOS devices are connected to the local network they can easily connect to a local edge device, like AWS Greengrass Core devices, on the same local network using the Greengrass Discovery API. Amazon FreeRTOS makes it easy for devices to initiate the discovery process and to connect to the desired Greengrass Core. Local connectivity enables devices to communicate with each other at the edge, for example a security system in an office building that unlocks the door when you swipe a badge.
Cloud connectivity allows you to easily collect data and take actions on microcontroller-based devices for use in IoT applications and with other AWS cloud services. You can connect Amazon FreeRTOS devices to AWS IoT Core using MQTT based messaging. Amazon FreeRTOS facilitates easy onboarding with standard, vendor-independent library interfaces. MQTT is a lightweight protocol with a small footprint, enabling efficient communication for constrained, microcontroller-based devices. Cloud connectivity allows devices like smart electricity meters to send back information on consumption and analyze that data with other AWS services like AWS IoT Analytics.
Support for AWS IoT Core Device Shadows
Amazon FreeRTOS also supports the AWS IoT Core Device Shadow API with a Device Shadow library. Device Shadows create a persistent, virtual version, or “shadow,” of each device that includes the device’s latest state so that applications or other devices can read messages and interact with the device. Microcontroller-based devices, like a temperature controlled fan, can benefit from a device shadow by saving the latest state in the cloud, such as “rotating”, and then update the state to “stop”, so when the device is back online, it implements the action to stop.
Secure Device, Connection, & Updates
Amazon FreeRTOS comes with libraries for security, including secure cloud connection, certificate authentication, key management, and a code signing feature.
Amazon FreeRTOS manages a secure connection to the cloud using Transport Layer Security (TLS v1.2). The TLS library implements an abstraction layer for the TLS protocol which provides privacy and data integrity between two communicating applications. In order to connect to the AWS IoT Core MQTT broker, TLS client certificate authentication is required. Amazon FreeRTOS provides an abstraction layer for cryptographic object management and private key signature operations as a key management feature. Cryptographic objects are kept either in dedicated storage or in the flash memory of the main microcontroller if dedicated storage is not available. You can use the AWS IoT Device Management console with Amazon FreeRTOS devices for code signing. The code signing feature will verify the signed image on the device to ensure your device code is not compromised during deployment and updates.
You can use AWS IoT Device Management with Amazon FreeRTOS devices for an integrated OTA update solution. Amazon FreeRTOS makes deploying OTA updates for microcontroller-based devices less memory intensive, by communicating those updates over a single TLS connection, shared with other AWS IoT Core communications. You provide a firmware image, select the devices to update, select a code signing method, and schedule the update, all within the AWS IoT Device Management console. You can use OTA updates to deploy security updates, bug fixes, and new firmware updates to devices in the field.
Support for AWS IoT Device Defender
Amazon FreeRTOS provides an AWS IoT Device Defender library. The integration with AWS IoT Device Defender makes it easy to report on device-side metrics to detect anomalies when these metrics deviate from expected behavior. AWS IoT Device Defender also continuously audits the IoT configurations associated with your Amazon FreeRTOS devices to make sure that they comply with security best practices.
The Amazon FreeRTOS Qualification Program gives you the confidence that the microcontroller hardware you choose fully supports the Amazon FreeRTOS operating system and software platform features and capabilities.
The Amazon FreeRTOS Qualification Program also gives microcontroller vendors confidence that their qualified chipsets are secure and interoperable with AWS IoT Core and AWS Greengrass. This means that the microcontrollers and associated libraries will meet the security, functionality, and performance requirements to work seamlessly with AWS IoT Core and AWS Greengrass. To learn more about qualification, click here.
Amazon FreeRTOS Console
You can get started quickly by using the Amazon FreeRTOS console to configure and download source code, specific to the qualified microcontroller and use case. It contains a project file download that is tailored to your chipset, integrated development environment (IDE), and compiler. You can select only the libraries you need, saving space on your device. To learn more about getting started, click here.
You can select the Amazon FreeRTOS OTA update job within the AWS IoT Device Management console.