Is lowest power consumption of 1.2uA possible using nrf52832 & SYSTEM_ON (s132, SDK17) for GATTS - Central

Hi nRF community,

I have a question regarding the lowest power consumption ever possible with nRF52832 chip.

I'm experimenting with power consumption using nRF52832 DK (PCA10040 1.2.1), talking to another nRF52832DK.

I run a central (based on GATTS example) scanning for my peripheral, I use SDK17.1 + S132.

The SDK is configured to have no logs and external interfaces, and most of the peripherals are disabled + I use DCDC.

After the BLE initialization is complete I set up the interrupt event for GPIOTE.

The entire thing is configured and run's properly for the BLE piece but I want it to have a smaller consumption while I'm in idle state (during __WFE()).

Before entering the main loop I call "  sd_power_mode_set(NRF_POWER_MODE_LOWPWR) " function and basicly wait for an event on the interrupt to start scanning.

Currently according to nRF PPK2 I'm consuming around 18 microamps, but the question is can I get it 10 times smaller, like 1.2 ~ 2 uA (microamps)?

What other peripherals I can disable if I use SoftDevice and BLE ? 

Regards, 

Dmytro.

  • Hi Edvin, sure I can share my code, I applied some additional efforts to get you the way to reproduce it.

    Not to deal with my messy experimental code I did some basic changes in the nRF SDK17 example for GATT's central that initially was used ( I took it from here "nRF5_SDK_17.1.0_ddde560\examples\ble_central\ble_app_gatts") and got pretty same result of ~22 uA. I also have added the snippet for state machine that does the scanning, added my interrupt pin init function and handler to trigger the state machine, added couple of variables and definitions and comented out couple of lines (attaching "main.c" in .zip). The most changes were made in the "sdk_config.h", they are the following (attaching my "sdk_config.h" file in .zip):

    BSP_BTN_BLE_ENABLED 0

    NRFX_POWER_ENABLED 1

    NRFX_UARTE_ENABLED 0

    NRFX_UART_ENABLED 0

    POWER_ENABLED 1

    POWER_CONFIG_DEFAULT_DCDCEN 1

    UART_ENABLED 0

    UART0_ENABLED 0

    APP_TIMER_ENABLED 0

    BUTTON_ENABLED 0

    NRF_LOG_BACKEND_UART_ENABLED 0

    NRF_LOG_ENABLED 0

    NRF_SDH_BLE_LOG_ENABLED 0

    NRF_SDH_LOG_ENABLED 0

    NRF_SDH_SOC_LOG_ENABLED 0

    PM_LOG_ENABLED 0

    To trigger the interrupt event - Dupont wire need to be applied from P0.27 to a VDD pin.

    To build the entire thing I use IAR IDE ( EWB 4 ARM 8.32.2 )

    So the question is - what else need to be done with the sdk.config or what ever in the code to make it consume 1.2 uA ?

    I did a quick test on my project and used "sd_softdevice_disable()" but have not noticed any change in the consumption, so the question is still open.

    Kind regards, Dmytro.

    ble_app_gatts.zip

  • Hello,

    Sorry for the late reply. I have not tested this yet, but I just wanted to let you know that this ticket is not forgotten. I will look into it as soon as I can.

    Sorry for the inconvenience.

    BR,

    Edvin

  • Hey Edvin, sure, take your time, I'm also doing some more of the research on the SoftDevice consumption optimization. Let me know if you have any ideas on that one.

    Regards,

    Dmytro.

  • Hello,

    Can you please zip and send the project folder that you are using? Please test it by unzipping it in an unmodified SDK to check that I will be able to compile it. 

    Regarding SoftDevice and power consumption, as long as you do not use any of it's features (advertising, scanning or being in a connection), it should not draw any extra current.

    Only having the two files that you provided, I will have to include all the extra files that are required to build it. While it is possible, I would need to do changes, and when doing those changes, I don't know if I end up with the same application that you are using.

    These are the initial build errors that I see:

    Try unzipping a completely unmodified SDK, and replace the main.c and sdk_config.h with the ones that you sent, and see what other changes that you did to make these errors go away.

    BR,

    Edvin

  • Hi Edvin, 

    Done. I have packed the entire project folder, and was able to get it compiling, flashing and working with no errors after unpacking prepared archive, attaching it here. I will also add my .hex just for the test on your end to chec the current consumption level for my build.

    Kind regards,

    Dmytro.

    ble_app_gatts_pca10040_s132_LP.hex

    hex
    3175.ble_app_gatts.zip

    zip

    iar build

Related