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

Thingy91 LTE BLE Gateway Power Profile

Hello,

I am currently working on a project that is set up similar to the Thingy91 LTE BLE Gateway application (Bluetooth HCI UART firmware running on nRF52840) and I am curious what the expected minimum power consumption would be in this configuration.

For preparation to the response to this ticket, I have searched and found the blog post detailing the power consumption on the nRF91 development kit titled, "Measuring PSM idle current on the nRF91 DK" but that is focused solely on the lowest possible base power consumption on the nRF91 development kit with LTE-M PSM and the standard firmware on the nRF52. The blog post was very informative but not exactly tailored to my specific use case (Thingy91/HCI UART).

In my project, I am utilizing the project/patches provided by Sigurd in the following DevZone ticket: https://devzone.nordicsemi.com/f/nordic-q-a/52689/nrf9160-lte-sensor-gateway-on-thingy-91/225659#225659.

When put on a power profiler, I am seeing quite a large draw (1.5-2.0mA) when sitting idle (PSM/eDRX negotiated with carrier on LTE-M). I suspect this might have to do with the UART peripheral remaining enabled with the bluetooth hci uart firmware running on the nRF52840. I have stripped my project down to the bare bones, turned off as much as I could in the project configuration (prj.conf) and even then I can't get the power consumption down. Even turning off serial, I can only get the Thingy91 down to about 500uA. Has Nordic done any power profiling in this configuration (Idle/Sleeping nRF9160 application with HCI UART on nrf52)? Does Nordic have a project that demonstrates low power consumption on the Thingy91?

If my suspicion is correct and its the UART peripheral keeping the power consumption high, is there anything I can do during runtime to disable/enable the bluetooth HCI uart dynamically?

Please advise.

Thanks,
Cody

Parents
  • To turn off UART on nRF91 add the CONFIG_SERIAL=n to prj.conf in both the application folder and in the samples/nrf91/spm folder.

    You can also power the nRF91 and the nRF52 separately on the P1 and P2 header to see where the current is drawn.

    I've not measured any current on the HCI UART example yet, but if the UART is enabled all the time on the nRF52840, 500uA sounds reasonable. I can try to reproduce it here.

Reply
  • To turn off UART on nRF91 add the CONFIG_SERIAL=n to prj.conf in both the application folder and in the samples/nrf91/spm folder.

    You can also power the nRF91 and the nRF52 separately on the P1 and P2 header to see where the current is drawn.

    I've not measured any current on the HCI UART example yet, but if the UART is enabled all the time on the nRF52840, 500uA sounds reasonable. I can try to reproduce it here.

Children
  • Hey Stian,

    Thank you for the reply. Sorry if there was a misunderstanding, I am seeing 500uA with CONFIG_SERIAL=n set in both the application folder and samples/nrf91/spm.

    I will try and power the nRF91 and nRF52 separately, that is a good idea, thank you for the suggestion.

    If you can try and reproduce locally and provide me with a baseline Thingy91 project that would be excellent.

    Thanks,
    Cody

  • Sorry if there was a misunderstanding, I am seeing 500uA with CONFIG_SERIAL=n set in both the application folder and samples/nrf91/spm.

    But the HCI_UART is still functional and running, correct ?

    If yes, you liklely need to turn off the UART / HCI_UART to reduce the current.

  • But the HCI_UART is still functional and running, correct ?

    No, not that I know of, I have commented out the entire main.c file and replaced the main function with:

    void main(void) {
        while (1) {
            k_cpu_idle();
        }
    }

  • Cody said:
    I have commented out the entire main.c file and replaced the main function with

    Is this on the nRF9160 or the nRF52840 ?

    Try setting these to configs to n:

    CONFIG_SERIAL=n
    
    CONFIG_UART_0_NRF_UARTE=n
    CONFIG_UART_1_NRF_UARTE=n
    
    CONFIG_CONSOLE=n
    
    CONFIG_LOG=n

  • Hey Sigurd,

    I am finally coming back to doing some power profiling on the Thingy91. I am using SB3/4 so that I can separate out the power domains and determine current draw from both the nRF52840 and the nRF9160. If I disable serial, logging and turn off both UARTE peripherals utilizing the config you posted above, it does appear that the power usage significantly drops.

    Unfortunately, because I am utilizing the nRF52840 as a HCI UART device, I am going to need to enable and utilize at least one of the UARTE peripherals for HCI UART. According to a separate DevZone ticket, it appears that the current draw I am seeing is what is expected with the UARTE peripheral enabled (https://devzone.nordicsemi.com/f/nordic-q-a/26030/how-to-reach-nrf52840-uarte-current-supply-specification/). According to the Nordic employee, Stian, on the ticket he states, "First of all, 0.8 mA (on nRF52840, no DCDC. 0.35 mA with DCDC enabled @3V) is the expected run current for the UARTE in RX or TX mode since HF clock is needed and the DMA bus is active."

    I guess my question is, because I don't need the the HCI UART controller to be active at all times, in fact it is rarely utilized, can the nRF52840 HCI UART firmware put the chip into a deep sleep mode or go into a low power state when the nRF9160 is not in need of bluetooth functionality?

Related