Skip to content

Change autoreconnect and persistent defaults to be disabled (BREAKING) #7303

Closed
@devyte

Description

@devyte

Basic Infos

  • This issue complies with the issue POLICY doc.
  • I have read the documentation at readthedocs and the issue is not addressed there.
  • I have tested that the issue is present in current master branch (aka latest git).
  • I have searched the issue tracker for a similar issue.
  • If there is a stack dump, I have decoded it.
  • I have filled out all fields below.

Platform

  • Hardware: All
  • Core Version: latest git

Settings in IDE

  • Module: all
  • Flash Mode: all
  • Flash Size: all

Problem Description

The SDK has a "feature" called persistence where the wifi credentials are "remembered" between connections. This is meant to ease setup, and reconnect faster on boot, but in practice the user sets up a connection with his own credentials.
There are reasons to use this feature, such as low power applications, but in the general use case there is a danger of switching between different wifi configs, such as with Multi, and every time a different connection is made, the new info is written to flash. It is quite easy for a new user to do the Wrong Thing and burn the flash sector due to this.
In addition, there is an autoreconnect feature that is related, which works under the hood. Given certain conditions, it will take a long time for the user to get a hint that the station has disconnected from the AP.

On the other hand, the typical use cases where these features would be most useful, such as low power applications, are generally advanced enough for the user to have Done His Homework about what they do, how they work, and what to do if something goes wrong.

This is proposal to change both defaults to disabled. The normal user should understand what is happening from looking at the code, and not have to guess about how some subsystem is trying to do things hidden away from view, especially when that logic is difficult to trace. If needed, both features can be enabled by calling the appropriate methods.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions