ESP8266 not connecting to an ASUS ZenWiFi AX

BLUF: I'm reasonably confident that this is a ASUS ZenWifi AX firmware problem. I'm just hoping someone has found a better solution than running an old version of the firmware.

DETAILS: I'm using a esp8266 to feed data to MQTT. My network routers are two ASUS ZenWiFI AX using AI mesh with a wireless backhaul. The esp8266s worked fine (very solid) until I upgraded the firmware to 3.0.0.4.388_24609-gca2277b (AKA: 388). The connection was solid under the previous firmware (386). Now, the device just returns a network status of 7 (which I believe is
WL_DISCONNECTED. The network only connects once in a very great while (sometimes hours or even a day) but it does occasionally connect. Unplugging the device doesn't seem to help either. I've read in one post that downgrading to an earlier firmware fixes the problem which I believe since everything worked before I upgraded. Also, letting the connection attempt run for ever doesn't help. Just lots of 7s.

Any suggestions? Maybe some extra debug code that would be helpful?

program output:

09:21:19.354 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
09:21:19.354 -> 
09:21:19.354 -> load 0x4010f000, len 3424, room 16 
09:21:19.354 -> tail 0
09:21:19.400 -> chksum 0x2e
09:21:19.400 -> load 0x3fff20b8, len 40, room 8 
09:21:19.400 -> tail 0
09:21:19.400 -> chksum 0x2b
09:21:19.400 -> csum 0x2b
09:21:19.400 -> v00044a60
09:21:19.400 -> ~ld
09:21:19.432 -> �œ��o�r��N|�l�d`b��|r�$�o��o�$`��r�l�l��
09:21:19.432 -> ESP8266_NODEMCU_ESP12E
09:21:19.432 -> Connecting to ******
09:21:24.533 -> WiFi Status:7
09:21:29.574 -> WiFi Status:7
09:21:34.576 -> WiFi Status:7

Very simplified code:

#include "DHTesp.h" // Click here to get the library: http://librarymanager/All#DHTesp
#include "LibPrintf.h" // https://github.com/embeddedartistry/arduino-printf
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#include <ArduinoJson.h>
#include <math.h>

const String SENSOR_LOCATION="BonusRoom";
const String SENSOR_NUMBER="01";

WiFiClient wifiClient;

const char* ssid = "*****";
const char* password = "*****";
const char* mqtt_server = "********";

void setup_wifi() {
  Serial.print("Connecting to ");
  Serial.println(ssid);

  int wifiWaitCount = 0;
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(5000);    
    Serial.print("WiFi Status:");
    Serial.println(WiFi.status());
    if (++wifiWaitCount > 12) {
      ESP.restart();
    }
  }

  IPAddress ip=WiFi.localIP();
  String ipString=ip.toString();
  Serial.print("localIP=");
  Serial.println(ipString);

  Serial.println("");
  Serial.print("WiFi connected-----");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}


void setup()
{
  Serial.begin(115200);
  Serial.println();

  String thisBoard=ARDUINO_BOARD;
  Serial.println(thisBoard);
  
  setup_wifi();

  Serial.println("Waiting.");
  delay(15000);

  Serial.println("restarting.");
  ESP.restart();
}

void loop()
{}

This output was new:

09:46:00.470 -> ����N�{��o|�$�d`b��|r�l�N��N�l �œo�$����
09:46:00.470 -> ESP8266_NODEMCU_ESP12E
09:46:00.470 -> Connecting to *******
09:46:05.581 -> WiFi Status:7
09:46:10.566 -> WiFi Status:7
09:46:15.585 -> WiFi Status:6
09:46:20.570 -> WiFi Status:6
09:46:25.580 -> WiFi Status:6
09:46:30.579 -> WiFi Status:6
09:46:35.569 -> WiFi Status:6
09:46:40.585 -> WiFi Status:6
09:46:45.596 -> WiFi Status:6
09:46:50.571 -> WiFi Status:6
09:46:55.585 -> WiFi Status:6
09:47:00.587 -> WiFi Status:6
09:47:05.577 -> WiFi Status:6

Rebooting the Routers let's me connect 1 time then back to lucky number 7.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.