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

NRF9160 Low power

Hi, I am strugling to get the power comsumption down to the number I have been reading on this forum. I followed the instruction of the dev kit manual. When measuring the current, the switch is in NRF only position.

Now, this blog post claims 7µA. The best I have achieved to this day is ~500µA using the sample here.

As far as I understand, the power on the 9160 is automatically handled by the ship (PMU?). That means very little is needed to lower current appart from not making the CPU active.

I did try to load a firmware that does nothing; A while loop with k_cpu_idle() with NRF_UARTE0_NS->TASKS_STOPRX = 1 to disable the UARTE rx and I am still seeing a lot of power drawn (order of mA). I also suspect that the cpu get awaken every 5 seconds by something.

Are you able to measure such a low power consumption internally with the latest firmware (the modem fw and dk are outdated)? 

If so, do you have any recommendation as to how to pinpoint where the power is used (gdb, probing pins.. etc)?

  • Hadrien Kohl said:
    Regarding requesting eDRX or PSM, I suppose it would be possible to get feedback from the modem right? I'd expect the lte_lc_psm_req() and lte_lc_edrx_req() to signal that they failed the negociation. I could give it a go. Are you open to PRs?

     Yes, take a look at the CEREG function for that after you have set the PSM mode. If you set CEREG to 4, you should be able to see the active time & periodic tau for PSM.  Yes, we are open to PRs.

  • Hadrien Kohl said:
    Is it correct to assume the modem will continue to send notifications, preventing the MCU to go into deep sleep?

     The CEREG command subscribes unsolicited network status notifications. That basically means that you can see what kind of network parameters the User Equipment (nRF91) discussed with the base station. Have you already set PSM? The MCU will go into deep sleep if it has nothing else to do. If the FW comes out of k_cpu_idle() every 20 seconds or so, something is waking it up. I do not believe it is the CEREG command. Is the eDRX interval set? Check by setting CEREG to 4 to see Active Time & Periodic Tau.

    Hadrien Kohl said:
    I saw somewhere on the forum a trick to disable rx/uart? Could this be related?

     I doubt it, but it may be worth a try.

    Hadrien Kohl said:
    Is it enough to send AT+CPSMS= or do I need to send AT+CFUN=0, AT+CPSMS= and then AT+CFUN=1?

     I am not sure you need to disable PSM when triggering a FOTA.

Related