Extends the FreeRTOS Kernel
Amazon FreeRTOS extends 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 support for RISC-V and ARMv8-M (Cortex-M33). See FreeRTOS.org for more information on the FreeRTOS kernel and microcontroller operating system functionality.
Local connectivity to an edge device running AWS IoT 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.
Additionally, Amazon FreeRTOS devices can connect to AWS IoT Core via a mobile device using Bluetooth Low Energy (BLE) connectivity (BLE support in Amazon FreeRTOS is currently beta). BLE support in Amazon FreeRTOS enables you to use the standard Generic Access Profile (GAP) and Generic Attributes (GATT) profiles through a standardized API layer to create BLE applications, and use companion Android and iOS SDKs to integrate with AWS IoT functionality.
Once Amazon FreeRTOS devices are connected to the local network they can easily connect to a local edge device, like AWS IoT Greengrass Core devices, on the same local network using the AWS IoT Greengrass Discovery API. Amazon FreeRTOS makes it easy for devices to initiate the discovery process and to connect to the desired AWS IoT 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 Features and Services
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.
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.
Secure Device, Connection, and 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.
The AWS Partner Device Catalog lists devices that fully support Amazon FreeRTOS and its features and capabilities. You can easily and quickly find supported development kits as well as off-the-shelf devices such as gateways, edge servers, sensors, and cameras for immediate project integration. It offers development kits and embedded systems to build new devices, as well as off-the-shelf-devices such as gateways, edge servers, sensors, and cameras for immediate IoT project integration.
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.