ESP8266 WiFi Connection manager with fallback web configuration portal

Overview

WiFiManager

DEVELOPMENT Version

ESP8266 WiFi Connection manager with fallback web configuration portal

⚠️ This Documentation is out of date, see notes below

Build Status

arduino-library-badge

Build with PlatformIO

ESP8266 ESP32

Join the chat at https://gitter.im/tablatronix/WiFiManager

The configuration portal is of the captive variety, so on various devices it will present the configuration dialogue as soon as you connect to the created access point.

First attempt at a library. Lots more changes and fixes to do. Contributions are welcome.

This works with the ESP8266 Arduino platform

https://github.com/esp8266/Arduino

This works with the ESP32 Arduino platform

https://github.com/espressif/arduino-esp32

Known Issues


Contents

How It Works

  • When your ESP starts up, it sets it up in Station mode and tries to connect to a previously saved Access Point
  • if this is unsuccessful (or no previous network saved) it moves the ESP into Access Point mode and spins up a DNS and WebServer (default ip 192.168.4.1)
  • using any wifi enabled device with a browser (computer, phone, tablet) connect to the newly created Access Point
  • because of the Captive Portal and the DNS server you will either get a 'Join to network' type of popup or get any domain you try to access redirected to the configuration portal
  • choose one of the access points scanned, enter password, click save
  • ESP will try to connect. If successful, it relinquishes control back to your app. If not, reconnect to AP and reconfigure.
  • There are options to change this behavior or manually start the configportal and webportal independantly as well as run them in non blocking mode.

How It Looks

ESP8266 WiFi Captive Portal Homepage ESP8266 WiFi Captive Portal Configuration

Wishlist

  • remove dependency on EEPROM library
  • move HTML Strings to PROGMEM
  • cleanup and streamline code (although this is ongoing)
  • if timeout is set, extend it when a page is fetched in AP mode
  • add ability to configure more parameters than ssid/password
  • maybe allow setting ip of ESP after reboot
  • add to Arduino Library Manager
  • add to PlatformIO
  • add multiple sets of network credentials
  • allow users to customize CSS
  • rewrite documentation for simplicity, based on scenarios/goals

Development

  • ESP32 support
  • rely on the SDK's built in auto connect more than forcing a connect
  • add non blocking mode
  • easy customization of strings
  • hostname support
  • fix various bugs and workarounds for esp SDK issues
  • additional info page items
  • last status display / faiilure reason
  • customizeable menu
  • seperate custom params page
  • ondemand webportal
  • complete refactor of code to segment functions
  • wiif scan icons or percentage display
  • invert class for dark mode
  • more template tokens
  • progmem for all strings
  • new callbacks
  • new callouts / filters
  • shared web server instance
  • latest esp idf/sdk support
  • wm is now non persistent, will not erase or change stored esp config on esp8266
  • tons of debugging output / levels
  • disable captiveportal
  • preload wiifscans, faster page loads
  • softap stability fixes when sta is not connected

Quick Start

Installing

You can either install through the Arduino Library Manager or checkout the latest changes or a release from github

Install through Library Manager

Currently version 0.8+ works with release 2.4.0 or newer of the ESP8266 core for Arduino

  • in Arduino IDE got to Sketch/Include Library/Manage Libraries Manage Libraries

  • search for WiFiManager WiFiManager package

  • click Install and start using it

Checkout from github

Github version works with release 2.4.0 or newer of the ESP8266 core for Arduino

  • Checkout library to your Arduino libraries folder

Using

  • Include in your sketch
#include <WiFiManager.h>          //https://github.com/tzapu/WiFiManager WiFi Configuration Magic
  • Initialize library, in your setup function add, NOTEif you are using non blocking you will make sure you create this in global scope or handle appropriatly , it will not work if in setup and using non blocking mode.
WiFiManager wifiManager;
  • Also in the setup function add
//first parameter is name of access point, second is the password
wifiManager.autoConnect("AP-NAME", "AP-PASSWORD");

if you just want an unsecured access point

wifiManager.autoConnect("AP-NAME");

or if you want to use and auto generated name from 'ESP' and the esp's Chip ID use

wifiManager.autoConnect();

After you write your sketch and start the ESP, it will try to connect to WiFi. If it fails it starts in Access Point mode. While in AP mode, connect to it then open a browser to the gateway IP, default 192.168.4.1, configure wifi, save and it should reboot and connect.

Also see examples.

Install Using PlatformIO

PlatformIO is an emerging ecosystem for IoT development, and is an alternative to using the Arduino IDE. Install WiFiManager using the platformio library manager in your editor, or using the PlatformIO Core CLI, or by adding it to your platformio.ini as shown below (recommended approach).

The simplest way is to open the platformio.ini file at the root of your project, and WifiManager to the common top-level env lib_deps key like so:

[env]
lib_deps =
	WiFiManager
[env]
lib_deps =
	https://github.com/tzapu/WiFiManager.git

Documentation

Password protect the configuration Access Point

You can and should password protect the configuration access point. Simply add the password as a second parameter to autoConnect. A short password seems to have unpredictable results so use one that's around 8 characters or more in length. The guidelines are that a wifi password must consist of 8 to 63 ASCII-encoded characters in the range of 32 to 126 (decimal)

wifiManager.autoConnect("AutoConnectAP", "password")

Callbacks

Enter Config mode

Use this if you need to do something when your device enters configuration mode on failed WiFi connection attempt. Before autoConnect()

wifiManager.setAPCallback(configModeCallback);

configModeCallback declaration and example

getConfigPortalSSID()); } ">
void configModeCallback (WiFiManager *myWiFiManager) {
  Serial.println("Entered config mode");
  Serial.println(WiFi.softAPIP());

  Serial.println(myWiFiManager->getConfigPortalSSID());
}
Save settings

This gets called when custom parameters have been set AND a connection has been established. Use it to set a flag, so when all the configuration finishes, you can save the extra parameters somewhere.

IF YOU NEED TO SAVE PARAMETERS EVEN ON WIFI FAIL OR EMPTY, you must set setBreakAfterConfig to true, or else saveConfigCallback will not be called.

//if this is set, it will exit after config, even if connection is unsuccessful.
    void          setBreakAfterConfig(boolean shouldBreak);

See AutoConnectWithFSParameters Example.

wifiManager.setSaveConfigCallback(saveConfigCallback);

saveConfigCallback declaration and example

//flag for saving data
bool shouldSaveConfig = false;

//callback notifying us of the need to save config
void saveConfigCallback () {
  Serial.println("Should save config");
  shouldSaveConfig = true;
}

