Blynk WiFiManager for ESP8266/ESP32 with Multi-WiFi and Multi-Blynk

Works perfectly … Great work on the lib!

We are currently converting our project from wired to wifi functionality and further link it to blynk (and removing node-red dependency).
FYI: We noticed your lib has a EEPROM.h lib dependency what can be a challenge for projects using the much more functional EEPROMex.h lib as if you include both libs in your project there will be a conflict because the simple one defines “static EEPROMClass EEPROM” and the extended lib defines “external EEPROMClassEx EEPROM” so the compiler sees 2 classes with the same EEPROM name.
(Ugly) solution is to rename one of them in the lib and code will compile fine with both libraries used.


The easiest solution, if you insist of using the EEPROMex library, is to change the file

Esp8266_AT_WM_Lite.h of Esp8266_AT_WM_Lite library , assuming you’re using Mega, from

#include <EEPROM.h>


#include <EEPROMex.h>

Just recheck / retest the code to see if changing the lib breaking anything.

Also remember that some EEPROM locations have been reserved for the WM + dynamicParams purposes and use different location to store your params.

I also suggest to move this discussion to the correct topic from now on

BTW, I’ll add in next release v1.0.3

  1. Option to use EEPROMex library, by just specifying from sketch,
  2. Add support to nRF52-based boards, , such as Adafruit’s NRF52840_FEATHER, NRF52832_FEATHER, NRF52840_FEATHER_SENSE, NRF52840_ITSYBITSY, NRF52840_CIRCUITPLAY, NRF52840_CLUE, NRF52840_METRO, NRF52840_PCA10056, PARTICLE_XENON, NINA_B302_ublox, etc. The Credentials and Dynamic Parameters’ data will be stored in LittleFS/InternalFS .

Anything you’d like to suggest to add into that new release?

Sounds great. Think your library is already very complete. We noted using some of the setConfigPortal call some weird behavior on iPhones with WEP2 and security but we are still debugging to see what is causing it, apart from that great library.

Update June 25th 2020

Releases v1.0.16

  1. Fix bug and logic of USE_DEFAULT_CONFIG_DATA.
  2. Auto format SPIFFS / LittleFS for first time usage.

Dear @khoih. Congratulations on your work, it has helped me a lot. I would like to know how to prevent a failure / oscillation in the power supply causing the DoubleResetDetector to be involuntarily triggered? I have faced this problem and I do not know how to solve it. My devices after 2 consecutive power outages they enter the Config Portal, that is, the devices understand this power failure as triggering the DoubleResetDetector and do not leave the Config Portal until the information is filled, this is not good because the devices will be disconnected from the server while in the Config Portal in an undesired manner. is this possible to fix? thanks

It’s nice to know the library can somehow help you.

The power failure issue can be hopefully solved by

  1. Using battery
  2. Using big electrolytic capacitor
  3. Using UPS (Uninterrupted Power Supply)
  4. You can also try to shorten the DRD time (default at 10s to something like 1s). But not sure can totally solve your power failure issue.
// Number of seconds after reset during which a
// subsequent reset will be considered a double reset.
#define DRD_TIMEOUT 10
  1. You can also use the SW, instead of DRD, to force the Config Portal.
    Compare the examples ConfigOnSwitch and ConfigOnDoubleReset and see how to change.

Good Luck,

It sounds like there should be a timeout added to the double reset config so that it will not hangup for too long.

The DRD is a different and independent library and you certainly can configure its features to whatever way you’d like.

For example, in the ConfigOnDoubleReset example, the time spent in Config Portal (CP) is forced to be indefinite by disable time-out, as this is considered as intentional to do some change to the Credentials. So the CP will stay until valid / new data are entered and saved.

Have a look at ConfigOnDoubleReset.ino Line 666-673 for a way to change the time-out

1. No timeout

  if (drd->detectDoubleReset())
    // DRD, disable timeout.

    Serial.println("Open Config Portal without Timeout: Double Reset Detected");
    initialConfig = true;

2. Timeout

If you don’t like to disable time-out, just specify the time-out different from 0.

  if (drd->detectDoubleReset())
    // DRD, using timeout 180s

    Serial.println("Open Config Portal with 180s Timeout: Double Reset Detected");
    initialConfig = true;

Looks like a reasonable way to handle the problem.

Updated Jan 1st 2021

Major Releases v1.1.0

  1. Add support to LittleFS for ESP32 using LittleFS_esp32 Library
  2. Add support to MultiDetectDetector. MultiDetectDetector feature to force Config Portal when configurable multi-reset is detected within predetermined time.
  3. Clean-up all compiler warnings possible.
  4. Add Table of Contents
  5. Add Version String
  6. Add MRD-related examples.

Bạn là người Việt Nam phải không?