Skip to content

Unable to change STATION MAC address when using SOFT_AP #8554

Closed
@jam3st

Description

@jam3st

I have some old ESP8266 NOOS CODE that works but goes buggy after a few days. I want to port this to arduino as this uses 3.x of the SDK and I have an old 2.0 version of the NO OSSDK. In the old code I can randomize both the STATION and SOFT AP at the same time. But in this sketch only the first one is chnaged the station MAC doesn't change

#include <ESP8266WiFi.h>
#include <ESP8266TrueRandom.h>
/* Set these to your desired credentials for ESP8266 AP. */
const char *ssid = "SOFTAP";
const char *password = "01234567";

// Setup credentials for original WiFi, that we plan to repeat
const char* ssidExt = "ISPWIFI";


void setup() {
  uint8_t newMACAddress[6];
  Serial.begin(76800);

  
  ESP8266TrueRandom.mac(&newMACAddress[0]);
  Serial.printf("SOFTAP_IF %02x:%02x:%02x:%02x:%02x:%02x\r\n", newMACAddress[0],newMACAddress[1],newMACAddress[2],newMACAddress[3],newMACAddress[4], newMACAddress[5]);
  WiFi.softAPmacAddress( &newMACAddress[0]);

  ESP8266TrueRandom.mac(&newMACAddress[0]);
  Serial.printf("STATION_IF %02x:%02x:%02x:%02x:%02x:%02x\r\n", newMACAddress[0],newMACAddress[1],newMACAddress[2],newMACAddress[3],newMACAddress[4], newMACAddress[5]);
  wifi_set_macaddr(STATION_IF, &newMACAddress[0]);

  WiFi.mode(WIFI_AP_STA);
  WiFi.begin(ssidExt, password);
  WiFi.softAP(ssid, password);



  IPAddress myIP = WiFi.softAPIP();
  IPAddress apIP(192, 168, 4, 1);

  Serial.print("AP IP address: ");
  Serial.println(myIP);
}

bool connected = false;
void loop()
{
  bool newConnected =  (WiFi.status() == WL_CONNECTED);
  if(!connected && newConnected) {
    

      Serial.print("Connected to ");
      Serial.println(WiFi.macAddress());

      Serial.println(ssidExt);
      Serial.print("IP address: ");
      Serial.println(WiFi.localIP());
      Serial.print("dnsIP address: ");
      Serial.println(WiFi.dnsIP());
      Serial.print("gatewayIP address: ");
      Serial.println(WiFi.gatewayIP());
      Serial.print("subnetMask address: ");
      Serial.println(WiFi.subnetMask());
  } else if (connected && !newConnected) {
       Serial.print("Lost connection");
  }
  connected = newConnected;
  delay(5000);
}

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions