PlatformIO framework is:
{
"name": "framework-arduinoespressif32",
"description": "Arduino Wiring-based Framework (ESP32 Core)",
"version": "2.10002.190628",
"url": "https://github.com/espressif/arduino-esp32"
}
I am seeing an issue where depending upon the MAC address, a board will get an offer or it never gets an offer. If an offer is sent, the system works correctly and I have full IP connectivity. However, without an offer, the DHCP process is stalled.
By simply changing the MAC address on a failing unit to the MAC address of a good unit, the system works.
I don't have extensive testing on multiple DHCP servers and I don't know the pedigree of the current DHCP server as this is a coorporate environment on an existing test network.
Code: Select all
#include <Arduino.h>
#include "WiFi.h"
#include "ntpclient.h"
#include <esp_wifi.h>
#include "wifi_credentials.h"
const uint8_t m1_mac[] = {0xB4,0xE6,0x2D,0xFB,0x02,0x21}; // works. Taken from ESP32
const uint8_t m2_mac[] = {0xB4,0xE6,0x2D,0xFB,0x02,0x21}; // fails. Taken from ESP32
const uint8_t n2_mac[] = {0xA4,0xCF,0x12,0x0B,0x1C,0xBC}; // fails. Taken from ESP32
const uint8_t m3_mac[] = {0xA4,0xCF,0x12,0x0A,0x81,0x20}; // fails. Taken from ESP32
const uint8_t n4_mac[] = {0x3C,0x71,0xBF,0x64,0x30,0x0C}; // Fails. Taken from ESP32
const uint8_t lsr_mac[] = {0x00,0x25,0xCA,0x03,0x0B,0x08}; // works. Taken from LSR TIWI-C device
const uint8_t *original_mac = n4_mac;
void setup() {
Serial.begin(115200);
WiFi.disconnect(true);
WiFi.mode(WIFI_STA);
Serial.print("Default MAC = : "); Serial.print(WiFi.macAddress());
esp_wifi_set_mac(ESP_IF_WIFI_STA, lsr_mac); // esp32 code
Serial.print(" | NEW MAC = : "); Serial.print(WiFi.macAddress());
WiFi.begin(network_name,network_pswd);
delay(5000);
if(WL_CONNECTED == WiFi.status())
{
Serial.print(" | IP Address : ");
Serial.println(WiFi.localIP());
}
else
{
Serial.println(" | No Connection");
}
}
void loop()
{
delay(500);
}
I do not know of any other devices failing to connect on this network but I will be looking into the DHCP configuration for the network.