esp8266 / Arduino

ESP8266 core for Arduino
GNU Lesser General Public License v2.1
16.01k stars 13.33k forks source link

ESP8266 Drops WiFi N Connection after random time #8677

Open gmdriscoll opened 2 years ago

gmdriscoll commented 2 years ago

*** Platform

*** Problem Description

ESP-07S does not reconnect to router from deepSleep after random amount of time, but generally with 24 hours USING WIFI N. Does not happen with G. DeepSleep is 30seconds to 1 minute. It will not reconnect even with power off. A ROUTER REBOOT is necessary to reset connection fully.

Router Message: wlceventd: wlceventd_proc_event(530): eth5: Auth [MAC], status: Successful (0), rssi:-49 wlceventd: wlceventd_proc_event(559): eth5: Assoc [MAC], status: Successful (0), rssi:-49 wlceventd: wlceventd_proc_event(511): eth5: Disassoc [MAC], status: 0, reason: (2) Previous authentication no longer valid. wlceventd: wlceventd_proc_event(494): eth5: Deauth_ind [MAC], status: 0, reason: Disassociated due to inactivity (4), rssi:-51

This happens with the basic example for wifiClient that is provided.

There is no error. WiFi.status() never == WL_CONNECTED.

*** Current resolution

This can be prevented using 3 difference approaches.

  1. Router - Suppress bandwidth to 54Mbs. A. Set option [Wireless Mode]to [Legacy] - This will limit the bandwidth used with Wireless N to 54Mbs B. Set router to allow Wireless B & G ONLY
  2. Firmware on ESP8266 A. Using WiFi.setPhyMode(WIFI_PHY_MODE_11G) will not allow the ESP8266 to connect with Wireless N.

I would like to be able to connect in Wireless N with no connection drops. Wireless N is enabled by default on all new routers and requiring the users to make router changes to allow this device to work is very difficult.

I have not been able to figure out how to limit the bandwidth used while connected using something like in esp idf: ESP_ERROR_CHECK(esp_wifi_set_bandwidth(WIFI_IF_STA, WIFI_BW_HT20)); This idf command keeps from binding multiple wifi channels to limit the bandwith of Wireless N, but seems to be unavailable in the arduino framework. I believe this would help my problem, but not actually fix the issue of the random disconnects and no reconnect.

Any info on fixing this issue would be helpful.

Thanks, -Greg

gmdriscoll commented 2 years ago

I have found other posts with this issue: https://github.com/esp8266/Arduino/issues/7965 https://github.com/esp8266/Arduino/issues/8412 But there is no "Fix". Setting to MODE G does bypass my problem, but doesn't fix problem in N mode.

TD-er commented 2 years ago

Have you also tried the suggested SDK bin blobs as suggested here: https://github.com/esp8266/Arduino/issues/7965#issuecomment-962264546 ???

gmdriscoll commented 2 years ago

I have not tried the older SDK bin blobs. I have only one AP that I am connecting to at -50db or greater, so not a signal problem per se. But there could be a random weak connection over the 24 hours and it fails on that I suppose. No mesh mode active, just direct router mode with DHCP. Router is in stock default settings. Again, trying to make sure that when this product goes into a new environment it works with no changes to the router like most of the wifi devices we own. I will try the other blobs and see if I can get it to not fail in N mode.

gmdriscoll commented 1 year ago

See latest in #7965