From eb4bd6fbb15eb255ff5bf58d5da8a990d34d3464 Mon Sep 17 00:00:00 2001 From: wled-install <96419931+wled-install@users.noreply.github.com> Date: Mon, 2 Feb 2026 18:55:29 +0100 Subject: [PATCH 1/2] Update pin_manager.cpp --- wled00/pin_manager.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wled00/pin_manager.cpp b/wled00/pin_manager.cpp index 709263e1..0624189b 100644 --- a/wled00/pin_manager.cpp +++ b/wled00/pin_manager.cpp @@ -246,7 +246,11 @@ bool PinManager::isPinOk(byte gpio, bool output) // for classic ESP32 (non-mini) modules, these are the SPI flash pins if (gpio > 5 && gpio < 12) return false; //SPI flash pins } - if (gpio == 16 || gpio == 17) return !psramFound(); // PSRAM pins on ESP32-D0WDR2-V3 (these are IO) + if ((strncmp_P(PSTR("ESP32-D0WDR2-V3"), ESP.getChipModel(), 15) == 0) || (strncmp_P(PSTR("ESP32-D0WDRH2-V3"), ESP.getChipModel(), 16) == 0)) { // allow gpio17 on modules with in-package PSRAM + if (gpio == 16) return !psramFound(); + if (gpio == 17) return true; + } else if (gpio == 16 || gpio == 17) return !psramFound(); // PSRAM pins on modules with off-package PSRAM + #endif if (output) return digitalPinCanOutput(gpio); else return true; From 680ef26f4dda257135960f9e55aaedb2bcbe7be6 Mon Sep 17 00:00:00 2001 From: wled-install <96419931+wled-install@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:55:38 +0100 Subject: [PATCH 2/2] Update pin_manager.cpp --- wled00/pin_manager.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/wled00/pin_manager.cpp b/wled00/pin_manager.cpp index 0624189b..06b8126d 100644 --- a/wled00/pin_manager.cpp +++ b/wled00/pin_manager.cpp @@ -246,11 +246,14 @@ bool PinManager::isPinOk(byte gpio, bool output) // for classic ESP32 (non-mini) modules, these are the SPI flash pins if (gpio > 5 && gpio < 12) return false; //SPI flash pins } - if ((strncmp_P(PSTR("ESP32-D0WDR2-V3"), ESP.getChipModel(), 15) == 0) || (strncmp_P(PSTR("ESP32-D0WDRH2-V3"), ESP.getChipModel(), 16) == 0)) { // allow gpio17 on modules with in-package PSRAM - if (gpio == 16) return !psramFound(); - if (gpio == 17) return true; - } else if (gpio == 16 || gpio == 17) return !psramFound(); // PSRAM pins on modules with off-package PSRAM - + if (gpio == 16) return !psramFound(); // PSRAM pins on modules with off-package or in-package PSRAM + if (gpio == 17) { + if (strncmp_P(PSTR("ESP32-D0WDR2-V3"), ESP.getChipModel(), 15) == 0) { + return true; + } else { + return !psramFound(); // PSRAM pins on modules with in-package PSRAM + } + } #endif if (output) return digitalPinCanOutput(gpio); else return true;