NRF9160 in sleep mode over 1 mA current consumption

Hello Nordic,

we want to use the nrf9160 to measure some stuff and send data to a server while being battery powered. Therefore we need the lowest power consumption possible.

To get straight into the problem:I flashed it (via Bootloader) with a bare minimum of code to check and understand the current consumption, but eventough everything is deactived (especially Uart, which seem to be a common problem) it consumes about 1.27 mA. The nrf9160 is mounted on the Actinius Icarus board, nothing more connected to it.

Now you might think, the problem is the Icarus board. But if I set

NRF_REGULATORS->SYSTEMOFF = 1;
... the current will drop to 33 uA (This is still unexpected high, but the Icarus board features some devices which might be the reason for it)

So the question is, why does it consume so much power when being in idle mode?

main.c

#include <zephyr.h>
#include <sys/printk.h>

void main(void)
{
	k_sleep(K_SECONDS(20));
	NRF_REGULATORS->SYSTEMOFF = 1;
}

proj.conf

CONFIG_GPIO=n
CONFIG_LOG=n
CONFIG_CONSOLE=n
CONFIG_UART_CONSOLE=n
CONFIG_RTT_CONSOLE=n
CONFIG_USE_SEGGER_RTT=n
CONFIG_LOG_BACKEND_RTT=n
CONFIG_SERIAL=n
CONFIG_AT_HOST_LIBRARY=n
CONFIG_STDOUT_CONSOLE=n

# Zephyr Device Power Management
CONFIG_DEVICE_POWER_MANAGEMENT=y
CONFIG_PM=y

# Modem 
CONFIG_NRF_MODEM_LIB=y

#Boot
CONFIG_BOOTLOADER_MCUBOOT=y

also in the overlay file I set almost everything to deactivated:

&adc {
	status ="disabled";
};

&gpiote {
	status = "disabled";
};

&gpio0 {
	status = "disabled";
};

&uart0 {
    status = "disabled";   
};

&uart1 {
    status = "disabled";   
};

&uart2 {
    status = "disabled";   
};
&spi3 {
    status = "disabled";    
};

&i2c2 {
    status = "disabled";   
};

&timer0 {
	status = "disabled";   
};

&timer1 {
	status = "disabled";   
};

&timer2 {
	status = "disabled";   
};

&pwm0 {
    status = "disabled";   
};

Thanks for your help, I really appreciate it Slight smile

Moritz

Parents Reply Children
  • ok, I got it compiling now with the suggested lte_lc_power_off(). I had to change my proj.conf to the follwoing:

    #Boot
    CONFIG_BOOTLOADER_MCUBOOT=y
    
    #Serial
    CONFIG_SERIAL=n
    
    # NEWLIB C
    CONFIG_NEWLIB_LIBC=y
    
    # Zephyr Device Power Management
    CONFIG_DEVICE_POWER_MANAGEMENT=y
    CONFIG_PM=y
    
    # Modem 
    CONFIG_NRF_MODEM_LIB=y
    CONFIG_NET_SOCKETS=y
    
    # Network
    CONFIG_NETWORKING=y
    CONFIG_NET_NATIVE=n
    CONFIG_BOARD_SELECT_SIM_EXTERNAL=y
    
    
    # LTE link control
    CONFIG_LTE_LINK_CONTROL=y
    CONFIG_LTE_NETWORK_MODE_LTE_M=y
    CONFIG_LTE_AUTO_INIT_AND_CONNECT=n

    But the current draw is still the same: 1.27 mA

    Do you have any more ideas?

    Thank you very much :)

  • Hello,

    I am thinking to look at your setup. You can send a picture of the measurement setup. I also would like to know how the setup is connected and what you are using to measure the current. 

    Thanks. 

    Best Regards,

    Kazi Afroza Sultana

  • It is super basic. I attached pictures of two configurations I tried. The battery configuration seems to be the most efficient. When powering through the 5V port is seems to have a much higher Regulators_systemoff current, thats why I always took the battery configuration.

    I am using a standard multimeter (Voltcraft VC185), it can measure down to 0,1 uA.

    The fact that I can bring down the current to 33uA in battery configuration via software tells me, that there might be still a problem in software. But I am open for all ideas :)

  • Hello,

    The nRf9160 mounted on the board is seen in this picture is revision B0. This is old and will not work with the newer modem FW and SDK. There is difference how the modem is turned on and off between the B0 and the newest B1 version. You can get a newer version if your board has the B0 one.

    Looking at the datasheet I think you can try to use VBAT as measurement place not USB.  

    You can see USB is connected to FTDI chip, so its better not to power up that. 

    Thanks.

    Best Regards,

    Kazi Afroza Sultana

  • That is a good hint! Thanks for spotting it. I indeed have a B0 version, the new version will arrive soon.

    Nevertheless, I think the current is too high, even for the first version and also we dont want to throw the old version.

    Which FW and SDK do you recommend for B0?

    And how can I control the modem in version B0?

    I will focus on measuring current through VBAT now.

    Best regards,

    Moritz

Related