Esp32 Wifi Manager Versions Save

Captive Portal for ESP32 that can connect to a saved wireless network or start an access point where you can connect to existing wifis.

v3.3.1

3 years ago

v3.3.1 notes

v3.3.1 is a bug fix update to esp32-wifi-manager v3.3

Big fixes

  • First time run would lock the NVS #105

v3.3

3 years ago

v3.3 notes

v3.3 is a minor update to esp32-wifi-manager v3.x The main change is the addition of nvs_sync.h which provides mutex mechanism for accessing the NVS. esp32-wifi-manager accesses the NVS to load/save the current configuration but there is no guarantee that it conflicts with user code trying to access NVS at the same time. You can now call nvs_sync_lock / nvs_sync_unlock before calling nvs_open / nvs_close to make sure this concurrent access never happens.

New features

  • Added a thread synchronization API for non-volatile storage access (nvs_sync.h)
  • Added param for certain callback events
    • wifi_event_sta_scan_done_t for event WM_EVENT_SCAN_DONE
    • wifi_event_sta_disconnected_t for event EVENT_STA_DISCONNECTED
    • ip_event_got_ip_t for event WM_EVENT_STA_GOT_IP

v3.2

3 years ago

v3.2 notes

v3.2 is a minor update to esp32-wifi-manager v3.x It is now possible to relocate the wifi manager to a different URL. So far, esp32-wifi-manager was always opening at http://xxx.xxx.xxx.xxx/, and it is now possible to move it to an imaginary folder, such as http://xxx.xxx.xxx.xxx/wifimanager/ This will help a lot if you need to have the wifi manager out of the way of your main application. The README page has been updated to reflect this new functionality.

New features

  • Added WEBAPP_LOCATION in menu config to relocate the wifi manager to a different URL (#96)

Bugfixes

  • Added a hook to HTTP server for POST methods. It was missing. (#94)
  • Fixed an issue where setting an empty password for the soft AP would not create an open wifi (#46)
  • Fixed an issue when connection happens at the same time as a wifi scan (#71)

v3.1

3 years ago

v3.1 notes

If you are updating esp32-wifi-manager from a previous clone, please note that you should run a fullclean (i.e. run the command esp.py fullclean or delete your build folder) before compiling your project. If you don't, the linker will throw some errors related to http_server which no longer exists -- see below.

New features

  • HTTP server hook to add your own custom pages to the wifi manager http server.
  • Access point now automatically shuts down once a connection is established (by default: 60s)
  • Added a timer to retry connecting to a lost wifi (by default: 5s)
  • Added a max retry count before the access point is triggered (by default: 3 retries)

Changes

  • Before saving flash memory a comparison is now done with existing configuration to avoid overwriting the same information.
  • http_server.c/h has been renamed to http_app. http_server is already part of the native esp_http_server and this avoids a resolution conflict when including http_app.h.

Bugfixes

  • Memory allocation for callback function was incorrectly done (#88)
  • Fixed manual connection issue (#89)

v3.0

3 years ago

v3.0 notes

The software is now fully compatible with esp-idf 4.1+. The tradeoff is that support for esp8266 had to be dropped; and that esp32-wifi-manager will no longer compile on esp-idf 3.x due to breaking changes between these versions.

This is also the first release as an esp-idf component with cmake support, although the master tree has had these features for a while now.

New features

  • Event callbacks to communicate with the wifi manager

Changes

  • Removed tcpip_adapter dependencies. esp32-wifi-manager runs 100% on esp_netif! (#85)
  • http_server is now making use of the esp_http_server component instead of a custom implementation.
  • Removed jquery dependency on the web part

Bugfixes

  • Blank screen on iOS 13.4+ (#70)
  • sockaddr_in sa not used (#64)
  • Possible overflow when creating ip_info_json (#74)
  • Memory initialization related issues (#51)

v2.0

5 years ago

v2.0 notes

This version of the wifi manager is a complete re-write of the way events are handled, hence v2.0. v1.x used event groups exclusively which lead to a very hard to maintain architecture and I could not implement all the features I wanted without breaking code elsewhere.

This version 2.0 uses a queue and processes messages and events this way. It is without a doubt incredibly more versatile. As a results, a lot of the behaviour issues of the wifi manager simply solved themselves by the change of architecture.

New features

  • Access Point automatically shuts down when the ESP32 is connected to a wifi. (issue: #9)
  • DNS hijack automatically shuts down when the ESP32 is connected to a wifi.
  • Auto-retry when connection is lost. After X retries, the access point starts again. Default is 2 retries.

Changes

  • Access Point default IP set to 10.10.1.1 to lessen the chances it overlaps with your local LAN range (run "make menuconfig" to change it)
  • wifi scan is no longer blocking. It resolves then pushes back a "SCAN DONE" event. (issue: #40)
  • There is no longer tasks in the main code. Now you just need to make a call to "wifi_manager_start" and everything else is done for you!

Bugfixes

  • Saved wifi is no longer overwritten by itself when app starts.
  • Fixed issues where the HTTP server would not respond from its STA IP address. (issue: #36)

Miscellaneous

  • pdMS_TO_TICKS macro replaced the "/ portTICK_PERIOD_MS" calls as it is the proper code style to transform time into RTOS ticks.

v1.1rc

5 years ago

New feature

  • Captive Portal!

Bug fixes

  • Fixed a crash loop on reset if the esp32 is new

Changes

  • Access Point IP address is no longer hardcoded
  • A lot of printf replaced with native ESP logging functions

Notes

  • I am excited to release this version in a long while with support for captive portal. Now, as soon as you connect to your ESP, your device will ask you to sign (tested on both Android and iOS). This is done by DNS hijacking + 302 redirection. It was tough to implement and I had to study a lot on how this work. @craftmetrics, @zhouhan0126 and an amazing web resource (http://www.zytrax.com/books/dns/ch15) helped me through countless builds and tries. But it's there!
  • This is a prerelease because I am not happy how the DNS daemon is triggered. It should come up and goes down gracefully. For the time being, it's always on.

v1.0.1

6 years ago

Bug fixes

  • Increased task sizes to prevent crashing. (see notes)

Changes

  • Removed netconn_free manual call. (see notes)

Notes

  • I was not able to replicate a crash reported to me but increasing the task size by 1k fixed the issue. Most likely the task size was just enough and was crashing in a wifi-rich environment when performing a scan.
  • There was a memory leak in lwip esp-idf implementation that was fixed with issue 784: https://github.com/espressif/esp-idf/issues/784. In esp32-wifi-manager, I worked around the problem by calling netconn_free manually after a netconn_delete. As it is no longer necessary; I removed the call.

v1.0

6 years ago

First version!

Bug fixes

  • Fixed compatibility issue with the iPhone browser.

Note

The first version is finally here! I spent over 8h debugging issues with the iPhone browser. Weird behaviours like caching POST requests, dropping characters in headers or simply sending some requests at all... I had to completely rebuild the authentication process to a wifi because of this pile of crap. I almost certainly lost hair in the process. But hey! It works!

v1.0-rc2

6 years ago

Second release candidate!

Bug fixes

  • Fixed a nasty memory leak in lwip connection handlers. The free heap now never goes under ~210kB.
  • Proper JSON string escape in the IP info json.

Changes

  • Added reason codes for connection update to differentiate different types of disconnects (failed attempt, user disconnect, lost connection).
  • Included all images as inline base64 in the web app stylesheet.

Known issue

The app works flawlessly with PC and Android as far as I can tell, but there's an issue with the iPhone's webkit where sometimes the "connect" button doesn't want to work. Until it is fixed, I leave this release as a RC and not the first true 1.0 version.