Description
Board
ESP32, ESP32-S2
Device Description
I'm using "mini" style boards of ESP32 and ESP32-S2
Hardware Configuration
none
Version
v3.0.0
IDE Name
ARDUINO
Operating System
macos
Flash frequency
80
PSRAM enabled
yes
Upload speed
115200
Description
With apologies -- this is a heads-up and I have not narrowed it down. I am using library "OmEspHelpers" which implements a web server.
On versions 2.0.17 and earlier, memory is solid, and any number of web requests continue working, free memory varies but does not trend down.
On versions 3.0.0 and 3.0.2, web requests appear to drain several hundred bytes each request.
[EDIT] After waiting a little while, memory comes back. This is still a hazard for rapid-fire requests such with rapid REST polling.
[EDIT] I just attached a basic web server example, which serves up "freeBytes: xxxxx". When I hit refresh on browser, freebytes trends downward consistently.
Sketch
#include <WebServer.h>
#include <WiFi.h>
/*Put your SSID & Password*/
const char *ssid = "omino warp"; // Enter SSID here
const char *password = "0123456789"; // Enter Password here
WebServer server(80);
void setup()
{
Serial.begin(115200);
delay(100);
Serial.println("Connecting to ");
Serial.println(ssid);
// connect to your local wi-fi network
WiFi.begin(ssid, password);
// check wi-fi is connected to wi-fi network
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected..!");
Serial.print("Got IP: ");
Serial.println(WiFi.localIP());
server.on("/", handle_OnConnect);
server.onNotFound(handle_OnConnect);
server.begin();
Serial.println("HTTP server started");
}
void loop()
{
server.handleClient();
}
void handle_OnConnect()
{
server.send(200, "text/html", SendHTML());
}
String SendHTML()
{
String ptr = "<!DOCTYPE html> <html>\n";
ptr += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
ptr += "<title>esp32</title>\n";
ptr += "</head>\n";
ptr += "<body>\n";
ptr += "<h1>ESP32 Web Server</h1>\n";
ptr += "<h3>Using Station(STA) Mode</h3>\n";
char s[128];
sprintf(s, "<pre><hr/>freeBytes: %d\n<hr/></pre>\n", esp_get_free_heap_size());
ptr += s;
ptr += "</body>\n";
ptr += "</html>\n";
return ptr;
}
Debug Message
none
reading memory with system_get_free_heap_size()
eventually hangs
Other Steps to Reproduce
none
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.