Configuration Portal Timeout

If you need to set a timeout so the ESP doesn't hang waiting to be configured, for instance after a power failure, you can add

wifiManager.setConfigPortalTimeout(180);

which will wait 3 minutes (180 seconds). When the time passes, the autoConnect function will return, no matter the outcome. Check for connection and if it's still not established do whatever is needed (on some modules I restart them to retry, on others I enter deep sleep)

On Demand Configuration Portal

If you would rather start the configuration portal on demand rather than automatically on a failed connection attempt, then this is for you.

Instead of calling autoConnect() which does all the connecting and failover configuration portal setup for you, you need to use startConfigPortal(). Do not use BOTH.

Example usage

void loop() {
  // is configuration portal requested?
  if ( digitalRead(TRIGGER_PIN) == LOW ) {
    WiFiManager wifiManager;
    wifiManager.startConfigPortal("OnDemandAP");
    Serial.println("connected...yeey :)");
  }
}

See example for a more complex version. OnDemandConfigPortal

Exiting from the Configuration Portal

Normally, once entered, the configuration portal will continue to loop until WiFi credentials have been successfully entered or a timeout is reached. If you'd prefer to exit without joining a WiFi network, say becuase you're going to put the ESP into AP mode, then press the "Exit" button on the main webpage. If started via autoConnect or startConfigPortal then it will return false (portalAbortResult)

Custom Parameters

You can use WiFiManager to collect more parameters than just SSID and password. This could be helpful for configuring stuff like MQTT host and port, blynk or emoncms tokens, just to name a few. You are responsible for saving and loading these custom values. The library just collects and displays the data for you as a convenience. Usage scenario would be:

  • load values from somewhere (EEPROM/FS) or generate some defaults
  • add the custom parameters to WiFiManager using
 // id/name, placeholder/prompt, default, length
 WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 40);
 wifiManager.addParameter(&custom_mqtt_server);
  • if connection to AP fails, configuration portal starts and you can set /change the values (or use on demand configuration portal)
  • once configuration is done and connection is established save config callback is called
  • once WiFiManager returns control to your application, read and save the new values using the WiFiManagerParameter object.
 mqtt_server = custom_mqtt_server.getValue();

This feature is a lot more involved than all the others, so here are some examples to fully show how it is done. You should also take a look at adding custom HTML to your form.

  • Save and load custom parameters to file system in json form AutoConnectWithFSParameters
  • Save and load custom parameters to EEPROM (not done yet)

Custom IP Configuration

You can set a custom IP for both AP (access point, config mode) and STA (station mode, client mode, normal project state)

Custom Access Point IP Configuration

This will set your captive portal to a specific IP should you need/want such a feature. Add the following snippet before autoConnect()

//set custom ip for portal
wifiManager.setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0));
Custom Station (client) Static IP Configuration

This will make use the specified IP configuration instead of using DHCP in station mode.

wifiManager.setSTAStaticIPConfig(IPAddress(192,168,0,99), IPAddress(192,168,0,1), IPAddress(255,255,255,0)); // optional DNS 4th argument

There are a couple of examples in the examples folder that show you how to set a static IP and even how to configure it through the web configuration portal.

NOTE: You should fill DNS server if you have HTTP requests with hostnames or syncronize time (NTP). It's the same as gateway ip or a popular (Google DNS: 8.8.8.8).

Custom HTML, CSS, Javascript

There are various ways in which you can inject custom HTML, CSS or Javascript into the configuration portal. The options are:

  • inject custom head element You can use this to any html bit to the head of the configuration portal. If you add a "); ">
    wifiManager.setCustomHeadElement("");
  • inject a custom bit of html in the configuration/param form
This is just a text paragraph

"); wifiManager.addParameter(&custom_text); ">
WiFiManagerParameter custom_text("

This is just a text paragraph

"
); wifiManager.addParameter(&custom_text);
  • inject a custom bit of html in a configuration form element Just add the bit you want added as the last parameter to the custom parameter constructor.
WiFiManagerParameter custom_mqtt_server("server", "mqtt server", "iot.eclipse", 40, " readonly");
wifiManager.addParameter(&custom_mqtt_server);

Theming

You can customize certain elements of the default template with some builtin classes

wifiManager.setClass("invert"); // dark theme
wifiManager.setScanDispPerc(true); // display percentages instead of graphs for RSSI

There are additional classes in the css you can use in your custom html , see the example template.

Filter Networks

You can filter networks based on signal quality and show/hide duplicate networks.

  • If you would like to filter low signal quality networks you can tell WiFiManager to not show networks below an arbitrary quality %;
wifiManager.setMinimumSignalQuality(10);

will not show networks under 10% signal quality. If you omit the parameter it defaults to 8%;

  • You can also remove or show duplicate networks (default is remove). Use this function to show (or hide) all networks.
wifiManager.setRemoveDuplicateAPs(false);

Debug

Debug is enabled by default on Serial in non-stable releases. To disable add before autoConnect/startConfigPortal

wifiManager.setDebugOutput(false);

You can pass in a custom stream via constructor

WiFiManager wifiManager(Serial1);

You can customize the debug level by changing _debugLevel in source options are:

  • DEBUG_ERROR
  • DEBUG_NOTIFY
  • DEBUG_VERBOSE
  • DEBUG_DEV
  • DEBUG_MAX

Troubleshooting

If you get compilation errors, more often than not, you may need to install a newer version of the ESP8266 core for Arduino.

Changes added on 0.8 should make the latest trunk work without compilation errors. Tested down to ESP8266 core 2.0.0. Please update to version 0.8

I am trying to keep releases working with release versions of the core, so they can be installed through boards manager, but if you checkout the latest version directly from github, sometimes, the library will only work if you update the ESP8266 core to the latest version because I am using some newly added function.

If you connect to the created configuration Access Point but the configuration portal does not show up, just open a browser and type in the IP of the web portal, by default 192.168.4.1.

If trying to connect ends up in an endless loop, try to add setConnectTimeout(60) before autoConnect();. The parameter is timeout to try connecting in seconds.

I get stuck in ap mode when the power goes out or modem resets, try a setConfigPortalTimeout(seconds). This will cause the configportal to close after no activity, and you can reboot or attempt reconnection in your code.

Releases

1.0.1

Development Overview

Added Public Methods

setConfigPortalBlocking

setShowStaticFields

setCaptivePortalEnable

setRestorePersistent

setCaptivePortalClientCheck

setWebPortalClientCheck

startWebPortal

stopWebPortal

process

disconnect

