How to use AWS IoT Fleet provisioning on FreeRTOS "release-v10.3.1", I don't want to move to AWS-FreeRTOS

I am using non-aws based FreeRTOS “release-v10.3.1”. I want to use AWS IoT Fleet provisioning service in my current setup. How do I do it without moving to AWS-FreeRTOS.

There is a demo here: https://freertos.org/iot-fleet-provisioning/index.html - does that help?

where do I download the file “fleet_provisioning.c”. I don’t see the link to download this.
This file has the API defined to access aws and get the provisioning done?
Any demo to show how this api’s are called?

Here are couple of examples:

Thanks.

fleet_provisioning.c is in the project described on the page I linked to in my previous post - the download link is in the top right of each page on FreeRTOS.org. The project builds in the free version of Visual Studio.

Thanks all for your quick responses. I am using CY8CPROTO-063-BLE for my project, for which we planning for implement AWS Provisioning service.
Any
“Suggestions”
“Challenges” or
“Existing implementation”
for this module you want to bring to my notice?

are these libraries helpful in the case if I have a claim certificate and key already embedded in the device? which I can use to get permanent certificate later.

Yes - once all set up the first thing the demo does is use a claim certificate to connect.

is there any flow diagram(API call flow) for the working of any of these examples? which can help understand the example task?

Hello Venkii,

There’s a flow diagram for the Fleet Provisioning demo available here.

Additionally, regarding your implementation with a claim and key already embedded on the device, you may find value in the AWS documentation for provisioning devices with device certificates.

Am bit confused,

  1. github com/aws/aws-iot-device-sdk-embedded-C/tree/main/demos/fleet_provisioning/fleet_provisioning_with_csr

  2. github com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo

  3. freertos org/iot-fleet-provisioning/index.html?_ga=2.256441675.1579782731.1640539677-600199805.1640286189

  4. aws github io/amazon-freertos/202107.00/c-sdk/provisioning/provisioning_demo html

Are all these same?
or
They serve different purpose?
or
They are linked to each other?

aws github io/amazon-freertos/202107.00/c-sdk/provisioning/provisioning_demo html

This link has good flow diagram,
I can use this on my original FreeRTOS “release-v10.3.1”?
Where can I find these files to checkout?
This has complete end to end implementation example?

For the most part (other than legacy libraries) the libraries distributed with the FreeRTOS kernel are all “composable” in that they don’t have any dependencies other than on the standard C library. So the libraries are available by themselves, packaged as an SDK, and with FreeRTOS. So the libraries are the same - this FAQ provides more detail: https://freertos.org/faq-github-repository-structure-versioning.html#question1. You can see where the fleet provisioning library is brought into the FreeRTOS download as a git submodule here: https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Source/AWS

Where can I find these files to checkout?

The documentation page for the demo on the FreeRTOS.org site shows where to find the demo in the download received if you click the download button on the top right of the website. Alternatively just check out from Git - you will get the same files.

Okay. Thank you so much. You guys have been very patient in answering me. I really appreciate that.
Among all the links in this discussion, to use Fleet provisioning on a non aws based FreeRTOS which repo and demo and source code should I consider or start with?

Not sure if you said which hardware you are using - if there is already a demo for that hardware I would suggest using that, but it would come from the AWS repo. Otherwise the demo discussed above for Visual Studio is a hardware agnostic way of getting familiar with the code. It is in this directory of the download available from FreeRTOS.org https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo.

Am using “CY8CPROTO-063-BLE” Hardware module and it used FreeRTOS “release-v10.3.1” There is no AWS in it currently. Can you suggest the right one for this?
And how to port?

Briefly, and just for the connectivity part (rather than talking about secure storage of keys, etc.), I would do something along the following:

  1. Make sure you have TCP working, using whatever stack you intend using or whatever the vendor provides as an example.

  2. Create a transport interface for your chosen TCP/IP and TLS stacks, if one does not already exit.

  3. Add coreMQTT in MQTT and try connecting to a broker that doesn’t require TLS, such as Mosquitto. You can use this demo https://freertos.org/mqtt/basic-mqtt-example.html

  4. Once that is working, connect to a broker that required TLS, such as AWS IoT Core. You can use this demo as an example https://freertos.org/mqtt/mutual-authentication-mqtt-example.html

  5. When that is all working you know you have the AWS side and device side set up correctly, and you can proceed to add in the device provisioning library and follow the demo as per the discussion above - but on your real hardware.

Great…!! Thanks again.
Just to understand the link between lib and demo
The Demo in the link below
https // github com/aws/aws-iot-device-sdk-embedded-C/tree/main/demos/fleet_provisioning/fleet_provisioning_with_csr

Use the library in the below link?
https // github com/aws/Fleet-Provisioning-for-AWS-IoT-embedded-sdk

Is it that sort?

Yes, the demo in the AWS Git repo and FreeRTOS Git both use that library.

Thanks a lot Richard.
Can you also suggest me on what are would be required on the backend? to setup and to maintain the AWS Fleet Provisioning? Or any services in specific?