Adafruit Feather nrf52840: High power consumption (~1mA) in deep sleep

Hi,

I am using zephyr v4.3.0, and have compiled the "https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/boards/nordic/system_off" sample to

run it on a Adafruit Feather nrf52840 (which is from year 2021 AFAIR)

The board is powered through the 3.3v pin (so the LDO is not used), and I use the Nordic PPK2 to measure the current.

I have disabled the uart console.

I have just modified the sample to wait 3 secs before entering sleep.

When entering sleep, the consumption never goes below 1 mA.

What I have attempted is to force the NeoPixel POWER and DATA GPIOs (with a hog in device tree)  with no much better success.

This consumption is far from the expected tens of micro amperes, what can be possibly wrong ?

Thanks !

  • Hi there,

    So not sure which version, they refreshed it so , YMMV

    The high current consumption is likely due to other components on the Feather board that are not powered down, most notably the onboard USB-to-Serial converter and potentially other peripheral components like the QSPI flash and power-on LED.

    We USE the XIAO nRF52840 and can get down to 2ua, sleep easy. Check out the Seeed Studio Forum for Code and Video's, using the PPK2 also. We have the POWER Ninja @msfujino in the user support group who is absolutely the man on shaving the power.

    Zephyr Configuration: Ensure all non-essential peripherals in your Zephyr configuration are disabled, not just the UART console. This includes things like I2C, SPI, ADC, etc., if not used.

    • Solution: In your prj.conf file, add configuration options to disable unused peripherals (e.g., CONFIG_I2C=n, CONFIG_SPI=n). You should also enable power management features:

    CONFIG_PM_DEVICE=y
    CONFIG_SYS_POWER_MANAGEMENT=y
    CONFIG_PM_STATE_SOFT_OFF=y

    I know the System_off sample includes these , but double check you prj.

    We usually shut down the Dc/DC regulator and the External Flash(sleep) and that makes a huge dif , AFAIR - 4ma.

    https://forum.seeedstudio.com/t/sleep-current-of-xiao-nrf52840-deep-sleep-vs-light-sleep/271841?u=pj_glasso

    HTH

    GL Grin PJ V

  • Hi Thierry,

    I see you've already gotten some good tips from PJ here. I agree that there might be things on the Adafruit board that we're forgetting about here and need to explicitly disable. Another "unknown" here is the code - if you are running plain Zephyr there might be something new in this version that doesn't work the way it should on the nRF52840. This is likely not the case, but just to make sure, it would be an idea to test a project from the nRF Connect SDK. We do not necessarily do tests on other code than that. Have a look at this project for instance, and compare your PPK results with what you see in the description.

    and I use the Nordic PPK2 to measure the current.

    Could you show me a screenshot of what you see there?

    Regards,

    Elfving

  • Hi Elfving,

    Thanks to PJ as well for the tips. PJ, unless I am wrong there is no USB to serial converter on that board.

    I have check that CONFIG_I2C & CONFIG_SPI are both disabled. I will try with nRF SDK, which was something I did not consider yet, because I have a codebase that has to work on other boards.

    Here is the asked screenshot:

    As you can see, the consumption does not really change a lot when entering sleep (after 3 seconds).

    My plan is now:

    - switch to nRF SDK

    - Unsolder the LDO (I wonder if there if a current leak through it via the output pin)

    Regards

    Thierry

  • After having removed the RT9080 from the PCB, the consumption in sleep is now 38uA. It is still not  the 2uA that PJ has, but a good step forward. 

  • Sounds good!

    EDIT: Didnt see your newest reply. 

    Great, then the LDo did indeed play a big role. Did you try NCS yet?

Related