Amazon RTOS for Espressif boards

bhaktid wrote on October 07, 2019:

Hello,

I am trying to use ESP-IDF with Amazon RTOS on ESP32-EVB board. AWS have list of boards of Amazon FreeRTOS qualified devices, including ESP32-DevKitC and ESP-WROVER-KIT of espressif.
(https://docs.aws.amazon.com/freertos/la … dware.html).
Does it support only two development boards of espressif?
Can I use Amazon RTOS with other boards of ESP32 with same controller as qualified boards. (for example ESP32-EVB by olimex)

Thanks and kind Regards,
Bhakti.

gordon-AWS wrote on October 07, 2019:

Hello,

The ESP32-DevKitC and ESP-WROVER-KIT are qualified boards, meaning that Amazon FreeRTOS has been tested on these boards and that we have verified these boards are capable of running the Amazon FreeRTOS libraries.

Other boards may work, however we cannot guarantee that everything will work correctly.

bhaktid wrote on October 14, 2019:

Thanks for reply.
Also I am looking for Web server demo code in Amazon freertos demo’s but, there is no http server library available.
Does amazon freertos supports http server library? can I use it for web server applications?

Thanks and kind regards,
Bhakti.

Edited by: bhaktid on Oct 14, 2019 6:02 AM

SarenaAtAws wrote on October 14, 2019:

Hello bhaktid,

Amazon FreeRTOS does not support a device acting as an HTTP Server. For security reasons we do not accept incoming connections.

Amazon FreeRTOS DOES support a device acting as an HTTP Client. The demos for this code can be found: demos\https

Please see the documentation for more information: https://docs.aws.amazon.com/freertos/latest/lib-ref/https/index.html

Thanks!

bhaktid wrote on October 15, 2019:

Okay.Thank you.

bhaktid wrote on October 22, 2019:

As I am new to this platform, I was reading about Web server and found an a related API on espressif’s document. How espressif’s feertos (ESP-IDF) supports web server? Whats the difference between Amazon freertos and espressif’s freertos? can you please help me understanding this?

Thanks and Kind regards.
Bhakti.

DanN-AWS wrote on October 22, 2019:

Thank you for your question. Espressif’s IDF is distributed and supported by Espressif. Their IDF uses a custom version of the FreeRTOS kernel that they support. Espressif’s IDF uses lwIP as their default networking stack. In addition to lwIP other networking features are supported by Espressif including an http server.

AWS distributes and supports Amazon FreeRTOS. Although similar to the ESP IDF, there are notable differences. Amazon FreeRTOS includes the officially supported FreeRTOS kernel and supports the FreeRTOS + TCP network stack on Espressif based reference hardware. The Amazon FreeRTOS distribution does not include an http server at this time. This is one of several features where customers have expressed interest that we are considering.

If your reason to seek to include an Http server in Amazon FreeRTOS is to support WiFi provisioning, please see details on our BLE based approach that might suit your needs here: https://docs.aws.amazon.com/freertos/latest/userguide/ble-demo.html#ble-demo-wifi

Finally I want to highlight the close working relationship between us and our Espressif colleagues. Although we offer two slightly different distributions, both based on FreeRTOS and supporting the same HW, we work closely with each other to the benefit of our mutual customers. Many comments we see on our forums have helped to identify issues that affect our customers using Espressif hardware and we are committed to ongoing improvement.

bhaktid wrote on October 23, 2019:

Thank you so much for detailed information. It has really helped me.

vlad-hid wrote on November 14, 2019:

Hi DanN-AWS,
Could you please elaborate a bit more about different kernels for Amazon FreeRTOS and Espressif?
Basically I would say that after making several different things with ESP32 I’m a bit confused with one thing:

  1. we have Amazon FreeRTOS https://github.com/aws/amazon-freertos
  2. we have AWS IoT SDK https://github.com/aws/aws-iot-device-sdk-embedded-C
  3. there is an AWS IoT SDK in Espressif repository - https://github.com/espressif/esp-aws-iot
    As you mentioned - you work closely with Espressif. So, may you comment about difference between 2nd and 3rd? My understanding that 3rd is just a copy of some old 2nd but adopted for ESP-IDF makefiles. I.e. it’s easier to intergrate it into ESP-IDF based project but it may be not actual. And if you need a fresh one version of SDK you should use 2nd but take care of it’s integration into your project. Is it right understanding?
    But anyway for both, 2&3, you need to have a base ESP-IDF SDK. From another side 1st item doesn’t require any additional SDK and may be used as is, right? It has everything in it and may be used by it’s own, rigth?

If this understanding is right - may you highlight pros and cons of 2 approaches: a) to use Amazon FreeRTOS and build on top of it VS b) use platform SDK and supplement it with AWS IoT SDK.

DanN-AWS wrote on November 15, 2019:

#2 is our public Github repository for the embedded C SDK. You will notice that there is a v4-beta branch. This is our latest stable release that we recommend for our customers. It is still beta and we are actively planning to push that release to GA but have not done so yet. You will notice that the source code for our libraries in the v4-beta release of our C SDK is in very close alignment with our latest release of Amazon FreeRTOS 201910.00.
#3 is Espressif’s copy of our latest GA release of the embedded C SDK V3.0.1). We are in close touch with Espressif and will work with them to align on our newer C SDK baseline as soon as it reaches its GA

It is certainly possible, and we would recommend at this point, that customers migrate to our v4-beta version of the CSDK on ESP32. There are many advantages to the newer C SDK that can be reviewed in detail in the public Changelog. Your understanding about “taking care” of integration into your project is correct. There are API differences that will affect your application so migration is not trivial.

You are correct, that you need a base ESP-IDF in order to integrate our C SDK onto ESP32 HW. As should be clear, our C SDK is designed to be portable to other silicon and to other RTOSs.

Using ESP-IDF + AWS IoT Embedded CSDK, and using Amazon FreeRTOS for ESP32 hardware are both valid solutions and we work with mutliple customers using both solutions. ESP-IDF is only tested on ESP32 hardware and has additional functionality not supported in Amazon FreeRTOS as I have described in this thread. Amazon FreeRTOS is tested on silicon from multiple silicon vendors, undergoes a qualification process with Espressif and other silicon partners, and is supported directly by AWS. We leave it to customers to make the choice of platform that best suits their requirements.