An open API service indexing awesome lists of open source software.

https://github.com/freertos/iot-reference-nxp-rt1060

Reference IoT project which integrates NXP IMXRT 1060 platform with FreeRTOS LTS libraries
https://github.com/freertos/iot-reference-nxp-rt1060

Last synced: about 1 year ago
JSON representation

Reference IoT project which integrates NXP IMXRT 1060 platform with FreeRTOS LTS libraries

Awesome Lists containing this project

README

          

## IoT Reference Integration on NXP i.MX RT1060 MCU and EdgeLock® SE050 Secure Element
### Introduction
The project demonstrates how to integrate FreeRTOS modular software libraries with the hardware capabilities of
the [i.MX RT1060 Arm® Cortex®-M7 MCU](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1060-crossover-mcu-with-arm-cortex-m7-core:i.MX-RT1060)
and the enhanced security features of the [Edgelock® SE050 secure element](https://www.nxp.com/products/security-and-authentication/authentication/edgelock-se050-plug-trust-secure-element-family-enhanced-iot-security-with-maximum-flexibility:SE050).
The project contains reference implementations that show different IoT application tasks that run concurrently and securely communicate with AWS IoT.
The implementation also shows how to perform over-the-air firmware updates that leverage the AWS IoT OTA service and secure bootloader capabilities from MCUBoot.
The reference implementation runs on the [i.MX RT1060-EVKB evaluation board](https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1060-evaluation-kit:MIMXRT1060-EVK)
and [OM-SE050ARD secure element kit](https://www.nxp.com/products/security-and-authentication/authentication/edgelock-se050-development-kit:OM-SE050X).
For more details on the feature, see the [NXP Featured IoT Reference Integration](https://www.freertos.org/NXP-RT1060-SE050) page on [FreeRTOS.org](https://www.freertos.org/).
### Folder Structure
The folder inside the repository is organized as follows:
```
|— core/
|- Middleware/
|- NXP/
|- AWS/
|- FreeRTOS/
|- third_party libs
|- examples/
|- evkbmimxrt1060/
|- common/
|- projects/
|- evkbmimxrt1060/
|- README.md
|- LICENSE
```
The root of the repository contains the following top level folders:
* `core` contains submodules to NXP's MCUX SDK repository. The repository hosts the MCUXpresso software development package which contains ARM CMSIS core files,
board support packages for devices, shared peripheral drivers and components.
* `Middleware` hosts NXP's middleware SDKs such as the Plug and Trust Middleware stack, the FreeRTOS Kernel and modular software libraries, AWS connectivity
libraries, and other third party libraries required for the project.
* `examples` hosts the IoT reference sample for the board. The common demo tasks, such as the MQTT Agent and OTA Agent, which are shared across different board
examples are placed under the `common` folder. The `evkbmimxrt1060` folder contains the demo samples for the board.
* `projects` contains MCUXpresso IDE projects for the examples provided. Currently all projects are tested on the MCUXpresso IDE on a Windows platform.
### Demos
Source code in this repository includes the following demo projects:
* **bootloader**: an [MCUBoot](https://www.mcuboot.com/) bootloader ported to the i.MX RT1060 MCU. This is the second stage bootloader which performs application image signature verification
and encryption.
The key pair for MCUBoot signature verification is generated at the time the bootloader is prepared. The MCUBoot private key is stored securely on the customer's
premises and the public key for verification is embedded into the bootloader. The first stage bootloader uses an immutable ROM bootloader which is shipped with the i.MX RT1060 MCU.
All other application projects are configured to flash the demo to an address known to the bootloader and require the bootloader to be pre-programmed prior to
loading the application project.
All demos include an over-the-air firmware update running in a background task, concurrently with other demo tasks, using the coreMQTT and coreMQTT-Agent libraries
to manage the thread safety for the MQTT connection. See [coreMQTT](https://www.freertos.org/mqtt/index.html), [AWS IoT Over-the-air](https://www.freertos.org/ota/index.html) (OTA), [coreMQTT-Agent](https://www.freertos.org/mqtt-agent/index.html) for details.
* **aws_iot_pubsub**: a simple publish subscribe example. By default, there're 2 tasks concurrently sending incremental counters to cloud and listening to the data from cloud. These tasks are running concurrently with the over-the-air firmware update background task.
* **aws_iot_shadow**: a simple shadow demo that updates the device’s powerOn state and runs concurrently with the over-the-air firmware update background task. See [AWS IoT Device Shadow](https://www.freertos.org/iot-device-shadow/index.html) for details.
* **aws_iot_defender**: a basic device defender demo that sends basic metrics about device health and runs concurrently with the over-the-air firmware update task. See [AWS IoT Device Defender](https://www.freertos.org/iot-device-defender/index.html) for details.
* **aws_iot_qual_test**: a test project set up executing tests against FreeRTOS integration and AWS IoT Core interoperability and best practices. See [FreeRTOS Libraries Integration Tests](https://github.com/FreeRTOS/Labs-FreeRTOS-Libraries-Integration-Tests) github repository, and [Device Advisor](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor.html) for details.
### Cloning the Repository
To clone using HTTPS:
```
git clone https://github.com/FreeRTOS/iot-reference-nxp-rt1060.git --recurse-submodules
```
Using SSH:
```
git clone git@github.com:FreeRTOS/iot-reference-nxp-rt1060.git --recurse-submodules
```
If you have downloaded the repo without using the `--recurse-submodules` argument, you should run:
```
git submodule update --init --recursive
```
### Running the demos
To get started running demos, see the [Getting Started Guide](GSG.md).
### Contributing
See [CONTRIBUTING](https://github.com/FreeRTOS/lab-iot-reference-nxp-rt1060/blob/main/CONTRIBUTING.md) for more information.
### License
The example source code under `./examples/` and the libraries under `./Middleware/AWS` and `./Middleware/FreeRTOS` are licensed under the MIT-0 License. See
the `LICENSE` file. For all other source code licenses, including `core/` and `Middleware/NXP` folders, see the source header documentation.