Thingy:91x power consumption.

Hi I’m looking for some advice on what may be drawing power from the thingy 91x.

I have measured the power consumption of the nrf91 the nRF 5340 and the nRF 7002 using the power profiler and the power breakout board supplied.

the usage reported for each component when swd and usb disconnected is a very low 30-40 uA for the nRF in idle, 0 for the nRF 7002 in disabled and, 3 - 4 uA for the nRF 5340.

However when measuring with an oti profiler providing power as if it were the battery then I am seeing a combined compunction of around 500uA.

My guess was this was some peripheral drawing power. So I tried Cutting the solder jumpers providing Vcc 5v to these but still had the same 500uA draw. 

Any Ideas as to what is drawing the power, and any way I can reduce or eliminate this.

Thanks

  • Hello, 

    Are you running the same application for both measurements i.e. when measuring on the current measurement and debug board, and the "battery connection"?

    What application are you running during measurements? Could you please provide more information about your test setup?

    Thanks! 

    Kind regards,
    Øyvind

  • I am running the application. Whilst taking measurements at the same time. The nRF measurements using the breakout board with the Nordic power profiler running in ammeter mode and the oti connected to the battery connector with the thermistor in the battery connected between yellow sense wire and ground. The Oti is supplying 4.2v.

    I am running the connectivity bridge software on the nRF5340 and the Multi Service example on the nRF9151. This multi service example is using the coap , coap provisioning, coap minimum and external flash overlays and the additional sysconfig file enabling external flash. I have also made some modifications to the serial config to reduce power usage by the serial port. Basically the same as the lpuart examples. I will post the overlay an conf files in the morning.

  • # Rate of cloud interactions
    # These are faster than one normally would use in a low power device.
    # This is strictly for demo purposes.
    CONFIG_SENSOR_SAMPLE_INTERVAL_SECONDS=600
    # CONFIG_LOCATION_TRACKING_SAMPLE_INTERVAL_SECONDS=360
    CONFIG_COAP_FOTA_JOB_CHECK_RATE_MINUTES=60
    CONFIG_COAP_SHADOW_CHECK_RATE_SECONDS=3600
    
    # # Log level
    # # For more verbose and detailed log output, set the log level to
    # # CONFIG_MULTI_SERVICE_LOG_LEVEL_DBG=y instead.
    CONFIG_MULTI_SERVICE_LOG_LEVEL_DBG=y
    CONFIG_MULTI_SERVICE_LOG_LEVEL_INF=n
    
    # # Disable serial logging to ensure minimum power draw
    CONFIG_LOG=y
    CONFIG_LOG_BACKEND_UART=y
    CONFIG_SERIAL=y
    CONFIG_CONSOLE=y
    
    # # CONFIG_UART_INTERRUPT_DRIVEN=n
    CONFIG_UART_CONSOLE=y
    CONFIG_AT_HOST_LIBRARY=n
    CONFIG_TFM_LOG_LEVEL_SILENCE=y
    CONFIG_PM_DEVICE=y
    
    CONFIG_UART_INTERRUPT_DRIVEN=y
    CONFIG_UART_0_INTERRUPT_DRIVEN=n
    CONFIG_UART_1_INTERRUPT_DRIVEN=n
    
    CONFIG_UART_LINE_CTRL=n
    CONFIG_UART_ASYNC_API=y
    CONFIG_UART_0_ASYNC=y
    CONFIG_UART_1_ASYNC=y
    CONFIG_UART_USE_RUNTIME_CONFIGURE=y
    CONFIG_NRFX_UARTE0=y
    CONFIG_NRFX_UARTE1=y
    CONFIG_NRFX_TIMER1=y
    CONFIG_NRFX_TIMER2=y
    CONFIG_NRFX_PPI=y
    
    
    # # Disable most services
    CONFIG_LOCATION_TRACKING=n
    CONFIG_NRF_CLOUD_AGNSS=n
    CONFIG_MODEM_INFO=y
    CONFIG_MODEM_INFO_ADD_NETWORK=y
    CONFIG_NRF_CLOUD_PGPS=n
    CONFIG_NRF_CLOUD_PGPS_REQUEST_UPON_INIT=n
    CONFIG_NRF_CLOUD_ALERT=y
    CONFIG_NRF_CLOUD_LOG_DIRECT=n
    CONFIG_NRF_CLOUD_SEND_DEVICE_STATUS=y
    CONFIG_NRF_CLOUD_SEND_DEVICE_STATUS_NETWORK=y
    CONFIG_NRF_CLOUD_SEND_DEVICE_STATUS_SIM=y
    
    CONFIG_MODEM_INFO_ADD_SIM=y
    CONFIG_MODEM_INFO_ADD_SIM_ICCID=y
    CONFIG_MODEM_INFO_ADD_SIM_IMSI=y
    
    
    # CONFIG_NRF_CLOUD_FOTA=n
    # CONFIG_NRF_CLOUD_LOCATION=n
    
    CONFIG_COAP_FOTA=n
    CONFIG_COAP_SHADOW=y
    
    # Enable only temperature
    CONFIG_TEMP_TRACKING=n
    CONFIG_TEMP_DATA_USE_SENSOR=n

  • /*
    * Copyright (c) 2024 Nordic Semiconductor ASA
    *
    * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
    */

    #include <thingy91x_wifi.dtsi>

    / {
    aliases {
    temp-sensor = &bme680;
    ext-flash = &flash_ext;
    };

    chosen {
    // zephyr,console = &rtt0;
    // zephyr,shell-uart = &rtt0;
    // zephyr,uart-mcumgr = &rtt0;
    // zephyr,bt-mon-uart = &rtt0;
    // zephyr,bt-c2h-uart = &rtt0;
    };
    };

    &bme680 {
    status = "disabled";
    };

    /* Switch to nrf7000 emulation so that scan-only mode is used. */
    &nrf70 {
    status = "disabled";
    compatible = "nordic,nrf7000-spi";
    };

    &uart0 {
    compatible = "nordic,nrf-uarte";
    current-speed = <115200>;
    status = "okay";
    pinctrl-0 = <&uart0_default>;
    pinctrl-1 = <&uart0_sleep>;
    pinctrl-names = "default", "sleep";
    lpuart: nrf-sw-lpuart {
    compatible = "nordic,nrf-sw-lpuart";
    status = "okay";
    label = "LPUART";
    req-pin = <22>;
    rdy-pin = <23>;
    };
    };

    &pinctrl {

    uart0_default: uart0_default {
    group1 {
    psels = <NRF_PSEL(UART_TX, 0, 1)>,
    <NRF_PSEL(UART_RX, 0, 0)>;
    };
    };

    uart0_sleep: uart0_sleep {
    group1 {
    psels = <NRF_PSEL(UART_TX, 0, 1)>,
    <NRF_PSEL(UART_RX, 0, 0)>;
    low-power-enable;
    };
    };
    };


    // &gpiote {
    // status = "disabled";
    // interrupts = <49 NRF_DEFAULT_IRQ_PRIORITY>;
    // };


    &rtc0 {
    status = "okay";
    };

    &accel {
    status = "disabled";
    // zephyr,deferred-init;
    };

    &magnetometer {
    status = "disabled";
    // zephyr,deferred-init;
    };

    &adc {
    status = "disabled";
    };
  • > 500uA.

    That smells for the UART.

    In my experience some months ago , there is a difference in the power consumption measured via the breakout and via replacing the battery, if BLE function of the nRF5340 is on. But that difference is rather about 80µA than 500.

    And depending on the NCS version, there is also some energy penalty of about 300µA, if the used NCS is older (<= 2.6.2). You may fix that with the work-around in the other ticket or use a newer NCS (e.g. 2.9.2). 

Related