@@ -137,16 +137,23 @@ String PinManagerClass::getPinSpecialText(int gpio) { // special purpose PIN in
137137 if (gpio > 17 && gpio < 20 ) return (F (" USB (CDC) or JTAG" ));
138138 // if (gpio == 2 || gpio == 8 || gpio == 9) return (F("(strapping pin)"));
139139
140- #else
141- // "classic" ESP32, or ESP32 PICO-D4
140+ #elif defined(CONFIG_IDF_TARGET_ESP32)
141+ // "classic" ESP32, or ESP32 PICO
142142 // if (gpio == 0 || gpio == 2 || gpio == 5) return (F("(strapping pin)"));
143143 // if (gpio == 12) return (F("(strapping pin - MTDI)"));
144144 // if (gpio == 15) return (F("(strapping pin - MTDO)"));
145145 // if (gpio > 11 && gpio < 16) return (F("(optional) JTAG debug probe"));
146146 #if defined(BOARD_HAS_PSRAM)
147- if (gpio == 16 ) return (F (" (reserved) PSRAM" ));
148- if ((gpio == 17 ) && (strncmp_P (PSTR (" ESP32-D0WDR2-V3" ), ESP.getChipModel (), 15 ) != 0 ) ) return (F (" (reserved) PSRAM" ));
147+ if (gpio == 16 ) return (F (" (reserved) SPI RAM" ));
148+ if ((gpio == 17 ) && (strncmp_P (PSTR (" ESP32-D0WDR2-V3" ), ESP.getChipModel (), 15 ) != 0 ) ) return (F (" (reserved) SPI RAM" ));
149+ #else
150+ #if (ESP_IDF_VERSION_MAJOR > 3)
151+ if (gpio == 16 && psramFound ()) return (F (" (reserved) SPI RAM" ));
152+ if ((gpio == 17 ) && psramFound () && (strncmp_P (PSTR (" ESP32-D0WDR2-V3" ), ESP.getChipModel (), 15 ) != 0 ) ) return (F (" (reserved) SPI RAM" ));
153+ #endif
149154 #endif
155+ if ((gpio == 9 || gpio == 10 ) && (strncmp_P (PSTR (" ESP32-PICO-V3-02" ), ESP.getChipModel (), 16 ) == 0 )) // PICO-V3-02: uses GPIO 9 and 10 for PSRAM
156+ return (F (" SPI RAM" ));
150157 #if defined(ARDUINO_TTGO_T7_V14_Mini32) || defined(ARDUINO_LOLIN_D32_PRO) || defined(ARDUINO_ADAFRUIT_FEATHER_ESP32_V2)
151158 if (gpio == 35 ) return (F (" (reserved) _VBAT voltage monitoring" )); // WLEDMM experimental
152159 #endif
0 commit comments