experimental: more info about PSRAM and Flash

* PSRAM speed and transfer mode (serial only)
* added all possible modes and speed flags (-P4 included)
This commit is contained in:
Frank
2026-03-26 19:51:27 +01:00
parent 9fd2a51cf4
commit a70b945bce
2 changed files with 63 additions and 4 deletions

View File

@@ -1145,16 +1145,19 @@ void serializeInfo(JsonObject root)
root[F("tpsram")] = ESP.getPsramSize(); //WLEDMM
root[F("psram")] = ESP.getFreePsram();
root[F("psusedram")] = ESP.getMinFreePsram();
#if CONFIG_ESP32S3_SPIRAM_SUPPORT // WLEDMM -S3 has "qspi" or "opi" PSRAM mode
// WLEDMM -S3 has "qspi" or "opi" PSRAM mode, -P4 has "hex"
#if CONFIG_SPIRAM_MODE_OCT
root[F("psrmode")] = F("🚀 OPI");
#elif CONFIG_SPIRAM_MODE_QUAD
root[F("psrmode")] = F("qspi");
#elif CONFIG_SPIRAM_MODE_HEX
root[F("psrmode")] = F("🚀🚀 HEX");
#else
root[F("psrmode")] = F("dio");
#endif
#endif
}
#endif
#endif
// begin WLEDMM
#ifdef ARDUINO_ARCH_ESP32
@@ -1191,8 +1194,10 @@ void serializeInfo(JsonObject root)
case FM_QOUT: root[F("e32flashtext")] = F(" (QOUT)");break;
case FM_DIO: root[F("e32flashtext")] = F(" (DIO)"); break;
case FM_DOUT: root[F("e32flashtext")] = F(" (DOUT or other)");break;
#if defined(CONFIG_IDF_TARGET_ESP32S3) && CONFIG_ESPTOOLPY_FLASHMODE_OPI
#if CONFIG_ESPTOOLPY_FLASHMODE_OPI
case FM_FAST_READ: root[F("e32flashtext")] = F(" (🚀OPI)");break;
#elif CONFIG_ESPTOOLPY_FLASHMODE_HEX
case FM_FAST_READ: root[F("e32flashtext")] = F(" (🚀🚀HEX)");break;
#else
case FM_FAST_READ: root[F("e32flashtext")] = F(" (fast_read)");break;
#endif

View File

@@ -702,10 +702,64 @@ void WLED::setup()
}
#endif
#ifdef CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_DTR
DEBUG_PRINTLN(F("FLASH access: DTR")); // faster
#elif CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR
DEBUG_PRINTLN(F("FLASH access: STR")); // standard
#endif
#ifdef CONFIG_SPI_FLASH_HPM_ENA
DEBUG_PRINTLN(F("FLASH high performance mode: enabled"));
#endif
#ifdef CONFIG_SPI_FLASH_HPM_ON
DEBUG_PRINTLN(F("FLASH high performance mode: on")); // faster with STR
#endif
#if (defined(BOARD_HAS_PSRAM) || (ESP_IDF_VERSION_MAJOR > 3)) && (defined(WLED_USE_PSRAM) || defined(WLED_USE_PSRAM_JSON)) // WLEDMM
if (psramFound()) {
DEBUG_PRINT(F("Total PSRAM: ")); DEBUG_PRINT(ESP.getPsramSize()/1024); DEBUG_PRINTLN("kB");
USER_PRINTLN();
USER_PRINT(F("Total PSRAM: ")); USER_PRINT(ESP.getPsramSize()/1024); USER_PRINTLN("kB");
DEBUG_PRINT(F("Free PSRAM : ")); DEBUG_PRINT(ESP.getFreePsram()/1024); DEBUG_PRINTLN("kB");
#if CONFIG_SPIRAM_MODE_HEX
USER_PRINT(F("PSRAM mode: hex, "));
#ifdef SPIRAM_USE_8LINE_MODE
USER_PRINTLN(F("8-line"));
#else
USER_PRINTLN(F("16-line"));
#endif
#elif CONFIG_SPIRAM_MODE_OCT
USER_PRINTLN(F("PSRAM mode: octal, DTR"));
#elif CONFIG_SPIRAM_MODE_QUAD
USER_PRINTLN(F("PSRAM mode: quad, STR"));
#endif
#ifdef SPIRAM_ECC_ENABLE
DEBUG_PRINTLN(F("PSRAM error correction: ECC enabled"));
#endif
#if defined(CONFIG_SPIRAM_SPEED_250M)
USER_PRINTLN(F("PSRAM speed: 250 MHz"));
#elif defined(CONFIG_SPIRAM_SPEED_200M)
USER_PRINTLN(F("PSRAM speed: 200 MHz"));
#elif defined(CONFIG_SPIRAM_SPEED_160M)
USER_PRINTLN(F("PSRAM speed: 160 MHz"));
#elif defined(CONFIG_SPIRAM_SPEED_120M)
USER_PRINTLN(F("PSRAM speed: 120 MHz"));
#elif defined(CONFIG_SPIRAM_SPEED_80M)
USER_PRINTLN(F("PSRAM speed: 80 MHz"));
#elif defined(CONFIG_SPIRAM_SPEED_40M)
USER_PRINTLN(F("PSRAM speed: 40 MHz"));
#elif defined(CONFIG_SPIRAM_SPEED_26M)
USER_PRINTLN(F("PSRAM speed: 26 MHz"));
#elif defined(CONFIG_SPIRAM_SPEED_20M)
USER_PRINTLN(F("PSRAM speed: 20 MHz"));
#endif
#ifdef CONFIG_SPIRAM_OCCUPY_HSPI_HOST
DEBUG_PRINTLN(F("PSRAM host: HSPI"));
#elif CONFIG_SPIRAM_OCCUPY_VSPI_HOST
DEBUG_PRINTLN(F("PSRAM host: VSPI"));
#elif CONFIG_SPIRAM_OCCUPY_NO_HOST
DEBUG_PRINTLN(F("PSRAM host: none"));
#endif
USER_PRINTLN();
}
#else
DEBUG_PRINTLN(F("PSRAM not used."));