The Internet of Things on AWS – Official Blog

Announcing HAQM FreeRTOS 201906.00 Major

HAQM FreeRTOS 201906.00 Major is now generally available. HAQM FreeRTOS extends the FreeRTOS kernel with individual software libraries, making it faster and easier to securely connect microcontroller-based IoT devices to the cloud.

This major release provides significant improvements to several underlying libraries, as well as an update to overall HAQM FreeRTOS versioning:

  • General availability of Bluetooth Low Energy support
  • MQTT library v2.0.0
  • HAQM FreeRTOS folder structure changes
  • CMake
  • Improvements to other existing libraries
  • Additional features
  • Update to release numbering

General availability of Bluetooth Low Energy support

We moved HAQM FreeRTOS Bluetooth Low Energy libraries and companion Android/iOS SDKs out of beta. They are now part of the HAQM FreeRTOS GitHub master repository.

The general availability of Bluetooth Low Energy support in HAQM FreeRTOS includes the following updates:

  • MQTT library: These updates provide increased flexibility and functionality, including the use of MQTT over both Bluetooth Low Energy and TCP/IP. For more information, see the MQTT Library v2.0.0 section later in this post.
  • Over-the-air (OTA) updates: Use the existing OTA update functionality in AWS IoT Device Management to monitor, manage, and update firmware on your Bluetooth Low Energy devices through an authenticated Android/iOS proxy device.
  • AWS IoT Device Tester integration: Run AWS IoT Device Tester to verify your HAQM FreeRTOS ports that support Bluetooth Low Energy. We also added separate tests to verify Wi-Fi provisioning over Bluetooth Low Energy.
  • HAQM FreeRTOS console: You can select the Bluetooth Low Energy library and download the board-specific source code from the HAQM FreeRTOS console.

MQTT library v2.0.0

We made the MQTT library transport independent using an abstraction layer. We also enabled all HAQM FreeRTOS features (such as OTA, AWS IoT Device Defender, and Device Shadows) to work on both Bluetooth Low Energy and TCP/IP. Updates include:

  • The ability to open one socket and re-use it across all HAQM FreeRTOS libraries.
  • MQTT features such as Last Will and Testament, QoS1 with fully implemented retry logic, and persistent sessions.
  • Support for a non-blocking programming model in the MQTT library with a per-operation user-provided callback.
  • The ability to allocate memory dynamically or from statically allocated memory pools.

HAQM FreeRTOS folder structure changes

We updated the folder structure of the HAQM FreeRTOS source code repository in GitHub. It now separates AWS partner-supplied code (such as drivers, ports, and tools) and core HAQM FreeRTOS components (such as the kernel, libraries, and tests) into separate directories. This creates a cleaner separation between AWS and non-AWS code to simplify distribution and maintenance.

If you migrate from a previous version, you must update your build scripts based on these changes. For more information, Porting HAQM FreeRTOS to Your Device contains additional details on this process.

CMake

HAQM FreeRTOS now supports a CMake-based build system. We provide CMake files for core HAQM FreeRTOS components (such as the kernel and libraries). This supports a standard build environment for supported boards.

HAQM FreeRTOS still supports IDE projects.

Improvements to other existing libraries

We modified the Device Shadows v2.0.0 and AWS IoT Device Defender v2.0.0 libraries to use the updated MQTT programming model.

Additional features

We introduce support for task pools in this release. Task pools enable you to configure your application’s tasks and optimize the trade-off between performance and the memory footprint.

Update to release numbering

With this release, we replaced semantic versioning with date-based versioning, so HAQM FreeRTOS 1.4.8 updates to HAQM FreeRTOS 201906.00.

This date-based versioning follows the format YYYYMM.NN:

  • Y represents the year (2019).
  • M represents the month (June).
  • N represents the release order within the designated month (00 being the first release in June).

For example, a possible second release in June 2019 would be 201906.01.

Each HAQM FreeRTOS library still retains its semantic versioning. In semantic versioning, the version number itself (X.Y.Z) indicates if the release is a major, minor, or point release.This can create situations where semantic versioning indicates a major release based on changes that don’t affect an individual application. By moving semantic versioning down to the individual library, individual customers can assess the scope and impact of a new release on their application. This release includes major version changes to multiple libraries including MQTT and Device Shadows.

How this release affects you

This update may affect your existing applications and device qualifications.

To allow your build scripts to use the updated libraries, you must update any existing applications based on previous versions of HAQM FreeRTOS. You can choose to use the new APIs for the updated libraries listed earlier. Or, you can use the included compatibility layer for applications that cannot be updated to use the modified APIs. You can find detailed information about migrating your application to the new release here.

All previously qualified reference boards remain qualified with this release. New qualifications also qualify on the new baseline. For more information, see AWS Device Qualification Program.

Conclusion

This post reviewed the updated features and release numbering standard for HAQM FreeRTOS 201906.00. You can learn more about using HAQM FreeRTOS Bluetooth Low Energy here and performing OTA updates using Bluetooth Low Energy here.