Adafruit Feather nrf52840 Express Power Usage

When using the adafruit feather nrf52840, the lowest I can seem to get power usage is around 400uA (including with the boards/nordic/poweroff sample).

This is my device overlay file:

&radio {
        zephyr,pm-device-runtime-auto;
};

&gpio0 {
        status = "okay";
        label = "GPIO_0";
        sense-edge-mask = <0xffffffff>;
};
&gpio1 {
        status = "okay";
        label = "GPIO_1";
        sense-edge-mask = <0xffffffff>;
};

/{
        zephyr,user {
                latch-en-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
                wp-gpios = < &gpio0 8 GPIO_ACTIVE_LOW>;
                hold-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
        };
        leds {
                compatible = "gpio-leds";
                blue_led: led_0 {
                        gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
                        label = "Blue LED (D7)";
                };
        };

};

&i2c1 {
        lis2dh@18 {
                compatible = "st,lis2dh";
                reg = <0x18>;
                label = "LIS2DH";
                irq-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>, <&gpio0 30 GPIO_ACTIVE_HIGH>;
                disconnect-sdo-sa0-pull-up;
        };
};

&ieee802154 {
        status = "disabled";
};

&pinctrl {
    spi2_default: spi2_default {
                group1 {
                        psels = <NRF_PSEL(SPIM_SCK, 0, 21)>,
                                <NRF_PSEL(SPIM_MOSI, 0, 20)>,
                                <NRF_PSEL(SPIM_MISO, 0, 24)>;
                };
        };

        spi2_sleep: spi2_sleep {
                group1 {
                        psels = <NRF_PSEL(SPIM_SCK, 0, 21)>,
                                <NRF_PSEL(SPIM_MOSI, 0, 20)>,
                                <NRF_PSEL(SPIM_MISO, 0, 24)>;
                        low-power-enable;
                };
        };
};

&spi0 {
        status = "disabled";
};

&spi1 {
        status = "disabled";
};

&spi3 {
        status = "disabled";
};

&qspi {
        status = "disabled";
};

&rng {
        status = "disabled";
};
&temp {
        status = "disabled";
};
&usbd {
        status = "disabled";
};
&i2c0 {
        status = "disabled";
};
&uart0 {
        status = "disabled";
};
&wdt {
        status = "disabled";
};

And my prj.conf:

# General
CONFIG_HEAP_MEM_POOL_SIZE=65536

# power management & savings
#CONFIG_PM=y # should not work on nrf52840
CONFIG_PM_DEVICE=y
CONFIG_PM_DEVICE_RUNTIME=y
CONFIG_PM_DEVICE_SYSTEM_MANAGED=y # only in zephyr 3.7.0

CONFIG_SERIAL=n
CONFIG_UART_CONSOLE=n

# some more low power
CONFIG_FLASH=n
CONFIG_SPI=y
CONFIG_I2C=y
CONFIG_USB_DEVICE_STACK=n
CONFIG_BOOT_BANNER=n
CONFIG_CONSOLE=n
CONFIG_DEBUG=n

# enable low freq clocks
#CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
#CONFIG_CLOCK_CONTROL_NRF_K32SRC_50PPM=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y #this will not be valid for all devices
# lower tick rate
#CONFIG_SYS_CLOCK_TICKS_PER_SEC=100

# Logging
CONFIG_LOG=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG_BACKEND_UART=n


# Bluetooth 
CONFIG_BT=y

## Sensing
CONFIG_BT_OBSERVER=y
CONFIG_BT_SCAN=y
CONFIG_GPIO=y
CONFIG_ADC=y
CONFIG_ADC_NRFX_SAADC=y

## Broadcasting

CONFIG_BT_DEVICE_NAME="s_beacon"
CONFIG_BT_BROADCASTER=y
CONFIG_BT_PERIPHERAL=y

400uA still seems quite high to me. Is there anything I haven't thought of?

Related