Q. What is Amazon FreeRTOS?
Amazon FreeRTOS (a:FreeRTOS) is an operating system that makes microcontroller-based edge devices easy to program, deploy, secure, and maintain. Amazon FreeRTOS extends the FreeRTOS kernel, the popular open source operating system for microcontrollers, and includes software libraries that make it easy to securely connect devices locally, to the cloud, and update them remotely. The Amazon FreeRTOS console enables you to easily select and download the software components relevant to your use case. Amazon FreeRTOS helps keep microcontroller-based devices secure with support for data encryption and key management. Amazon FreeRTOS devices connect to AWS IoT Greengrass Core devices, making it easy to connect multiple Amazon FreeRTOS devices together in an AWS IoT Greengrass group.
Q. Which AWS region is Amazon FreeRTOS available in?
Please see the AWS Region Table for a complete list of regions where Amazon FreeRTOS is available. You can use Amazon FreeRTOS regardless of your geographic location, as long as you have access to one of the available AWS regions.
Q. What are some use cases for Amazon FreeRTOS?
Amazon FreeRTOS can be used in embedded systems spanning industrial, commercial, and consumer applications. For example, smart meters, oil pump sensors, appliances, commercial security systems, fitness trackers, and sensor networks can all benefit from Amazon FreeRTOS. Smart meters are used in homes to monitor electricity usage in real-time. Fitness trackers send health data via the user’s mobile device to the cloud for real-time monitoring or analytics. Utilities benefit from this data by enabling more efficient load balancing and power output from their generating stations. Oil pump sensors are used on oil rigs to monitor the output on wells that might be buried deep underwater. An oil rig might deploy Amazon FreeRTOS on those sensors and use an AWS IoT Greengrass Core to locally process data from pumps and valves in real-time. The AWS IoT Greengrass Core could then send batches of preprocessed pump sensor data to the cloud for analytics and data warehousing. To learn more about AWS IoT Greengrass, click here.
Q. How can a microcontroller developer get access to Amazon FreeRTOS?
Q. Who can benefit from Amazon FreeRTOS?
Semiconductor vendors manufacture microcontrollers and modules like connectivity sensors, security peripherals, and Ethernet controllers. These microcontrollers and modules are used by OEMs to build IoT devices.
OEMs include industrial companies, commercial enterprises, and consumer brands. Microcontroller developers can use Amazon FreeRTOS to easily design and develop a connected device and IoT applications.
Enterprises can use IoT connected devices that are powered by Amazon FreeRTOS to gain business and operational efficiency.
Q. What are the major components of Amazon FreeRTOS software?
Amazon FreeRTOS extends the FreeRTOS kernel, a real-time operating system kernel for microcontrollers, with libraries that support connectivity, security, and over-the-air updates. The connectivity stack includes MQTT, TCP/IP, Wi-Fi, and BLE for cloud and local connectivity. Security libraries include a standard-based Berkeley socket interface for TLS and a PKCS#11 standard interface for crypto offload.
Q. What minimum hardware specifications are required?
Amazon FreeRTOS is optimized for microcontrollers with >25MHz processing speed and >64KB RAM (assuming all available libraries, including TLS, are running on the application microcontroller). If the communication and crypto stack (except for MQTT) is offloaded onto the networking processor, your microcontroller will only need 10MHz processing speed and 16KB RAM. However, these values are just approximations, as factors such as MCU architecture, compiler, and compiler optimization level may impact processing speed and RAM requirements. Amazon FreeRTOS needs 128KB of program memory per executable image stored on the microcontroller. For OTA update functionality, two executable images must be stored in program memory at the same time.
Q. What architectures does Amazon FreeRTOS support?
Amazon FreeRTOS currently supports a wide range of microcontrollers from our partners in the AWS Partner Device Catalog. Amazon FreeRTOS is based on the FreeRTOS kernel, which supports some 40+ architectures.
Q. How can I get started on Amazon FreeRTOS?
You can use the getting started guide for systematic instructions on how to run Amazon FreeRTOS on a qualified board.
Q. How can I get technical support?
Use any of the following channels to get support:
Q. Is there a user guide?
Yes. You can access the Amazon FreeRTOS user guide from the documentation section of the getting started page.
Q. Can I use Amazon FreeRTOS to connect to other cloud services?
Yes. Amazon FreeRTOS is an open-source software, so it can be modified to fit any specific needs of your application.
Q. Can I make changes to the Amazon FreeRTOS source code?
Yes. Amazon FreeRTOS is an open-source software distributed under the MIT license, so it can be modified to fit any specific needs of your application without the permission of AWS.
Q. How much do I pay for using Amazon FreeRTOS?
Amazon FreeRTOS is free to download and use.
Q. Does Amazon FreeRTOS include hardware?
No. Amazon FreeRTOS is an operating system for microcontrollers. If you need to purchase Amazon FreeRTOS supported chipsets, visit the getting started page here.
Q. What is the FreeRTOS kernel?
Developed over a 15-year period and in partnership with the world's leading chip companies, the FreeRTOS kernel is the market-leading, real-time operating system kernel and the de-facto standard solution for microcontrollers and small microprocessors.
Q. How are Amazon FreeRTOS and the FreeRTOS kernel related?
Amazon FreeRTOS extends the FreeRTOS kernel with software libraries that support local and cloud connectivity, security, and over-the-air updates.
Q. Does AWS maintain the FreeRTOS kernel?
Yes, and we recently announced the latest update to v10 of the FreeRTOS kernel, which includes support for RISC-V and ARMv8-M (Cortex-M33).
Q. What is the difference between the MIT open source license and the (previously used) modified GPL open source license?
Both licenses allow the software to be used for free, even in commercial products, and neither license imposes any obligations when distributing binary (executable) copies. The MIT license provides simplified wording and allows for more permissive use of our source code. With the MIT license, you can still develop and sell commercial products using Amazon FreeRTOS (including the kernel) but you are no longer obliged to open source modifications to our source code, meaning you own all the changes you make. The only requirements under MIT is that the copyright notice and permission notice shall be included in all copies or substantial portions of the Software (source files).
Q. Is there a support forum for the FreeRTOS kernel?
Yes. You can start a new thread in the AWS forums or view support archives on FreeRTOS.org.
Q. Where can I find more details on the FreeRTOS kernel?
AWS IoT Device Tester for Amazon FreeRTOS
Q. What is AWS IoT Device Tester for Amazon FreeRTOS?
AWS IoT Device Tester for Amazon FreeRTOS is a Windows/Linux/Mac test automation tool that lets semiconductor vendors self test and qualify Amazon FreeRTOS on their microcontroller boards. With AWS IoT Device Tester, semiconductor vendors can verify whether their microcontroller boards can run Amazon FreeRTOS and be authenticated by and interoperate with AWS IoT services.
Q. Where do I get AWS IoT Device Tester for Amazon FreeRTOS?
You can get AWS IoT Device Tester for Amazon FreeRTOS here.
Q. Is AWS IoT Device Tester for Amazon FreeRTOS required for qualification and listing in the AWS Partner Device Catalog?
Yes, you can learn more about how to get listed here.
Q. What does AWS IoT Device Tester for Amazon FreeRTOS test?
AWS IoT Device Tester for Amazon FreeRTOS tests that the combination of Amazon FreeRTOS libraries, FreeRTOS kernel, and microcontroller board’s device drivers are compatible and can interoperate with AWS IoT services. AWS IoT Device Tester confirms the porting layer interfaces (implemented by semiconductor vendors) for Amazon FreeRTOS libraries function correctly on top of the device drivers. Also, AWS IoT Device Tester runs end to end tests to confirm the microcontroller board can authenticate and interoperate with AWS IoT services.
Q. How do I get technical support for AWS IoT Device Tester for Amazon FreeRTOS?
Use any of the following channels to get support:
Q. How can I get my microcontroller-based hardware platform listed in the AWS Partner Device Catalog?
The AWS Device Qualification Program defines the process to get your microcontroller listed on AWS Partner Device Catalog. The high level overview is as follows: First, you must pass the AWS IoT Device Tester for AWS Amazon FreeRTOS tests. Next, log into the AWS Partner Network Portal and upload the AWS IoT Device Tester for Amazon FreeRTOS report. Provide reference to your source code for ported Amazon FreeRTOS interfaces to make it available to OEMs. Once the ported code and report are verified by AWS and other device related artifacts (such as device image, data sheet, etc.) have been submitted, the device is listed in the AWS Partner Device Catalog.
Q. In which regions is AWS IoT Device Tester for Amazon FreeRTOS available?
AWS IoT Device Tester for Amazon FreeRTOS is available in all the regions where Amazon FreeRTOS is supported.
Q. How much does AWS IoT Device Tester for Amazon FreeRTOS cost?
AWS IoT Device Tester for Amazon FreeRTOS is free to use. However, you will be responsible for any costs associated with AWS usage as part of qualification tests. A single run of the AWS IoT Device Tester tests involve 200 connections and 2000 messages exchanged with AWS IoT Core. For example, it would cost less than a cent for a single run of the AWS IoT Device Tester using us-east region. Please refer to AWS IoT Core pricing for associated costs.
Amazon FreeRTOS and AWS IoT Greengrass
Q. What is the difference between AWS IoT Greengrass and Amazon FreeRTOS?
AWS IoT Greengrass is software that lets you run local compute, messaging, data caching, sync, and ML inference capabilities for connected devices in a secure way. With AWS IoT Greengrass, connected devices can run AWS Lambda functions, keep device data in sync, and communicate with other devices securely – even when not connected to the Internet. Using AWS Lambda, AWS IoT Greengrass ensures your IoT devices can respond quickly to local events, use Lambda functions running on AWS IoT Greengrass Core to interact with local resources, operate with intermittent connections, stay updated with over the air updates, and minimize the cost of transmitting IoT data to the cloud.
Amazon FreeRTOS is an operating system for microcontrollers that operates on the edge and does not generally support chipsets that could run AWS IoT Greengrass. These microcontroller devices are found on a variety of IoT endpoints such as fitness trackers, pacemakers, electricity meters, automotive transmissions, and sensor networks. Amazon FreeRTOS devices cannot run AWS IoT Greengrass Core but can trigger the execution of Lambda functions on an AWS IoT Greengrass Core device.
The hardware requirements and operating systems are different on both devices.
|Amazon FreeRTOS||AWS IoT Greengrass|
|Software||Operating system, runs on a microcontroller||Runtime for Linux devices and SDK for AWS IoT Greengrass-aware devices|
|Hardware Requirements||>64KB RAM||>128MB of RAM|
|Category||Embedded systems, IoT endpoints||Edge devices, local gateways|
|Use Cases||Microcontroller-based devices||Industrial automation systems, wireless routers, smartphones|
Q. Does Amazon FreeRTOS require the use of AWS IoT Greengrass?
Amazon FreeRTOS does not require the use of AWS IoT Greengrass. Amazon FreeRTOS runs on IoT endpoints and is often responsible for the ‘sensing’ and ‘acting’ in an IoT topology. Amazon FreeRTOS devices can connect directly to the cloud or connect to AWS IoT Greengrass Core devices locally.
Q. How can I connect Amazon FreeRTOS devices to AWS IoT Greengrass Core devices?
The AWS IoT Greengrass discovery library is included in the Amazon FreeRTOS source code, enabling you to find and connect to an AWS IoT Greengrass Core device. For more information, refer to the Amazon FreeRTOS user guide.
Amazon FreeRTOS and Bluetooth Low Energy
Q. What is Bluetooth Low Energy (BLE) support in Amazon FreeRTOS?
BLE support in Amazon FreeRTOS offers a standardized API layer for developers to write BLE applications that are portable across Amazon FreeRTOS qualified boards. It includes companion Android and iOS SDKs that enable an Amazon FreeRTOS device to consume AWS IoT services using an Android or iOS device as proxy. You can use standard Generic Access Profile (GAP) and Generic Attributes (GATT) profiles to write BLE applications, and use custom profiles for MQTT over BLE, and Wi-Fi provisioning over BLE.
BLE support in Amazon FreeRTOS is currently beta.
Q. Why should I use Amazon FreeRTOS BLE?
If you are an embedded developer that needs to create a BLE application, connect your BLE devices to AWS IoT through an Android or iOS proxy or use AWS IoT features such as AWS IoT Device Shadows, and you will benefit from using BLE in Amazon FreeRTOS. The standardized BLE API for Amazon FreeRTOS allows you to code portable applications against Amazon FreeRTOS-qualified devices. If you decide to use a different microcontroller (e.g. for upgrading the product), you can use your existing BLE application code as a base for adding newer features. You can then concentrate on your application code and not worry about connectivity and security libraries underneath, which are not features that differentiate your product.
Q. Which boards are supported by BLE in Amazon FreeRTOS?
Click here for more information on supported hardware.
Q. How do I find the libraries I need?
You can download Amazon FreeRTOS source code from the Amazon FreeRTOS GitHub repository and the companion Android and iOS SDKs from GitHub. Amazon FreeRTOS source code as well as the mobile SDKs have demo examples to help you quickly get started.
Q. Does BLE support in Amazon FreeRTOS work only with AWS?
No. The Amazon FreeRTOS libraries for BLE are open source and under the MIT license so developers can modify according to their specific need.
Q. What BLE versions are supported?
Amazon FreeRTOS supports BLE versions 4.2 and above. BLE version 4.2 raises the security bar by adding support for BLE Secure Connections, an enhanced security feature introduced in BLE version 4.2 to authenticate a peer device and create an encrypted channel.
Q. Is Amazon FreeRTOS providing the BLE stack?
No. Amazon FreeRTOS is providing a standardized BLE API library that interfaces with a third-party (e.g., MCU vendor) BLE stack.
Q. What GATT services does Amazon FreeRTOS support for BLE enable?
BLE support in Amazon FreeRTOS enables developers to add any number of standard and custom GATT services, depending on the capabilities of the target hardware. Amazon FreeRTOS contains two customer profiles – 1) MQTT over BLE, to enable BLE devices to use AWS IoT services, and 2) Wi-Fi provisioning over BLE, to provision Wi-Fi credentials in an IoT device using BLE.
Amazon FreeRTOS and AWS IoT Device Management
Q. How do I update my devices with new firmware?
You can use the over-the-air (OTA) update feature of Amazon FreeRTOS. Within the AWS IoT Device Management console, all you need to do is provide a firmware image, select the devices to update, select a code signing method, and create the Amazon FreeRTOS OTA job update. For more information on the OTA update feature and code signing, refer to the Amazon FreeRTOS user guide.
Q. What is code signing?
Code signing enables developers to confirm the integrity and origin of firmware images scheduled for OTA deployment to Amazon FreeRTOS devices. The process confirms the integrity of firmware images using a cryptographic hash that validates that the code has not been altered or corrupted since it was signed. The process also uses public-key cryptography to sign these images with proof of origin that can be validated on the device. Using the integrated Amazon FreeRTOS OTA update device job within the AWS IoT Device Management console, developers can upload a new firmware image, sign that image, and deliver it to a group of devices in the field. Those devices will validate the signature upon download and only install trusted code. Customers can use IAM to provide fine-grained access controls to signing tools, so only designated developers can sign and schedule new firmware updates.
Q. Do I have to use code signing?
No, you can also use your own signing service and upload a signed image directly into Amazon S3. You will need to modify the Amazon FreeRTOS OTA agent to accept the signature format that you choose to use.
Q. What hardware supports OTA?
Click here for information on supported hardware.
Amazon FreeRTOS and AWS IoT Core
Q. What is Amazon FreeRTOS’s relevance in the context of AWS Cloud services?
Amazon FreeRTOS Security
Q. How does Amazon FreeRTOS secure data in transit?
Amazon FreeRTOS uses Transport Layer Security (TLS 1.2) for secure connections to the cloud. The TLS protocol ensures privacy and data integrity between two communicating applications. It ensures that an Amazon FreeRTOS device and the AWS IoT Core MQTT broker are mutually authenticated using X.509 certificates and that data is encrypted while it is in transit.
Q. How does Amazon FreeRTOS secure data within the device (at rest)?
Amazon FreeRTOS uses a standard application interface, called PKCS #11, for encryption, digital signatures, and cryptographic object management. Cryptographic objects are kept either in dedicated storage or in the flash memory of the main microcontroller if dedicated storage is not available. If your device requires data encryption at rest, we recommend that you use dedicated cryptographic hardware to protect your encryption keys. Use the PKCS #11 API to access keys and encrypt and decrypt application data.
Q. How can I stay informed of the latest security patches?
Q. Where can I report a security concern?
To report a security issue, please visit Vulnerability Reporting for AWS.
Q. How can I update my Amazon FreeRTOS devices with the latest security patches?
We recommend that you use the over-the-air (OTA) update feature of Amazon FreeRTOS to send security patches to your Amazon FreeRTOS devices. Within the AWS IoT Device Management console, you can provide a firmware image, select the devices to update, and create the Amazon FreeRTOS OTA job update. The code signing feature will verify the signed image on the device to ensure your device code is not compromised during deployment and updates. For more information on the OTA update feature, refer to the Amazon FreeRTOS user guide.