erase

debugSoftAPConfig

debugPlatformInfo

setScanDispPerc

setHostname

setMenu(menu_page_t[])

setWiFiAutoReconnect

setSTAStaticIPConfig(..,dns)

setShowDnsFields

getLastConxResult

getWLStatusString

getModeString

getWiFiIsSaved

setShowInfoErase

setEnableConfigPortal

setCountry

setClass

htmleEtities

WiFiManagerParameter

WiFiManagerParameter(id,label)

WiFiManagerParameter.setValue(value,length)

getParameters

getParametersCount

Constructors

WiFiManager(Stream& consolePort)

define flags

❗️ Defines cannot be set in user sketches #define WM_MDNS // use MDNS

#define WM_FIXERASECONFIG // use erase flash fix, esp8266 2.4.0

#define WM_ERASE_NVS // esp32 erase(true) will erase NVS

#include // esp32 info page will show last reset reasons if this file is included

Changes Overview

  • ESP32 support ( fairly stable )
  • complete refactor of strings strings_en.h
  • adds new tokens for wifiscan, and some classes (left , invert icons, MSG color)
  • adds status callout panel default, primary, special colors
  • adds tons of info on info page, and erase capability
  • adds signal icons, replaces percentage ( has hover titles )
  • adds labels to all inputs (replaces placeholders)
  • all html ( and eventually all strings except debug) moved to strings_en.h
  • added additional debugging, compressed debug lines, debuglevels
  • persistent disabled, and restored via de/con-stuctor (uses setRestorePersistent)
  • should retain all user modes including AP, should not overwrite or persist user modes or configs,even STA (storeSTAmode) (BUGGY)
  • ⚠️ return values may have changed depending on portal abort, or timeout ( portalTimeoutResult,portalAbortResult)
  • params memory is auto allocated by increment of WIFI_MANAGER_MAX_PARAMS(5) when exceeded, user no longer needs to specify this at all.
  • addparameter now returns bool, and it returns false if param ID is not alphanum [0-9,A-Z,a-z,_]
  • param field ids allow {I} token to use param_n instead of string in case someones wants to change this due to i18n or character issues
  • provides #DEFINE FIXERASECONFIG to help deal with https://github.com/esp8266/Arduino/pull/3635
  • failure reason reporting on portal
  • set esp8266 sta hostname, esp32 sta+ap hostname ( DHCP client id)
  • pass in debug stream in constructor WiFiManager(Stream& consolePort)
  • you can force ip fields off with showxfields(false) if you set _disableIpFields=true
  • param menu/page (setup) added to separate params from wifi page, handled automatically by setMenu
  • set custom root menu
  • disable configportal on autoconnect
  • wm parameters init is now protected, allowing child classes, example included
  • wifiscans are precached and async for faster page loads, refresh forces rescan
  • adds esp32 gettemperature ( currently commented out, useful for relative measurement only )

0.12

  • removed 204 header response
  • fixed incompatibility with other libs using isnan and other std:: functions without namespace
0.11
  • a lot more reliable reconnecting to networks
  • custom html in custom parameters (for read only params)
  • custom html in custom parameter form (like labels)
  • custom head element (like custom css)
  • sort networks based on signal quality
  • remove duplicate networks
0.10
  • some css changes
  • bug fixes and speed improvements
  • added an alternative to waitForConnectResult() for debugging
  • changed setTimeout(seconds) to setConfigPortalTimeout(seconds)

Contributions and thanks

The support and help I got from the community has been nothing short of phenomenal. I can't thank you guys enough. This is my first real attept in developing open source stuff and I must say, now I understand why people are so dedicated to it, it is because of all the wonderful people involved.

THANK YOU

The esp8266 and esp32 arduino and idf maintainers!

Shawn A aka tablatronix

liebman

Evgeny Dontsov

Chris Marrin

bbx10

kentaylor

Maximiliano Duarte

alltheblinkythings

Niklas Wall

Jakub Piasecki

Peter Allan

John Little

markaswift

franklinvv

Alberto Ricci Bitti

SebiPanther

jonathanendersby

walthercarsten

And countless others

Inspiration

