Announcing FreeRTOS Kernel Version 10
The number of connected IoT devices worldwide is in the billions and growing rapidly. Many of these edge devices – from fitness trackers to sensors to washing machines to automotive transmissions – use low-cost, low-powered microcontrollers with extremely limited memory and compute capability. For some IoT use cases, very predictable response times can also be critical (think: automotive). A standard operating system won’t work here: you need a real-time operating system (RTOS) that works in very constrained systems.
FreeRTOS was created in 2003 by Richard Barry. It rapidly became popular, consistently ranking very high in EETimes surveys on embedded operating systems. After 15 years of maintaining this critical piece of software infrastructure with very limited human resources, last year Richard joined Amazon.
Today we are releasing the core open source code as FreeRTOS kernel version 10, now under the MIT license (instead of its previous modified GPLv2 license). Simplified licensing has long been requested by the FreeRTOS community. The specific choice of the MIT license was based on the needs of the embedded systems community: the MIT license is commonly used in open hardware projects, and is generally whitelisted for enterprise use.
We have also announced Amazon FreeRTOS, which is based on the FreeRTOS kernel and adds important support for AWS and IoT use cases, such as software libraries that make it easy to securely connect devices to the cloud and on a local network. We have open-sourced these libraries.
We talked with Richard about all this, and more.
Q&A with Richard Barry
Why did you join Amazon?
FreeRTOS has been a runaway success, reaching one download every 260 seconds. It is difficult for a small organization to scale to match that kind of growth, and we were finding it harder and harder to keep up with demand for support and new features. While we had been in conversations with a number of suitors that offered to help FreeRTOS scale, Amazon were the first that were fully aligned with our own customer-obsessed values. Importantly, AWS’ vision for the project allowed us to continue to fulfill the obligation we have to our open source community to keep FreeRTOS both cross-platform and free for commercial use.
Why has FreeRTOS been the leading RTOS for so long?
Of course, FreeRTOS has had some good fortune over the last 15 years, including that its launch coincided with the start of the rapid move to small 32-bit microcontroller architectures, but its sustained leadership position is no accident. That comes from our systematic approach to removing reasons why an organization might not want to use a free product.
Many companies were originally not sure whether open source software would meet their quality and documentation standards. They wanted to have clarity about the IP ownership, as well as broad hardware support. To answer these concerns, we tested FreeRTOS aggressively, and documented its MISRA coding standard compliance. We ensured that the FreeRTOS API was fully documented online, in the code, and in a reference manual. FreeRTOS came with lots of examples, training, and even a book that started from first principles. We also put a lot of effort into strict IP control. Finally, FreeRTOS has over 40 supported architectures.
What are the benefits to the FreeRTOS community of being under the aegis of AWS?
I have just listed the ways in which FreeRTOS systematically removed the reasons that companies might be uncomfortable using free software. But we still needed help to scale. AWS brings greater stability and longevity (FreeRTOS has been around for 15 years already). In addition, it brings a larger development and support team, accelerated development, a large portfolio, and the ability to innovate very quickly on behalf of its broad customer base.
Amazon FreeRTOS and the FreeRTOS kernel are part of a bigger initiative at AWS to speed innovation and improve business and operational efficiencies, not only in the cloud, but all the way out to IoT endpoints. Ongoing support for the FreeRTOS community is also part of AWS’ commitment to open source.
What are the benefits of Amazon FreeRTOS?
In addition to continuing to develop and maintain the FreeRTOS kernel, at AWS we are extending it to offer a cloud-native IoT operating system, Amazon FreeRTOS, which helps overcome common difficulties faced by microcontroller developers, such as security, connectivity, and making it easy to manage devices through their lifecycle. You can find out more at aws.amazon.com/freertos/
Is the FreeRTOS community happy about this?
I hope so! I’m excited to be able to repay partners who put their trust in us with the stability, longevity, innovation, and expanded roadmap that AWS brings them.
Does this mean I will have to be an AWS customer to use FreeRTOS?
No. FreeRTOS remains open source, with no commitments. In fact, AWS has simplified everybody’s use of FreeRTOS by changing the license to MIT. FreeRTOS users are not required to be AWS customers in any way.
Who is a typical FreeRTOS user?
FreeRTOS is used by microcontroller developers to build embedded products for every industry and market segment. Over the years I’ve been aware of FreeRTOS being used in applications as diverse as toy trains and aircraft navigation systems, and just about everything in between.
What are the new features in version 10 of the FreeRTOS kernel?
FreeRTOS kernel v10 includes two major new features: stream buffers and message buffers. These are task (thread)-to-task and interrupt-to-task communication primitives, but, unlike other FreeRTOS communications primitives, they are optimized for single reader/single writer scenarios, such as passing data from an interrupt service routine to a task, or (increasingly important these days) from one microcontroller core to another. Stream buffers pass a continuous stream of bytes, whereas message buffers pass variable-sized but discrete messages. AWS added these new capabilities in direct response to requests I have received from users.
Where can I obtain FreeRTOS?
From today, you can use the Amazon FreeRTOS console on AWS to easily create device-specific downloads directly from AWS. Amazon FreeRTOS, which includes the growing library of additional capabilities already mentioned, is available from Github as well. This is in addition to the existing channels. The FreeRTOS.org website remains the home of the FreeRTOS kernel, and the MIT license terms make it even easier for partners to distribute the code.
How can I/my organization contribute to FreeRTOS?
We welcome any interaction with our users and partners that helps develop and expand FreeRTOS, but, at the same time, we need to ensure that we maintain the industry’s confidence that our product is free from IP infringement. We have a hardware qualification program to maintain high quality as well as control over the IP that goes into the software. However, we encourage developers to create ports for their own use cases and republish those for the community.