diff --git a/ampel-firmware/util.cpp b/ampel-firmware/util.cpp
index b1aeb86a4a828669a403537a4bc638b660db639c..e3b2d6e8913172cce6e4dd868aace8c03e8be02f 100644
--- a/ampel-firmware/util.cpp
+++ b/ampel-firmware/util.cpp
@@ -52,8 +52,14 @@ namespace ntp {
 
 void Ampel::showFreeSpace() {
   Serial.print(F("Free heap space : "));
-  Serial.print(get_free_heap_size());
+  Serial.print(ESP.getFreeHeap());
   Serial.println(F(" bytes."));
+  Serial.print(F("Max free block size : "));
+  Serial.print(esp_get_max_free_block_size());
+  Serial.println(F(" bytes."));
+  Serial.print(F("Heap fragmentation : "));
+  Serial.print(esp_get_heap_fragmentation());
+  Serial.println(F(" %"));
 }
 
 char sensorId[10]; // e.g "ESPxxxxxx\0"
diff --git a/ampel-firmware/util.h b/ampel-firmware/util.h
index 093cf28ab8034ca8fe33bc3c7038f611bccd7726..db424db6892d1beea14f3e4151c91356af464e4e 100644
--- a/ampel-firmware/util.h
+++ b/ampel-firmware/util.h
@@ -9,10 +9,12 @@
 
 #if defined(ESP8266)
 #  include <ESP8266WiFi.h> // required to get MAC address
-#  define get_free_heap_size() system_get_free_heap_size()
+#  define esp_get_max_free_block_size() ESP.getMaxFreeBlockSize()
+#  define esp_get_heap_fragmentation() ESP.getHeapFragmentation()
 #elif defined(ESP32)
 #  include <WiFi.h> // required to get MAC address
-#  define get_free_heap_size() esp_get_free_heap_size()
+#  define esp_get_max_free_block_size() ESP.getMaxAllocHeap() //largest block of heap that can be allocated.
+#  define esp_get_heap_fragmentation() "?" // apparently not available for ESP32
 #endif
 
 namespace ntp {
diff --git a/ampel-firmware/web_server.cpp b/ampel-firmware/web_server.cpp
index 531ca19cf7a3dd6534ccb93d553a7dd9561afc08..40cd15b3e7e5a1dae0777a36dfe85138f58bb7a5 100644
--- a/ampel-firmware/web_server.cpp
+++ b/ampel-firmware/web_server.cpp
@@ -112,6 +112,7 @@ namespace web_server {
             "<tr><td>Local address</td><td><a href='http://%s.local/'>%s.local</a></td></tr>\n"
             "<tr><td>Local IP</td><td><a href='http://%s'>%s</a></td></tr>\n"
             "<tr><td>Free heap space</td><td>%6d bytes</td></tr>\n"
+            "<tr><td>Largest heap block</td><td>%6d bytes</td></tr>\n"
             "<tr><td>Max loop duration</td><td>%5d ms</td></tr>\n"
             "<tr><td>Board</td><td>%s</td></tr>\n"
             "<tr><td>Uptime</td><td>%2d d %4d h %02d min %02d s</td></tr>\n"
@@ -237,7 +238,8 @@ namespace web_server {
         config::lorawan_sending_interval,
 #endif
         config::temperature_offset, config::auto_calibrate_sensor ? "Yes" : "No", ampel.sensorId, ampel.sensorId,
-        wifi::local_ip, wifi::local_ip, get_free_heap_size(), ampel.max_loop_duration, ampel.board, dd, hh, mm, ss);
+        wifi::local_ip, wifi::local_ip, ESP.getFreeHeap(), esp_get_max_free_block_size(), ampel.max_loop_duration,
+        ampel.board, dd, hh, mm, ss);
 
     Serial.print(F(" - Body size : "));
     http.sendContent(content);