From 06f94743bf0b438607bf9d1741355299d1f30398 Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Tue, 7 May 2024 13:35:16 +0200 Subject: [PATCH] pico board: always protect pin 16+17 runtime detection of PICO boards, to ensure that SPIRAM pins are protected even when users install a non-pico firmware build. --- wled00/wled.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 4b2d6609..11ebcf72 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -611,10 +611,12 @@ void WLED::setup() DEBUG_PRINTLN(F("PSRAM not used.")); #endif #endif -#if defined(ARDUINO_ESP32_PICO) -// special handling for PICO-D4: gpio16+17 are in use for onboard SPI FLASH (not PSRAM) -managed_pin_type pins[] = { {16, true}, {17, true} }; -pinManager.allocateMultiplePins(pins, sizeof(pins)/sizeof(managed_pin_type), PinOwner::SPI_RAM); +#if defined(ARDUINO_ARCH_ESP32) + if (strncmp("ESP32-PICO", ESP.getChipModel(), 10) == 0) { // WLEDMM detect pico board at runtime + // special handling for PICO-D4: gpio16+17 are in use for onboard SPI FLASH (not PSRAM) + managed_pin_type pins[] = { {16, true}, {17, true} }; + pinManager.allocateMultiplePins(pins, sizeof(pins)/sizeof(managed_pin_type), PinOwner::SPI_RAM); + } #endif //DEBUG_PRINT(F("LEDs inited. heap usage ~"));