Closed
Description
Basic Infos
- This issue complies with the issue POLICY doc.
- I have read the documentation at readthedocs and the issue is not addressed there.
- I have tested that the issue is present in current master branch (aka latest git).
- I have searched the issue tracker for a similar issue.
- If there is a stack dump, I have decoded it.
- I have filled out all fields below.
Platform
- Hardware: ESP-12
- Core Version: [l5c29517d119393f3197871957ff18adbf918bac9]
- Development Env: Arduino IDE
- Operating System: Ubuntu
Settings in IDE
- Module: [DOIT]
- Flash Mode: [qio|]
- Flash Size: [4MB]
- lwip Variant: [Higher Bandwidth]
- Reset Method: [nodemcu]
- Flash Frequency: [40Mhz]
- CPU Frequency: [80Mhz]
- Upload Using: [SERIAL]
- Upload Speed: [115200]
Problem Description
WiFi.softAPConfig
returns fail for non-debug build.
Appears to work with the Debug port: Serial, Debug level: WIFI.
Part of the problem appears to be not setting enable
in dhcp_lease
before calling dhcpSoftAP.set_dhcps_lease
:
Arduino/libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp
Lines 226 to 236 in 5c29517
MCVE Sketch
// Modified CaptivePortal example
#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#define DBGLOG_FAIL(a, fmt, ...) do { if (!(a)) { Serial.printf_P( PSTR(fmt " line: %d, function: %S\r\n"), ##__VA_ARGS__, __LINE__, __FUNCTION__ ); } } while(false);
const byte DNS_PORT = 53;
IPAddress apIP(172, 217, 28, 1);
DNSServer dnsServer;
ESP8266WebServer webServer(80);
String responseHTML = ""
"<!DOCTYPE html><html lang='en'><head>"
"<meta name='viewport' content='width=device-width'>"
"<title>CaptivePortal</title></head><body>"
"<h1>Hello World!</h1><p>This is a captive portal example."
" All requests will be redirected here.</p></body></html>";
void setup() {
WiFi.persistent(false);
WiFi.mode(WIFI_OFF);
Serial.begin(115200);
delay(15);
Serial.println();
Serial.println();
Serial.println("\r\ncalling: WiFi.mode(WIFI_AP)");
DBGLOG_FAIL(WiFi.mode(WIFI_AP), "Failed: WiFi.mode(WIFI_AP)");
Serial.println("\r\ncalling: WiFi.softAP(...");
DBGLOG_FAIL(WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)), "*** Failed: WiFi.softAPConfig(...");
Serial.println("\r\ncalling: WiFi.softAPConfig(...");
DBGLOG_FAIL(WiFi.softAP("DNSServer CaptivePortal example"), "Failed: WiFi.softAP(...");
dnsServer.start(DNS_PORT, "*", apIP);
Serial.println("\r\nDNSServer CaptivePortal example running");
webServer.onNotFound([]() {
webServer.send(200, "text/html", responseHTML);
});
webServer.begin();
}
void loop() {
dnsServer.processNextRequest();
webServer.handleClient();
}
Debug Messages
calling: WiFi.mode(WIFI_AP)
calling: WiFi.softAP(...
*** Failed: WiFi.softAPConfig(... line: 31, function: setup
calling: WiFi.softAPConfig(...
DNSServer CaptivePortal example running