LED2 is consuming more power than other LEDs

Hi,

On the nRF54L15 DK, I’m configuring three LEDs:

  • LED0 for advertisement status

  • LED2 for connection status

  • LED3 for activity status

I’ve noticed that LED2 consumes significantly more power (about 250 µA) in sleep mode, compared to the other LEDs (around 40 µA). Interestingly, if I use LED3 instead of LED2, the power consumption returns to normal.

I checked the behaviour of LED2 on other boards, and I’m facing the same issue.

Below, I've attached the device tree file and LED configuration code.

Any help would be greatly appreciated.

Device tree file:

/ {
aliases {
sw0 = &button0;
sw1 = &button1;
sw2 = &button2;
sw3 = &button3;
led0 = &led0;
led2 = &led2;
led3 = &led3;
};

buttons {
compatible = "gpio-keys";
button0: button_0 {
gpios = <&gpio1 0xd 0x11>;
label = "Push button 0";
zephyr,code = <0xb>;
};
button1: button_1 {
gpios = <&gpio1 0x9 0x11>;
label = "Push button 1";
zephyr,code = <0x2>;
};
button2: button_2 {
gpios = <&gpio1 0x8 0x11>;
label = "Push button 2";
zephyr,code = <0x3>;
};
button3: button_3 {
gpios = <&gpio0 0x4 0x11>;
label = "Push button 3";
zephyr,code = <0x4>;
};
};

leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio2 0x9 0x0>;
label = "Green LED 0";
};
led2: led_2 {
gpios = <&gpio2 0x7 0x0>;
label = "Green LED 2";
};
led3: led_3 {
gpios = <&gpio1 0xe 0x0>;
label = "Green LED 3";
};
};

nvs_storage: partition@fa000 {
label = "storage";
reg = <0x000fa000 0x00006000>; /* 24 KB @ 0xFA000 */
};

chosen {
zephyr,settings-storage = &nvs_storage;
};
};
LED configuration:
const struct gpio_dt_spec adv_led = GPIO_DT_SPEC_GET_OR(DT_ALIAS(led0), gpios,{0}); /* Advertising LED */
const struct gpio_dt_spec con_led = GPIO_DT_SPEC_GET_OR(DT_ALIAS(led2), gpios,{0}); /* Connection LED */
const struct gpio_dt_spec act_led = GPIO_DT_SPEC_GET_OR(DT_ALIAS(led3), gpios,{0}); /* Activity LED */
int init_leds() {
if (gpio_is_ready_dt(&adv_led)) {
gpio_pin_configure_dt(&adv_led, GPIO_OUTPUT_ACTIVE);
gpio_pin_set_dt(&adv_led, 0);
} else {
LOG_ERR("Error: LED device %s is not ready\n", adv_led.port->name);
return -1;
}

if (gpio_is_ready_dt(&con_led)) {
gpio_pin_configure_dt(&con_led, GPIO_OUTPUT_ACTIVE);
gpio_pin_set_dt(&con_led, 0);
} else {
LOG_ERR("Error: LED device %s is not ready\n", con_led.port->name);
return -1;
}

if (gpio_is_ready_dt(&act_led)) {
gpio_pin_configure_dt(&act_led, GPIO_OUTPUT_ACTIVE);
gpio_pin_set_dt(&act_led, 0);
} else {
LOG_ERR("Error: LED device %s is not ready\n", act_led.port->name);
return -1;
}
return 0;
}
Related