This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF9160 Low Power Example

Hi,

I'm currently trying to evaluate the nRF9160 for one of our projects.

One key requirement is the power consumption when using eDRX.

I have tried profiling the at_client sample, but the lowest I've manged with the nRF9160DK is about 900uAs.

Additionally, the power profile does not seem to show the expected paging windows when eDRX is configured.

Is there any low power example, or documentation which can help me with this?

  • Hi Håkon,

    I have tried your modifications from below but I'm still not seeing anything under about 880uAs. I have configured the device to use eDRX and I am able to see the paging events clearly in the power profile at the configured intervals. However, between the paging windows the current is a pretty constant ~880uAs.

    Is there something I'm missing with regards to getting the device down to ~30uAs?

    Software setup:

    Repositories (checked out tags are per the setup guide):

    • nfxlib & nrf -> v0.30
    • mcuboot & zephyr -> v1.3.99-ncs2

    Modifications:

    • secure_boot/prj.conf modifications:
      • CONFIG_UART_2_NRF_UARTE=n
    • asset_tracker/prj.conf modifications using your diff from below. 
    •  asset_tracker  'main' function starts with -> modem_configure(); while(1) k_sleep(1000);
    • asset_tracker autoconf.h modifications:
      • Added: #define CONFIG_LTE_EDRX_REQ 1
      • Modified: #define CONFIG_LTE_EDRX_REQ_VALUE "0100" // ~61s eDRX interval
    • zephyr/scripts/kconfig/kconfig.py USE_AT_HOST added whitelist.

    Hardware setup:

    • Powered (and profiled) through the P24 header.
    • SB44 has been cut.

    p.s.  I have also tried skipping the modem_configure() call in at the start of the main function, this did not make any difference.

  • You need to disable serial (CONFIG_SERIAL=n) in both secure_boot and the non-secure application in order to achieve low consumption in sleep.

    As mentioned, I also see a high current consumption after requesting PSM/eDRX, so there's something fishy in our process of enabling PSM/eDRX. I have highlighted this issue internally, and it will be looked at in the upcoming weeks.

  • I'm afraid adding (CONFIG_SERIAL=n) to secure_boot/prj.conf does not help in fact it seems to break something. The power profile now just shows a steady 9.55mAs. Normally, the power profile shows a lot of initial activity followed by a lower power state with regular brief spikes (watchdog?). 

  • Hi,

     

    In order to enable PSM/eDRX, you have to wait a given amount of time before its registered in the network. This can take some seconds (didn't measure, but took maybe 10-20 seconds?), where the power consumption should be lowered after that. As mentioned, we seem to have issues in the way we enable PSM/eDRX in our sources, as I am not able to get below 1 mA area.

    Kind regards,

    Håkon

  • Hi Hakon,

    Here is the output from the profiler I am using.

    The first image shows an average current of ~860uAs between the eDRX paging windows. You can also see the initial registration activity and the regular eDRX paging windows:

    The second image is after using (CONFIG_SERIAL=n) with secure_boot and the same modified version of asset_tracker as used above. It is clear that the boot loader fails to load the main firmware:

Related