Comments
  • wifi doesn't connect after exiting the captive portal with ESP core 2.4.2

    wifi doesn't connect after exiting the captive portal with ESP core 2.4.2

    This might be for "upstream", but between ESP8266 core 2.4.1 and 2.4.2, connectWifi comes back with WL_IDLE_STATUS (0) and doesn't connect to the newly set wifi credentials.

    With 2.4.1, the portal closes itself correctly and the device connects correctly to the new credentials.

    With 2.4.2, the same code leaves the portal window open and gives WL_IDLE_STATUS and doesn't connect.

    This is with a Wemos R2 D1 mini device.

    bug Hotfix In Progress 
    opened by andysc 89
  • Non blocking AP mode

    Non blocking AP mode

    I have a project that requires the ESP8266 to startup in access point mode, but the remaining code is blocked till the access point is configured. Is there any way to continue with the code, and still have access point available in the background?

    enhancement 
    opened by git-tiger 80
  • Errors

    Errors

    Error when try to run

    WARNING: Category '' in library UIPEthernet is not valid. Setting to 'Uncategorized'

    /Users/jblanco-us/Documents/Arduino/libraries/WiFiManager-master/WiFiManager.cpp: In member

    function 'void WiFiManager::handleWifiSave()': /Users/jblanco-us/Documents/Arduino/libraries/WiFiManager-master/WiFiManager.cpp:462:20: error: 'class IPAddress' has no member named 'fromString' _sta_static_ip.fromString(server->arg("ip")); ^ /Users/jblanco-us/Documents/Arduino/libraries/WiFiManager-master/WiFiManager.cpp:467:20: error: 'class IPAddress' has no member named 'fromString' _sta_static_gw.fromString(server->arg("gw")); ^ /Users/jblanco-us/Documents/Arduino/libraries/WiFiManager-master/WiFiManager.cpp:472:20: error: 'class IPAddress' has no member named 'fromString' _sta_static_sn.fromString(server->arg("sn")); ^ exit status 1 Error compiling.

    opened by yomasa 63
  • Failed to connect when we have multiple access point with same name

    Failed to connect when we have multiple access point with same name

    I tried this WiFiManager it is working awesome. When I have more than one ap with same name(I'm using repeater, to extend WiFi Range) it is not connecting. It looks like we are not using bssid to connect a specific access point.

    I believe when we connect with bssid, this problem will be resolved.

    Thank you!

    opened by jkandasa 59
  • setHostname does not set the host name

    setHostname does not set the host name

    Basic Infos

    Hardware

    WiFimanager Branch/Release: Master v2.0.11-beta ESP32 dev module

    Description

    setHostname does not set the host name.

    Settings in IDE

    Arduino IDE 1.8.16 ESP32 Core 1.0.6 WiFimanager Branch/Release: Master v2.0.11-beta

    Sketch

    #include <WiFiManager.h>
    
    void setup() {
      Serial.begin(115200);
      
       WiFi.mode(WIFI_STA);
       
      WiFiManager wm;
      std::vector<const char *> menu = {"wifi", "exit"};
      wm.setMenu(menu);
      wm.setHostname("MyTestWiFi");
      wm.setWiFiAutoReconnect(true);
      wm.setConfigPortalTimeout(120);
      wm.startConfigPortal();
    
      if(!wm.autoConnect("MyTestWiFi")) {
        Serial.println("WIFImanager: failed to connect :(");
      } else {
        Serial.println("WIFImanager: connected to " + wm.getWiFiSSID());
      }
    }
    
    void loop() {
    
    }
    

    Debug Messages

    *wm:[2] Starting Config Portal 
    *wm:[2] Disabling STA 
    *wm:[2] Enabling AP 
    *wm:[1] StartAP with SSID:  ESP32_1BA4AE30
    *wm:[2] AP has anonymous access! 
    *wm:[1] AP IP address: 192.168.4.1
    *wm:[2] setting softAP Hostname: MyTestWiFi
    *wm:[1] Starting Web Portal 
    *wm:[2] HTTP server started 
    *wm:[2] Config Portal Running, blocking, waiting for clients... 
    *wm:[2] Portal Timeout In 120 seconds
    *wm:[2] Portal Timeout In 97 seconds
    *wm:[2] Portal Timeout In 67 seconds
    [...]
    

    The host name is ESP32_1BA4AE30.

    bug 
    opened by DonatelloX 55
  • Is it possible to reconfigure after autoconnect?

    Is it possible to reconfigure after autoconnect?

    This is such a great library. I cannot thank you enough for the time it has saved.

    Can I ask how to force a reconfigure after using autoconnect? I read in your docs:

    Instead of calling autoConnect() which does all the connecting and failover configuration portal setup for you, you need to use startConfigPortal(). Do not use BOTH.

    I would like to give users the opportunity to reconfigure some of the parameters (including the additional ones I have created), even if the unit has connected to wifi. I'd like to look for a continuous button press for a few seconds to trigger the config mode.

    opened by smadds 47
  • ESPhttpUpdate seems to corrupt WiFiManager after a OTA http update

    ESPhttpUpdate seems to corrupt WiFiManager after a OTA http update

    Basic Infos

    Hardware

    WiFimanager Branch/Release:

    • [X] Master
    • [ ] Development

    Esp8266/Esp32:

    • [X] ESP8266
    • [ ] ESP32

    Hardware: ESP-12e, esp01, esp25

    • [ ] ESP01
    • [X] ESP12 E/F/S (nodemcu, wemos, feather)
    • [ ] Other

    ESP Core Version: 2.4.0, staging

    • [X] 2.3.0
    • [ ] 2.4.0
    • [ ] staging (master/dev)

    Description

    I recently added OTA updates using HTTP to a program I've been testing for the past month with no issues. Something strange happens tho after an OTA update, the BIN downloads and install correctly, the ESP restarts, the WiFi credentials are wiped so the ESP goes into configuration mode, but as soon it gets there it reboots constantly with this error stack:

    Exception (28): epc1=0x40240429 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000038 depc=0x00000000

    stack>>>

    ctx: cont sp: 3fff0270 end: 3fff0630 offset: 01a0 3fff0410: 3fff0b34 3fff1914 3fff1914 4022cc8b
    3fff0420: 4024403d 00000002 3ffee618 00000000
    3fff0430: 40244055 00000002 00000002 00000002
    3fff0440: 402441b9 00000002 00000002 4024416d
    3fff0450: 40243fee 00000001 00000000 3fff0b34
    3fff0460: 40244292 00000002 00000002 00000001
    3fff0470: 40204027 402044cc 3ffeeee4 3fff04f0
    3fff0480: 40215618 3ffeeee4 3fff0540 3ffe86c2
    3fff0490: 00000000 3ffeeee4 3fff0540 40209c62
    3fff04a0: 3ffef1e8 000001a3 000001a3 401009e8
    3fff04b0: 00000000 3ffeeee4 3fff04fc 40100e2c
    3fff04c0: 00000000 3ffeeee4 3fff04f0 4020fbd0
    3fff04d0: 3ffe8778 00000000 3fff0540 3ffe86c2
    3fff04e0: 00000000 3ffeeee4 3fff0540 40209e6d
    3fff04f0: 00000000 00000000 00000000 00000000
    3fff0500: 00000000 00000000 00000028 40100c38
    3fff0510: 00000001 3ffe8778 3fff0540 40208350
    3fff0520: 00000001 00000000 3ffeef80 00000001
    3fff0530: 3ffeed00 3ffeee00 3ffeef80 40202cbd
    3fff0540: 00000000 00000000 3ffe8c24 00000000
    3fff0550: 3fff1414 0000000f 00000000 3fff142c
    3fff0560: 0000000f 00000000 00000000 00000000
    3fff0570: 00000000 40215eb0 00000000 40215eb0
    3fff0580: 00000000 40215eb0 00000000 40215eb0
    3fff0590: 00000000 40215eb0 00000000 40215eb0
    3fff05a0: 00000000 00000000 ffffffff fe000001
    3fff05b0: 3ffe8778 00000000 fe00ef35 40202e3c
    3fff05c0: 00000000 0000000a 3fff1444 feefeffe
    3fff05d0: feefeffe feefeffe feefeffe feefeffe
    3fff05e0: feefeffe feefeffe feefeffe feefeffe
    3fff05f0: 0000000a feefeffe feefeffe feefeffe
    3fff0600: feefeffe feefeffe feefeffe 3ffef098
    3fff0610: 3fffdad0 00000000 3ffef064 402109f4
    3fff0620: feefeffe feefeffe 3ffe863c 40100e89
    <<<stack<<<

    ets Jan 8 2013,rst cause:2, boot mode:(3,7)

    What its weird to me is that the downloaded BIN and the running BIN are exactly the same, so when the installed one runs it does not crash, ever, but when you download the copy from my http local server and install it something in memory gets corrupted that affects WiFiManager.

    Does anyone experience something similar? If not, I'm not very good at debugging using the stack, maybe you can point me in the right direction.

    BTW, the code I'm using to update my program is the basic one:

     t_httpUpdate_return ret = ESPhttpUpdate.update("192.168.1.53", 80, "/", firmwareVersion);
      
      switch(ret) {
          case HTTP_UPDATE_FAILED:
              Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());
              break;
          case HTTP_UPDATE_NO_UPDATES:
              Serial.println("[update] Update no Update.");
              break;
          case HTTP_UPDATE_OK:
              Serial.println("[update] Update ok.");
              break;
      }
    

    Im using a ESP12F, 4Mb no SPFSS.

    Somebody had what it seems a similar issue https://github.com/tzapu/WiFiManager/issues/236 but is not very clear.

    bug Upstream/Dependancy 
    opened by domingosl 41
  • Exception 3  WiFiManager::getParamOut() when ConfigPortal started

    Exception 3 WiFiManager::getParamOut() when ConfigPortal started

    Basic Infos

    I try the last ESP8266 SDK with development branch and it's falls when ConfigPortal started. How I can debug this problem? It's important to use latest SDK =(. Thanks!

    Hardware

    WiFimanager Branch/Release:

    • [ ] Master
    • [x] Development

    Esp8266/Esp32:

    • [x] ESP8266
    • [ ] ESP32

    Hardware: ESP-12e, esp01, esp25

    • [ ] ESP01
    • [x] nodemcu
    • [ ] Other

    ESP Core Version: 2.4.0, staging

    • [ ] 2.3.0
    • [ ] 2.4.0
    • [ ] staging (master/dev) don't know

    Description

    I try development branch with 2.5.2 SDK and it fails. I'm confuzed, cause it works with 2.0.4 version... 2.1.0, 2.2.0 also raise exceptions.

    I use ~30 params in config.

    *WM: [3] re-allocating params bytes: 100
    *WM: [2] Added Parameter:
    *WM: [2] Added Parameter:
    *WM: [2] Added Parameter:
    *WM: [2] Added Parameter: ch0
    *WM: [2] Added Parameter:
    *WM: [3] Updated _max_params: 30
    *WM: [3] re-allocating params bytes: 120
    *WM: [2] Added Parameter:
    000:00:00:00:319  NOTICE    (AP) : start config portal
    *WM: [3] WIFI station disconnect 
    *WM: [3] WiFi station enable 
    *WM: [2] Disabling STA 
    *WM: [2] Enabling AP 
    *WM: [1] StartAP with SSID:  Waterius_0.9.0
    *WM: [2] AP has anonymous access! 
    *WM: [1] AP IP address: 192.168.4.1
    *WM: [3] setupConfigPortal 
    *WM: [1] Starting Web Portal 
    *WM: [3] dns server started with ip:  192.168.4.1
    *WM: [2] HTTP server started 
    *WM: [2] WiFi Scan ASYNC started 
    *WM: [2] Config Portal Running, blocking, waiting for clients... 
    *WM: [2] WiFi Scan ASYNC completed in 2192 ms
    *WM: [2] WiFi Scan ASYNC found: 9
    *WM: [2] <- HTTP Root 
    *WM: [3] -> 192.168.4.1 
    *WM: [2] Scan is cached 3409 ms ago
    *WM: [2] <- HTTP Wifi 
    *WM: [2] Scan is cached 4739 ms ago
    *WM: [1] 9 networks found
    *WM: [2] AP:  -48 doddd
    *WM: [2] AP:  -53 dodd
    *WM: [2] AP:  -64 mgts201
    *WM: [2] AP:  -64 MGTS_GPON_58DA
    *WM: [2] AP:  -70 romper-stomper
    *WM: [2] AP:  -73 Onlime_205
    *WM: [2] AP:  -74 MGTS_GPON_1235
    *WM: [2] AP:  -85 MGTS_GPON_233
    *WM: [2] AP:  -86 Beeline_2G_F24152
    

    Versions

    *WM: [1] getCoreVersion():          2_5_2
    *WM: [1] system_get_sdk_version():  2.2.1(cfd48f3)
    *WM: [1] system_get_boot_version(): 31
    *WM: [1] getFreeHeap():             36344
    

    Exception decode

    Decoding 48 results
    0x40269e21: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x4026cf5f: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x4020dec2: WiFiManager::getParamOut() at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/WString.h line 117 (discriminator 2)
    :  (inlined by) WiFiManager::getParamOut() at /Users/dontsov/Documents/Arduino/libraries/WiFiManager-waterius_release_090/WiFiManager.cpp line 1285 (discriminator 2)
    0x40217c6c: String::changeBuffer(unsigned int) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/WString.cpp line 179
    0x4020daf7: WiFiManager::getStaticOut() at /Users/dontsov/Documents/Arduino/libraries/WiFiManager-waterius_release_090/WiFiManager.cpp line 1222
    0x4026cf14: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x4026cf55: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40218359: String::concat(__FlashStringHelper const*) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/WString.h line 268
    :  (inlined by) String::concat(__FlashStringHelper const*) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/WString.cpp line 396
    0x4026b4c6: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40213344: FunctionRequestHandler::handle(ESP8266WebServer&, HTTPMethod, String) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/ESP8266WebServer/src/detail/RequestHandlersImpl.h line 37
    0x4026b4c6: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40210067: WiFiManager::handleWifi(bool) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/WString.h line 117
    :  (inlined by) WiFiManager::handleWifi(bool) at /Users/dontsov/Documents/Arduino/libraries/WiFiManager-waterius_release_090/WiFiManager.cpp line 973
    0x4021cc74: std::_Function_handler    (WiFiManager*, bool)> >::_M_invoke(std::_Any_data const&) at /Users/dontsov/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/xtensa-lx106-elf/include/c++/4.8.2/functional line 2073
    0x40212748: FunctionRequestHandler::canHandle(HTTPMethod, String) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/ESP8266WebServer/src/detail/RequestHandlersImpl.h line 20
    0x401000a9: std::function ::operator()() const at /Users/dontsov/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/xtensa-lx106-elf/include/c++/4.8.2/functional line 2465
    0x4021337a: FunctionRequestHandler::handle(ESP8266WebServer&, HTTPMethod, String) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/ESP8266WebServer/src/detail/RequestHandlersImpl.h line 44
    0x40217f40: String::String(String const&) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/WString.cpp line 41
    0x40213405: ESP8266WebServer::_handleRequest() at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp line 599
    0x4021361c: ESP8266WebServer::handleClient() at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp line 308
    0x4021c50b: WiFiUDP::parsePacket() at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/ESP8266WiFi/src/WiFiUdp.cpp line 199
    0x4021503c: DNSServer::processNextRequest() at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/DNSServer/src/DNSServer.cpp line 166
    0x40211d15: WiFiManager::processConfigPortal() at /Users/dontsov/Documents/Arduino/libraries/WiFiManager-waterius_release_090/WiFiManager.cpp line 610
    0x40210ce8: WiFiManager::configPortalHasTimeout() at /Users/dontsov/Documents/Arduino/libraries/WiFiManager-waterius_release_090/WiFiManager.cpp line 450
    0x4026b26c: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40218ff0: esp_yield at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/core_esp8266_main.cpp line 91
    0x40212071: WiFiManager::startConfigPortal(char const*, char const*) at /Users/dontsov/Documents/Arduino/libraries/WiFiManager-waterius_release_090/WiFiManager.cpp line 577
    0x402173c9: Print::write(char const*) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/Print.h line 60
    0x40217424: Print::print(char const*) at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/Print.cpp line 122
    0x402075d0: setup_ap(Settings&, SlaveData const&, CalculatedData const&) at /var/folders/6d/w28yfrld7b7c_v7ss8cngjb40000gn/T/arduino_build_501521/sketch/setup_ap.cpp line 210
    0x4026a06c: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40269e21: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40269d48: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40269d96: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x4026a06c: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40269fae: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40269e70: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40269ebe: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40269ab9: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40269ceb: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x4026a088: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x4026a000: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x4026a00e: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x4026a020: sleep_reset_analog_rtcreg_8266 at ?? line ?
    0x40206b30: operator   at /var/folders/6d/w28yfrld7b7c_v7ss8cngjb40000gn/T/arduino_build_501521/sketch/Logging.h line 11
    :  (inlined by) MasterI2C::getSlaveData(SlaveData&) at /var/folders/6d/w28yfrld7b7c_v7ss8cngjb40000gn/T/arduino_build_501521/sketch/master_i2c.cpp line 106
    0x4020584c: loop at /Users/dontsov/Documents/CODE/waterius/ESP8266/main/main.ino line 73
    0x40203421: setup at /Users/dontsov/Documents/CODE/waterius/ESP8266/main/main.ino line 32
    0x402190a0: loop_wrapper() at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/core_esp8266_main.cpp line 125
    0x40101125: cont_wrapper at /Users/dontsov/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/cont.S line 81
    
    Discussion In Progress 
    opened by dontsovcmc 36
  • how to erase previous credentials?

    how to erase previous credentials?

    I have a button on my ESP, that is (via an interrupt service routine) ment to restore factory settings. How can I clear the existing WIFI credentials, so that after reset WIFIManager "sees" no credentials and starts-up the AP for setting them?

    failed I found a reference to ESP.eraseConfig here https://github.com/esp8266/Arduino/issues/1494 to but that just completely blocks the ESP and I needed to re-flash it! So I guess that is not the way to go...

    Question 
    opened by hixfield 35
  • Not connecting to new WiFi without hard reset.

    Not connecting to new WiFi without hard reset.

    After calling On Demand Configuration and configuring new wifi settings via configuration portal I get.

    *WM: WiFi save *WM: Sent wifi save page *WM: Connecting to new AP *WM: Connecting as wifi client... *WM: Connection result: *WM: 0 *WM: Failed to connect. *WM: Request redirected to captive portal

    WiFi settings are good, because after hard reset module connects to this wifi without any problems.

    opened by Hooch180 35
  • ESP32 shows captive portal every second time

    ESP32 shows captive portal every second time

    Basic Infos

    Hardware

    WiFimanager Branch/Release:

    • [ ] Master
    • [x ] Development

    Esp8266/Esp32:

    • [ ] ESP8266
    • [x ] ESP32

    Hardware: ESP-12e, esp01, esp25

    • [ ] ESP01
    • [ ] ESP12 E/F/S (nodemcu, wemos, feather)
    • [x ] Other

    **ESP32 Core Version: current

    Description

    There is a problem with WiFi-Connections of ESP32 in combination with certain routers/APs. The issue is described here: https://github.com/espressif/arduino-esp32/issues/2501#issue-413808401 A WiFi connection can only be established on every second attempt. A far as I know, the reason for that bug is still unknown. There are some workarounds for that problem, but they are not perfect and they don't work using WiFiManager. WiFiManager (with saved credentials!) connects only every second time - the other times it starts the ESP32-AP with the captive portal. If you're facing this ESP32 issue, you can't use WifiManager. I know that this issue isn't caused by WifiManager itself, but I'd like to ask if a workaround for that issue could be implemented or how I could use WifiManager anyway.

    bug 
    opened by ElToberino 33
  • Image (base64 in HTTP_ROOT_MAIN) above 70dpi is not displayed in HTML page

    Image (base64 in HTTP_ROOT_MAIN) above 70dpi is not displayed in HTML page

    Basic Infos

    Hardware

    WiFimanager Branch/Release: Master Esp8266 Hardware: NodeMCU Platformio 6.1.5 Core Version: 2.0.15-rc.1

    Smartphone Browser: Chrome Mobile

    Description

    I have identified that the default image example (base64) in HTTP_ROOT_MAIN[] has stopped working. I have identified that if the image is above 70dpi (base64), it is not rendered in the HTML. And if the image is above 100 dpi or larger than 10kb (or 20kb, I don't remember exactly), it causes a reset on esp8266.

    I had success with a 70dpi color image (70 Width x 38 Height) with 4kbs.

    I think this bug is causing a stutter when opening the homepage. Sometimes when trying “192.168.4.1” the page is blank. But if you try “192.168.4.1/wifi”, the AP SSID and Password registration page is displayed on the screen.

    Example of the standard image (base64) of HTTP_ROOT_MAIN[] available in the Wifimanager code. Stopped working const char HTTP_ROOT_MAIN[] PROGMEM = "<img title=' alt=' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADQElEQVRoQ+2YjW0VQQyE7Q6gAkgFkAogFUAqgFQAVACpAKiAUAFQAaECQgWECggVGH1PPrRvn3dv9/YkFOksoUhhfzwz9ngvKrc89JbnLxuA/63gpsCmwCADWwkNEji8fVNgotDM7osI/x777x5l9F6JyB8R4eeVql4P0y8yNsjM7KGIPBORp558T04A+CwiH1UVUItiUQmZ2XMReSEiAFgjAPBeVS96D+sCYGaUx4cFbLfmhSpnqnrZuqEJgJnd8cQplVLciAgX//Cf0ToIeOB9wpmloLQAwpnVmAXgdf6pwjpJIz+XNoeZQQZlODV9vhc1Tuf6owrAk/8qIhFbJH7eI3eEzsvydQEICqBEkZwiALfF70HyHPpqScPV5HFjeFu476SkRA0AzOfy4hYwstj2ZkDgaphE7m6XqnoS7Q0BOPs/sw0kDROzjdXcCMFCNwzIy0EcRcOvBACfh4k0wgOmBX4xjfmk4DKTS31hgNWIKBCI8gdzogTgjYjQWFMw+o9LzJoZ63GUmjWm2wGDc7EvDDOj/1IVMIyD9SUAL0WEhpriRlXv5je5S+U1i2N88zdPuoVkeB+ls4SyxCoP3kVm9jsjpEsBLoOBNC5U9SwpGdakFkviuFP1keblATkTENTYcxkzgxTKOI3jyDxqLkQT87pMA++H3XvJBYtsNbBN6vuXq5S737WqHkW1VgMQNXJ0RshMqbbT33sJ5kpHWymzcJjNTeJIymJZtSQd9NHQHS1vodoFoTMkfbJzpRnLzB2vi6BZAJxWaCr+62BC+jzAxVJb3dmmiLzLwZhZNPE5e880Suo2AZgB8e8idxherqUPnT3brBDTlPxO3Z66rVwIwySXugdNd+5ejhqp/+NmgIwGX3Py3QBmlEi54KlwmjkOytQ+iJrLJj23S4GkOeecg8G091no737qvRRdzE+HLALQoMTBbJgBsCj5RSWUlUVJiZ4SOljb05eLFWgoJ5oY6yTyJp62D39jDANoKKcSocPJD5dQYzlFAFZJflUArgTPZKZwLXAnHmerfJquUkKZEgyzqOb5TuDt1P3nwxobqwPocZA11m4A1mBx5IxNgRH21ti7KbAGiyNn3HoF/gJ0w05A8xclpwAAAABJRU5ErkJggg==' /><h1>{v}</h1><h3>WiFiManager</h3>";

    opened by georgevbsantiago 0
  • millis() logic error in waitForConnectResult()

    millis() logic error in waitForConnectResult()

    In WiFiManager::waitForConnectResult(), there is the following code (lines 1236+):

    unsigned long timeoutmillis = millis() + timeout;
    ...
    while(millis() < timeoutmillis) {
    ...
    

    If (millis()+timeout) overflows the unsigned long type, the value is less than the current millis(), which leads to a wrong timeout assumption. The correct way to do this is:

    unsigned long now = millis();
    ...
    while(millis() - now < timeout) {
    

    I haven't looked into the entire code, this issue might be present at other places, too.

    opened by realA10001986 0
  • Please add callback in waitForConnectResult()

    Please add callback in waitForConnectResult()

    Right now, waitForConnectResult() does a plain while-loop to wait for a WiFi connection. This blocks the application.

    My simple suggestion is to add a callback inside waitForConnectResult() in order to be able to (continue to) play audio and service other real-time stuff while waiting for WiFi to connect.

    opened by realA10001986 1
  • Many times the list of available wifi is not displayed in

    Many times the list of available wifi is not displayed in "Configure WiFi" menu.

    Hardware

    ESP32 Dev Module

    Software

    Arduino IDE 2.0.3 Arduino core ESP32 2.0.5

    Description

    With the latest versions of the WiFiManager library (2.0.15-rc.1, 2.0.14-beta), it is only sometimes possible to view the list of available WiFis in the "Configure WiFi" menu. Many times the list of available wifi is not displayed. Tried on multiple devices. It is not a signal strength problem because trying several times then all the nearby wifi are displayed.

    opened by DonatelloX 13
  • Saving credentials  not finished using a new ESP32 30p configure portal opens normal but saving is  not done.  ESP8266 saving cr. was okay with same wifimanager

    Saving credentials not finished using a new ESP32 30p configure portal opens normal but saving is not done. ESP8266 saving cr. was okay with same wifimanager

    PLEASE TRY Latest Master BRANCH before submitting bugs, in case they were already fixed.

    Issues without basic info will be ignored or closed!

    Please fill the info fields, it helps to get you faster support ;)

    if you have a stack dump decode it: https://github.com/esp8266/Arduino/blob/master/doc/Troubleshooting/stack_dump.rst

    for better debug messages: https://github.com/esp8266/Arduino/blob/master/doc/Troubleshooting/debugging.rst

    ----------------------------- Remove above -----------------------------

    Basic Infos

    Hardware

    WiFimanager Branch/Release: Master

    Esp8266/Esp32:

    Hardware: ESP-12e, esp01, esp25

    Core Version: 2.4.0, staging

    Description

    Problem description

    Settings in IDE

    Module: NodeMcu, Wemos D1

    Additional libraries:

    Sketch

    #BEGIN
    #include <Arduino.h>
    
    void setup() {
    
    }
    
    void loop() {
    
    }
    #END
    

    Debug Messages

    messages here
    
    opened by pa0o 1
Releases(v2.0.15-rc.1)
  • v2.0.15-rc.1(Dec 8, 2022)

    https://github.com/tzapu/WiFiManager/issues/500

    Draft Methods Docs https://github.com/tzapu/WiFiManager/wiki/Methods

    • setDebugOutput(false) causes the automatic Wi-Fi connection to fail https://github.com/tzapu/WiFiManager/issues/1444
    • ESP32-S3 support (added no_temp flag) https://github.com/tzapu/WiFiManager/issues/1421
    • AP stops after single quote in name https://github.com/tzapu/WiFiManager/issues/1398
    • Abort and connect flags used uninitialized https://github.com/tzapu/WiFiManager/issues/1379
    • ESP8266 SPIFFS Deprecated - Replace with LitteFS https://github.com/tzapu/WiFiManager/issues/1466 ( adds minor example )
    • No way to tell if Exit has been pressed when using (non-)blocking startWebPortal() https://github.com/tzapu/WiFiManager/issues/1452
    • setHostname does not set the host name https://github.com/tzapu/WiFiManager/issues/1403
    • setDebugOutput(false) causes the automatic Wi-Fi connection to fail https://github.com/tzapu/WiFiManager/issues/1444
    • Issue when Scan is cached xxxx ms ago https://github.com/tzapu/WiFiManager/issues/1386
    • css alignment tweaks for all form inputs/elements
    • fix regression for old esp 2.3 missing methods
    • moved ssid selections to use data-attributes not innerhtml for better character encoding reliability
    • adds css feedback for buttons
    • Patch for arduino 2.0 event name changes
    • Should be compatible with Arduino ESP 2.0 and some IDF, meaning S2 and C3 arduino boards defs
    • Refactor strings BREAKING in https://github.com/tzapu/WiFiManager/pull/1474

    @tablatronix

    Full Changelog: https://github.com/tzapu/WiFiManager/compare/0.16.0...v2.0.15-rc.1

    Source code(tar.gz)
    Source code(zip)
  • v2.0.14-beta(Oct 15, 2022)

  • 0.16.0(Dec 8, 2020)

  • 0.15.0(Jan 22, 2020)

    Release 0.15 which hotfixes some critical fixes for latest esplib support and adds backwards compatibility with 2.3.0

    Fixes Fatal HTTP_HEAD definition re-declaration conflict with esp core.

    Detailed Changes https://github.com/tzapu/WiFiManager/issues?q=is%3Aissue+milestone%3Av0.15+is%3Aclosed

    Source code(tar.gz)
    Source code(zip)
  • 0.14(Aug 5, 2018)

Fetch FreeBSD ports with parallel connection support and connection pipelining.

Parfetch Fetch FreeBSD ports with parallel connection support and connection pipelining. ?? This is an experiment. Use at your own risk. This is a glu

Tobias Kortkamp 5 Dec 12, 2021
A project designed for the esp8266 D1 Mini or the esp8266 D1 Mini PRO to provide a wifi http server and dns server.

PS4 Server 9.00 This is a project designed for the esp8266 D1 Mini or the esp8266 D1 Mini PRO to provide a wifi http server and dns server. this is fo

null 14 Nov 28, 2022
WiFi Attack + Recon Suite for the ESP8266 WiFi Nugget

Nugget-Invader Welcome to the Nugget Invader repository! The Invader is a WiFi attack suite developed for the WiFi Nugget, an ESP8266 based platform d

HakCat 40 Nov 28, 2022
Wifi MQTT Data Logging via an esp8266 for the Ikea VINDRIKTNING PM2.5 air quality sensor

MQTT connectivity for the Ikea VINDRIKTNING This repository contains an ESP8266 firmware, which adds MQTT to the Ikea VINDRIKTNING PM2.5 air quality s

Sören Beye 943 Dec 31, 2022
A simple and easy WiFi-enabled ESP8266-powered WSPR and FT8 beacon which uses NTP + DS3231 RTC for timing.

Easy-Digital-Beacons-v1 A simple and easy WiFi-enabled ESP8266-powered WSPR and FT8 beacon which uses NTP + DS3231 RTC for timing. The whole design is

Dhiru Kholia 36 Nov 20, 2022
ESP8266 powered Xilinx Virtual Cable - Xilinx WiFi JTAG!

Xilinx Virtual Cable Server for ESP8266 Overview ESP8266 implementation of XVC (Xilinx Virtual Cable) protocol based on xvcd

Dhiru Kholia 10 Dec 6, 2022
This project was made with a NodeMCU ESP8266 WiFi module, Raspberry Pi4, humidity sensor, flame sensor, luminosity sensor, RGB LED, active buzzer.

Smart.House.IoT.Project This project was made with a NodeMCU ESP8266 WiFi module, Raspberry Pi4, Temp and Humidity sensor, Flame sensor, Photoresistor

Hermassi Nadir 0 Jun 22, 2022
Гирлянда на адресных светодидоах и esp8266, управление по WiFi

GyverTwink Гирлянда на адресных светодидоах и esp8266, управление по WiFi Обновления Прошивка 1.1 – исправлена калибровка больше 255 светодиодов 1.2 –

Alex 61 Dec 25, 2022
Wifi hacking tool using ESP8266 ( Evil-Twin method )

ZiFi Wifi hacking tool using ESP8266 ( Evil-Twin method ) FEATURES : [+] Deauth [+] Evil-Twin [+] User Interface TESTED ON : Nodemcu Probably will wor

Z4N 82 Jan 8, 2023
Update ESP32 firmware over WiFi from a web server

esp32-firmware-update Update ESP32 firmware over WiFi from Github This includes a python script which generates the update json file based on the firm

Felix Biego 12 Dec 10, 2022
A WiFi-enabled microcontroller capable of communicating with web-based service APIs for fast prototyping applications.

A WiFi-enabled microcontroller capable of communicating with web-based service APIs for fast prototyping applications.

Mark Hofmeister 2 Mar 9, 2022
A DLL that serves OutputDebugString content over a TCP connection

RemoteDebugView A DLL that serves OutputDebugString content over a TCP connection Usage You will need to compile the DLL and then call the exported fu

hotnops 33 Nov 29, 2022
Provide translation, currency conversion, and voting services. First using telnet you create a connection to a TCP socket, then the server connects to 3 UDP sockets hosted on other servers to do tasks.

to run micro servers g++ translator.cpp -o translator ./translator <port 1> g++ voting.cpp -o voting ./voting <port 2> g++ currency_converter.cpp -o c

Jacob Artuso 1 Oct 29, 2021
XDP connection ratelimiting network function

Connection Ratelimiting Connection ratelimiting uses a sliding window algorithm for managing the connections. This kernel function based on XDP keeps

L3AF 18 Feb 3, 2022
🌱Light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.

Oat++ News Hey, meet the new oatpp version 1.2.5! See the changelog for details. Check out the new oatpp ORM - read more here. Oat++ is a modern Web F

Oat++ 6k Jan 4, 2023
Phorklift is an HTTP server and proxy daemon, with clear, powerful and dynamic configuration.

Phorklift is an HTTP server and proxy daemon, with clear, powerful and dynamic configuration.

null 43 Mar 1, 2022
Husarnet is a Peer-to-Peer VPN to connect your laptops, servers and microcontrollers over the Internet with zero configuration.

Husarnet Client Husarnet is a Peer-to-Peer VPN to connect your laptops, servers and microcontrollers over the Internet with zero configuration. Key fe

Husarnet 180 Jan 1, 2023
a CLAT configuration daemon for OpenBSD

GELATOD(8) - System Manager's Manual NAME gelatod - a CLAT configuration daemon SYNOPSIS gelatod [-dv] DESCRIPTION gelatod is a CLAT (Customer-side tr

Florian Obser 7 Dec 14, 2022
Common files for Packet Batch. Read this for configuration guidance and more!

Packet Batch (Common) Description This is a repository for Packet Batch that includes common files for all versions of Packet Batch to use (standard,

Packet Batch 3 Oct 1, 2022