Add PSRAM diagnostics to MQTTBridge initialization

- Implemented PSRAM availability checks and logging to assist in debugging memory fragmentation on boards with external RAM.
- Enhanced logging to provide detailed information about PSRAM size, free memory, and initialization status.
- Updated platformio.ini files across multiple variants to remove obsolete mbedTLS configuration flags, streamlining the build process.
This commit is contained in:
agessaman committed 2026-02-04 18:59:19 -08:00
1 parent 21158e1fd2
commit abcfe60948
10 files changed
+33 -52

No files matched your search

+33 -1
View File
@@ -179,7 +179,39 @@ MQTTBridge::MQTTBridge(NodePrefs *prefs, mesh::PacketManager *mgr, mesh::RTCCloc
void MQTTBridge::begin() {
MQTT_DEBUG_PRINTLN("Initializing MQTT Bridge...");
// PSRAM diagnostic - helps debug memory fragmentation on boards with external RAM
#ifdef BOARD_HAS_PSRAM
{
bool psram_available = psramFound();
size_t psram_size = 0;
size_t psram_free = 0;
if (psram_available) {
psram_size = ESP.getPsramSize();
psram_free = ESP.getFreePsram();
}
MQTT_DEBUG_PRINTLN("PSRAM: found=%s, size=%u, free=%u",
psram_available ? "YES" : "NO", psram_size, psram_free);
if (!psram_available) {
MQTT_DEBUG_PRINTLN("PSRAM: board has PSRAM flag but psramFound()=false. "
"Trying explicit psramInit()...");
bool init_result = psramInit();
MQTT_DEBUG_PRINTLN("PSRAM: psramInit() returned %s", init_result ? "true" : "false");
if (init_result) {
psram_size = ESP.getPsramSize();
psram_free = ESP.getFreePsram();
MQTT_DEBUG_PRINTLN("PSRAM: after init - size=%u, free=%u", psram_size, psram_free);
}
}
// Log internal heap for comparison
MQTT_DEBUG_PRINTLN("PSRAM: internal_free=%u, internal_max_alloc=%u",
heap_caps_get_free_size(MALLOC_CAP_INTERNAL),
heap_caps_get_largest_free_block(MALLOC_CAP_INTERNAL));
}
#else
MQTT_DEBUG_PRINTLN("PSRAM: not configured for this board (no BOARD_HAS_PSRAM)");
#endif
// Check if WiFi credentials are configured first
if (!isWiFiConfigValid(_prefs)) {
MQTT_DEBUG_PRINTLN("MQTT Bridge initialization skipped - WiFi credentials not configured");
-3
View File
@@ -112,9 +112,6 @@ build_flags =
-D MESH_PACKET_LOGGING=1
-D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
build_src_filter = ${Heltec_T190_base.build_src_filter}
+<helpers/bridges/MQTTBridge.cpp>
+<helpers/MQTTMessageBuilder.cpp>
-6
View File
@@ -123,9 +123,6 @@ build_flags =
-D MESH_PACKET_LOGGING=1
-D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
-D MQTT_WIFI_TX_POWER=WIFI_POWER_19_5dBm
-D MQTT_WIFI_POWER_SAVE_DEFAULT=1
@@ -186,9 +183,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
-D MQTT_WIFI_TX_POWER=WIFI_POWER_19_5dBm
-D MQTT_WIFI_POWER_SAVE_DEFAULT=1
-6
View File
@@ -143,9 +143,6 @@ build_flags =
-D MESH_PACKET_LOGGING=1
-D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D MQTT_WIFI_TX_POWER=WIFI_POWER_19_5dBm
-D MQTT_WIFI_POWER_SAVE_DEFAULT=1
# -D WIFI_SSID='"ssid"'
@@ -186,9 +183,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D MQTT_WIFI_TX_POWER=WIFI_POWER_19_5dBm
-D MQTT_WIFI_POWER_SAVE_DEFAULT=1
build_src_filter = ${Heltec_lora32_v4.build_src_filter}
-6
View File
@@ -115,9 +115,6 @@ build_flags =
-D MESH_PACKET_LOGGING=1
-D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
# -D WIFI_SSID='"ssid"'
# -D WIFI_PWD='"password"'
@@ -157,9 +154,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
build_src_filter = ${LilyGo_T3S3_sx1262.build_src_filter}
+<helpers/bridges/MQTTBridge.cpp>
@@ -149,9 +149,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
# -D WIFI_SSID='"ssid"'
# -D WIFI_PWD='"password"'
# -D MQTT_SERVER='"your-mqtt-broker.com"'
@@ -189,9 +186,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
build_src_filter = ${LilyGo_TBeam_SX1262.build_src_filter}
+<helpers/bridges/MQTTBridge.cpp>
+<helpers/MQTTMessageBuilder.cpp>
@@ -149,9 +149,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
# -D WIFI_SSID='"ssid"'
# -D WIFI_PWD='"password"'
# -D MQTT_SERVER='"your-mqtt-broker.com"'
@@ -189,9 +186,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
build_src_filter = ${LilyGo_TBeam_SX1276.build_src_filter}
+<helpers/bridges/MQTTBridge.cpp>
+<helpers/MQTTMessageBuilder.cpp>
@@ -110,9 +110,6 @@ build_flags =
-D MESH_PACKET_LOGGING=1
-D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
# -D WIFI_SSID='"ssid"'
# -D WIFI_PWD='"password"'
@@ -150,9 +147,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
build_src_filter = ${T_Beam_S3_Supreme_SX1262.build_src_filter}
+<helpers/bridges/MQTTBridge.cpp>
-6
View File
@@ -187,9 +187,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
build_src_filter = ${Station_G2.build_src_filter}
+<helpers/bridges/MQTTBridge.cpp>
@@ -298,9 +295,6 @@ build_flags =
-D MESH_PACKET_LOGGING=1
-D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
# -D WIFI_SSID='"ssid"'
# -D WIFI_PWD='"password"'
-6
View File
@@ -103,9 +103,6 @@ build_flags =
-D MESH_PACKET_LOGGING=1
-D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
# -D WIFI_SSID='"ssid"'
# -D WIFI_PWD='"password"'
@@ -144,9 +141,6 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
; -D MESH_DEBUG=1
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-D CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-D CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=4096
-D CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
-D ESP32_CPU_FREQ=160
build_src_filter = ${Xiao_S3_WIO.build_src_filter}
+<helpers/bridges/MQTTBridge.cpp>