From b34a1b57d64baf54f6ad0d23677e3ab6e2a0f413 Mon Sep 17 00:00:00 2001 From: proddy Date: Mon, 4 May 2026 08:38:41 +0200 Subject: [PATCH] fix warning "esp32-hal-gpio.c:181] __digitalWrite(): IO 2 is not set as GPIO. Execute digitalMode(2, OUTPUT) first" --- src/core/system.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/core/system.cpp b/src/core/system.cpp index 350a304bf..3e01a6e93 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -840,19 +840,21 @@ void System::button_init() { // set the LED to on or off when in normal operating mode void System::led_init() { - // disabled old led port before setting new one - led_type_ ? EMSESP_RGB_WRITE(led_gpio_, 0, 0, 0) : digitalWrite(led_gpio_, !LED_ON); + // RGB: drive strip low before init. Standard GPIO LED: pinMode must precede digitalWrite (ESP32 Arduino hal). + if (led_type_) { + EMSESP_RGB_WRITE(led_gpio_, 0, 0, 0); + } - if ((led_gpio_)) { // 0 means disabled - if (led_type_) { - // rgb LED WS2812B, use Neopixel - EMSESP_RGB_WRITE(led_gpio_, 0, 0, 0); - } else { - pinMode(led_gpio_, OUTPUT); - digitalWrite(led_gpio_, !LED_ON); // start with LED off - } - } else { + if (!led_gpio_) { // 0 means disabled LOG_INFO("LED disabled"); + return; + } + + if (led_type_) { + EMSESP_RGB_WRITE(led_gpio_, 0, 0, 0); + } else { + pinMode(led_gpio_, OUTPUT); + digitalWrite(led_gpio_, !LED_ON); // start with LED off } }