← index #2620Issue #6747
Related · high · value 0.158
QUERY · ISSUE

RFC: offical API to save WiFi-connection parameter

openby puuuopened 2016-11-11updated 2024-07-19
rfc

After @MarkR42 explained that the automatic storing of the WiFi-connection parameter can wear-out the flash of the ESP8266 many discussions came up: #2510, #2547, #2564 and http://forum.micropython.org/viewtopic.php?f=16&t=2631

This explains the importance of this issue.

In principle, the feature of saving the connection parameter is due to the ESP8266 SDK and strictly speaking not compatible to the existing HW API (https://github.com/micropython/micropython/wiki/Hardware-API#the-wlan-class). But on the other hand it provides a nice user experience. Also @pfalcon explained that this is a common feature in smart phones, computers, … So we have to expect, that the ESP8266 will not be the only device that supports saving of WiFi-connection parameters.
But, this side effects can lead to permanent hardware damage. Thus, we need a way to at least deactivate this feature.

Therefore, we have to find an agreement about the method, default behaviour and API names. That is the reason for this issue.

There are already three different possible methods described:

a) #2510 additional parameter save_to_flash in wlan.connect()
b) https://github.com/micropython/micropython/pull/2510#issuecomment-255714114 additional function esp.persist_wlan(val) which allows the user to turn on/off the feature of saving WiFi settings to flash
c) #2564 additional function esp.save_config() to save configuration to flash on demand

As default behaviour we have the possibilities:

  • wlan.connect() and wlan.active() always save to flash. That will probably lead to permanent hardware damage and is not possible for devices that do not support the saving (e.g. the WiPy board).
  • wlan.connect() and wlan.active() don't always save to flash. This will break the user experience of the ESP8266 users.

What are your comments?

CANDIDATE · ISSUE

Wifi credentials are not store to flash

closedby ondratuopened 2021-01-01updated 2024-08-18

Hi,

this is important different wifi think between ESP8266 and ESP32. ESP8266 store wifi credentials by default with ESP API, but for ESP32 you need to call esp_wifi_set_storage with right value, end call esp_wifi_set_auto connect, which is not call in modnetwork.c en ESP32 port.

So, it will be fine, when this additional API for ESP32 will be wrapped to python library. Many flash area overwriting crash the flash, but without storing credentials to flash devices will be more vulnerable.

And mainly, this can be documented well in examples, because, code for ESP8266, which do auto-connect with stored credentials not work on ESP32!

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied