ESP32 - Smartconfig does not link

HenryMcDonald wrote on May 25, 2018:

Is the esp_smartconfig feature supported, or planned on being supported? The source code for esp_smartconfig_xxx() is in the repo, but it fails at linking. I get quite a few "undefined reference to lwip_<something> functions.

Is there another recommended way to configure WiFi devices? Hard coding the network will not work as we want to ship these devices to many different customers. This smartconfig option looked great and seems to work well if I compile it from the official esp-idf.

Where can I view a list of features from esp-idf that are and are not supported/working? So far, OTA and smartconfig aren’t working. So we can’t fix bugs in the field and we can’t configure wifi in the field. This is starting to make a:FreeRTOS / ESP32 purely a hobbiest solution for the time being.

Perhaps I’m being a bit harsh calling this a hobbiest unit, but I saw on another post where someone asked for a roadmap. The response was that they wouldn’t share it on the forum, so he asked how to get it. There was no response. I understand that official support of the ESP32 was rolled out only two weeks ago, but WiFi configuration and firmware updates are an essential part of the equation.

I just want to know if I can expect this to work in the near future or if I need to figure out how to do it myself. The last thing I want to do is spend two weeks developing and testing these features only to have them available in the next official release.

HenryMcDonald wrote on May 25, 2018:

Looking in aws_wifi.c it appears that AP mode isn’t support either. This means that I can’t (easily) host a simple web page for someone to connect to the device and enter WiFi credentials.

Bluetooth isn’t supported so I can’t do this over bluetooth.

Just how is it expected than an end user use this thing? (not meant to be a sarcastic question, I’m just looking for some direction)

SarenaAtAws wrote on May 30, 2018:

Hello HenryMcdonald,

Amazon FreeRTOS’s port of ESP32-WROVER-KIT and ESP DevKitC do not currently support lightweight IP, so we are not currently supporting Espressif’s +smartconfig+. We do appreciate the feedback and will use it in our future planning.

Currently the way to configure the Wi-Fi is by updating aws_clientcredentials.h either manually or by running our getting started script under +demos/common/tools/aws_config_quick_start+.

I understand where you are coming from, regarding being production ready, and we are taking all feedback into strong consideration.

One solution could be to use the USB input at the start of main to input Wi-Fi credentials.

WIFI_ConfigureAP() is not current implemented, but it can be ported for your needs. Using WIFI_ConnectAP() as an example, you can configure the Wi-Fi device for SoftAP mode with the following ESP-IDF functions:

  • esp_wifi_set_mode(WIFI_MODE_AP)
  • esp_wifi_set_config(ESP_IF_WIFI_AP, &my_softap_configs)
  • esp_wifi_start()

I hope this helps.

Thanks!
Sarena

HenryMcDonald wrote on May 30, 2018:

That was my first solution I presented to management. It would be easy to implement and wouldn’t rely on embedded web pages or iOS/Android applications. Write a simple PC application that looks for the device to be plugged in over USB, then inject credentials. You could configure a hundred devices (which customers may actually have that many at a single installation site) in minutes that way. That was shot down because the hardware adds cost to the board and this board needs to cost next to nothing. Hence, we’re going with an ESP32 and a toolchain and we have no experience with either. It also needs to be done in a few weeks.

Fast, cheap, and good. I’m guessing you know that saying. They want all three, as usual, and I’m the one that is getting kicked in the seat of my pants.

SmartConfig looks like a great alternative and costs nothing in terms of added BOM cost, but it doesn’t work with a:FreeRTOS at the moment.

What I mainly want to avoid is doing a lot of work only to find lwip / SmartConfig supported 3 weeks from now. Is there a road map that can be shared so that we can know what to expect in the near future? If it can’t be shared in the forum, is there another way to gain visibility of that road map?

Edit: +I’ve decided to abandon a:FreeRTOS for now as it just doesn’t seem like it is ready for a production quality unit. In the current state, a:FreeRTOS was easy to get IoT communication with AWS going, but it leaves out OTA update capability, Bluetooth, and WiFi SmartConfig. That said, I’m not opposed to returning to a:FreeRTOS if and when this support is added (espeically if the OTA is compatible!)+

Edited by: HenryMcDonald on May 30, 2018 2:17 PM

Gaurav-Aggarwal-AWS wrote on June 06, 2018:

Amazon FreeRTOS does not support lwIP as of now. Thank you for the feedback. This is important as it helps us in prioritizing the work.

We will keep you updated if anything changes.

Thanks.

msn444 wrote on June 21, 2018:

I’d like to support Henry’s assertion that AWS FreeRTOS/ESP32 is effectively useless without support for SoftAP, Smartconfig, and/or Bluetooth. IoT devices generally don’t get plugged into computers for wifi configuration. Nobody is going to accept that as a solution.

I could accept it if the AFR/ESP32 were in a pre-production state, with those features definitively on the timeline for near-term release. But there is no timeline, and with the non-commital response I’ll also have to abandon AFR/ESP32.

Mike

mradula-aws wrote on July 03, 2018:

We have taken into account your feedback. We will be update this thread when we have the support for SmartConfig and/or Bluetooth for Esp32.