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

Best possible strategy for deep sleep and awakening

Hello,

I'm working on NRF9160-DK.
I would like to be able to put the card to sleep in the deepest sleep possible to be able to save as much energy as possible and to wake it up if the state of one of my 3 inputs changes (button press, accelerometer or other). What is the right strategy for falling asleep and waking up? k_sleep () or is there something better?
What orders of magnitude am I supposed to get for my NRF9160-DK in the best solution to sleep card?

Best regards,

Lecozahu

Parents
  • Hello, Lecozahu!

    It is possible to set the device in System OFF mode, being the deepest internal power saving mode. In this mode it's possible to wake the device through GPIO peripherals. However, in most cases I will recommend using power saving mode (PSM), if that is available from your network provider. This puts the modem in sleep, enabling low power operation. Interrupts can then be used to wake the device from PSM for transmissions. This blogpost may be helpful with regards to how PSM is used (there they use k_sleep()). 

    The reason I recommend PSM is that waking up from System OFF mode takes a long time, and consumes quite a lot of power as the connection to the LTE network has to be established again.

    For wake up on interrupts you can also take a look at this thread.

    The expected power consumption for the different modes are shown in the pictures below. Note that the floor current may vary with nRF9160 SiP generation and other factors.

    Modem:

    System OFF:


    Hope this is helpful!

    Best regards,
    Carl Richard

  • Thank you for your help, your answer helped me a lot.
    However I still have one or two questions, can we wake up with an RTC timer in the off system? it's noted that there 'can wake up only with the GPIOs and a reset but I want to be sure. If you can't, what is the minimum level allowing a revival with an RTC timer and a GPIO interrupt? Is that PSM  ?

    Best regards,

    Lecozahu

  • Hello, again!

    Good to hear that the answers were helpful. In System OFF mode only Reset and GPIO can wake up the device, the RTC is unavailable. As seen in the current consumption specifications I added in my previous comments the RTC is available as a wake up source, with a resulting minimum of 2.35µA. 

    System ON mode is not to be confused with PSM, which is a feature of the modem. The current used during PSM will add to the current used by the MCU. From our tests you can expect ~7µA with PSM in combination with System ON. Note that the modem in this case maintains connection to the network, saving power and time costs when waking up. My fellow engineer, Håkon, has done a quite good explanation of the Low Power modes in this thread

    Hope this is helpful!

    Best regards,
    Carl Richard

  • Hello !

    I forgot to answer... I'm sorry !!

    Thank you very much for your help, it helps me a lot

    Best regards

    Hugo LE COZANNET

Reply Children
  • No problem! Glad to hear that I could help!

    Have a nice weekend.

    Best regards,
    Carl Richard

  • Hello,


    I am more interested in the ON system.
    I have the impression that there are several ways to switch to "System ON": k_cpu_idle (), k_sleep (..) and sd_app_evt_wait (), WFE / WFI. Is there one better than the other? I would like to save as much energy as possible and wake up either on a timer or an interruption.
    Moreover, if I understood correctly, he wakes up at the slightest task. Is there a way to know if all the processes are stopped? Do you have an example ?

    Best regards,

  • Hello again,

    I have read several things since this message and I understand that the system ON is activated with WFE () and WFI () but one wakes up on an event or an interrupt and the other only on the interrupt ( WFI). So does WFI wake up on an RTC interrupt? Is the RTC what we see in the screenshot as MCUON1? Do you have an example of use of MCUON1 and wake up with RTC timer ?


    Thank you in advance.

    Best regards,

  • Hello again!

    I see. For the nRF9160 system ON mode is what I recommend! When entering sleep in k_sleep(...) is usually the way to go. When all threads are sleeping the application will enter an idle thread and go to System ON sleep. 

    You can read more about the Zephyr power management module in the documentation. It also contains info about device power management. However, we do not have a specific example showing all of this functionality, but I recommend looking at the customer code in this thread. This demonstrates how System ON mode can be used together with BLE functionality.

    Reach out if you wonder more about this.

    Best regards,
    Carl Richard

  • Hello again !

    I just have one last question, the current consumption indicated in MCUON1 (2.35µA), is well calculated for with k_sleep (I'm sure now) combined with the function lte_lc_offline () or with lte_lc_power_off ().

    I am sorry to insist but I have to be sure for the specification of the product.

    Also, I would like to have the choice between PSM (24h standby) and modem off if PSM is not available. Is there a way to test on the board if the psm is available (depending on the netwok) or should I use: lte_lc_psm_req and see if there is an error?

    Last question, can the power supplier of the NRF5284 go on the NRF9160DK?

    Thanks in advance,

    Best regards,

    Hugo LE COZANNET

Related