🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    M5stack Core2 as an AP and webserver - WiFi dhcp is inconsistent serving IP add to clients

    Arduino
    3
    5
    465
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Krmiller
      last edited by

      I have tried soooo many things to try and work around this, but continue to have the same issue. The code below is the bare minimum to recreate the issue. When I run this on my core2 and connect PC, Mac, or iPhone, it will usually not give the first client that connects an address. You can see it trying in the debug of console port, but the client doesn't get the address..... then, here's the crazy part. If you try and connect another client (iPhone), the first client gets an address, and the second works too. Any assistance would be greatly appreciated.... been banging my head on this one. Thank you.

      #include <M5Stack.h>
      #include "WiFi.h" // Include WiFi library
      
      char ssid[] = "M5Stack";
      char password[] = "yourpassword";
      
      WiFiServer server(80);
      IPAddress ip(192, 168, 0, 1);
      IPAddress gateway(192, 168, 0, 1);
      IPAddress subnet(255, 255, 255, 0);
      
      
      void setup() {
      
        m5.begin();
        Serial.begin(115200);
      
      
      
        WiFi.mode(WIFI_AP);
        WiFi.softAP(ssid, password);
        WiFi.softAPConfig(ip, gateway, subnet);
        WiFi.begin();
      
      
        
      }
      
      
      void loop() {
        // Example of getting the number of connected clients
        int clientCount = WiFi.softAPgetStationNum();
        Serial.print("Connected clients: ");
        Serial.println(clientCount);
      
        delay(5000);  // Check every 5 seconds
      }
      
      felmueF 1 Reply Last reply Reply Quote 0
      • felmueF
        felmue @Krmiller
        last edited by felmue

        Hello @Krmiller

        I am not able to reproduce the issue you are describing. Tested with Linux and MacOS client. That said I recommend not using delay() in the loop as it blocks the WiFi background process.

        Try replacing loop with below code. (You should see a much quicker response too.)

        void loop() {
          static uint32_t t = millis();
        
          if(millis() > t + 5000)
          {
            t = millis();
            int clientCount = WiFi.softAPgetStationNum();
            Serial.print("Connected clients: ");
            Serial.println(clientCount);
          }
        }
        

        Thanks
        Felix

        GPIO translation table M5Stack / M5Core2
        Information about various M5Stack products.
        Code examples

        K 1 Reply Last reply Reply Quote 0
        • K
          Krmiller @felmue
          last edited by

          Hi @felmue,

          Thanks for taking a look. Tried your code change - same issue. Not only can I repeat with different core2s, I can reproduce with 2 different Macs and 2 different PCs. I'm Starting to wonder if it has something to do with CN (China) country code. Any other thoughts? ver of M5Stack.h or WiFi.h?

          thanks again,
          Kris

          K 1 Reply Last reply Reply Quote 0
          • K
            Krmiller @Krmiller
            last edited by

            As an example: Here the first time I try to connect.... it works and gives my Mac 192.168.0.2.
            *** SNIP***
            OK
            [ 1295][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 0 - WIFI_READY
            [ 1363][V][WiFiGeneric.cpp:392] _arduino_event_cb(): AP Started
            [ 1363][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring SoftAP static IP: 192.168.0.1, MASK: 255.255.255.0, GW: 192.168.0.1
            [ 1364][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 10 - AP_START
            [ 1378][V][WiFiGeneric.cpp:143] set_esp_interface_ip(): SoftAP: 192.168.0.1 | Gateway: 192.168.0.1 | DHCP Start: 0.0.0.0 | Netmask: 255.255.255.0
            [ 1390][V][WiFiGeneric.cpp:190] set_esp_interface_ip(): DHCP Server Range: 192.168.0.2 to 192.168.0.12
            [ 1400][V][WiFiGeneric.cpp:340] _arduino_event_cb(): STA Started
            [ 1404][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0
            [ 1405][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 2 - STA_START
            [ 1428][E][WiFiSTA.cpp:317] begin(): connect failed! 0x300a
            Connected clients: 0
            Connected clients: 0
            Connected clients: 0
            Connected clients: 0
            Connected clients: 0
            Connected clients: 0
            [ 32004][V][WiFiGeneric.cpp:407] _arduino_event_cb(): AP Station Connected: MAC: 6c:40:08:99:7b:c0, AID: 1
            [ 32005][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 12 - AP_STACONNECTED
            [ 32035][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [ 32035][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            Connected clients: 1
            Connected clients: 1
            Connected clients: 1
            **** SNIP ****

            Then I disconnect and connect to another network (my home WiFi) .... although I'm no longer connected to the core2, It continues to show 1 client connected. When they I try to reconnect to the core2 SSID, it first show me disconnected, then tries to serve an address over and over. The Mac never accepts the address.

            **** SNIP ****
            Connected clients: 1
            Connected clients: 1
            Connected clients: 1
            Connected clients: 1
            Connected clients: 1
            [208861][V][WiFiGeneric.cpp:414] _arduino_event_cb(): AP Station Disconnected: MAC: 6c:40:08:99:7b:c0, AID: 1
            [208862][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 13 - AP_STADISCONNECTED
            Connected clients: 1
            [216440][V][WiFiGeneric.cpp:407] _arduino_event_cb(): AP Station Connected: MAC: 6c:40:08:99:7b:c0, AID: 1
            [216440][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 12 - AP_STACONNECTED
            Connected clients: 1
            [216552][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [216552][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            [217890][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [217891][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            [220363][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [220364][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            Connected clients: 1
            [226304][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [226305][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            Connected clients: 1
            [227309][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [227309][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            [229339][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [229339][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            Connected clients: 1
            [233314][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [233315][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            Connected clients: 1
            Connected clients: 1
            [242335][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [242336][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            [243334][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [243335][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            [245337][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [245337][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            Connected clients: 1
            [249339][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [249339][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            Connected clients: 1
            Connected clients: 1
            [258361][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [258361][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            [259365][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [259365][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            [261365][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.2
            [261365][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            **** SNIP ****

            This goes on for sever minutes. Then as soon as i connect with my iPhone... both clients get an address.

            **** SNIP ****
            Connected clients: 1
            Connected clients: 1
            [942052][V][WiFiGeneric.cpp:407] _arduino_event_cb(): AP Station Connected: MAC: 2e:da:8a:d8:c5:64, AID: 2
            [942053][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 12 - AP_STACONNECTED
            [943452][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.3
            [943453][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            [944350][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:192.168.0.3
            [944351][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
            Connected clients: 2
            Connected clients: 2
            Connected clients: 2
            Connected clients: 2
            Connected clients: 2

            1 Reply Last reply Reply Quote 0
            • kurikoK
              kuriko
              last edited by

              @Krmiller
              Maybe you should look at the source code of the library to see what it does directly when connecting to the first/second client...I think it's still related to the blockage

              Good morning, and welcome to the Black Mesa Transit System.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post