I reset the ESP32-S3 board and uploaded simple blink code, but nothing happens
#define LED_BUILTIN 48
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED_BUILTIN,HIGH);
delay(1000);
digitalWrite(LED_BUILTIN,LOW);
delay(1000);
}
ESP32 Arduino platform for some ESP32 boards in pins_arduino.h
has a definition of LED_BUILTIN
. For example for the "ESP32S3 Dev Module" it is:
#define PIN_NEOPIXEL 48
static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL;
#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN
#define RGB_BUILTIN LED_BUILTIN
#define RGB_BRIGHTNESS 64
The LED_BUILTIN
here has a strange value SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL
. This is to distinguish normal use of the IO pin from use for the on-board RGB LED. In digitalWrite
if the pin is RGB_BUILTIN
they invoke neopixelWrite
instead of gpio_set_level
which is executed for all normal IO pins including 48.
The neopixelWrite
function then uses the Neopixel protocol to communicate with the on-board RGB LED.
So don't redefine LED_BUILTIN
but use the one already defined in pins_arduino.h
.