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

how to enter the low power mode and continue to advertise?

Hello,everyone. Now i have the board nrf52832 and i want it to enter the low-power mode but keep the the advertising. Now the measured current is 160uA, I think there should be a problem, here is the code. How can i do? i need your help...

    static void on_adv_evt(ble_adv_evt_t ble_adv_evt)
{
    uint32_t err_code;

    switch (ble_adv_evt)
    {
        case BLE_ADV_EVT_FAST:
            NRF_LOG_INFO("Fast Adverstising\r\n");
            err_code = bsp_indication_set(BSP_INDICATE_ADVERTISING);
            APP_ERROR_CHECK(err_code);
            break;

        case BLE_ADV_EVT_IDLE:	
//            sleep_mode_enter();
        	advertising_start();
            break;

        default:
            break;
    }
}

and the end of main function:

for (;;)
{

	if (NRF_LOG_PROCESS() == false)
	{
		power_manage();
	}

}
  • Hi

    Perhaps the 160uA is normal current consumption when you advertise, but that depends on your advertising interval. There is good information about the sleep modes of nRF52 in the nRF51 current consumption guide. The nRF51 and nRF52 use the same principles in this regard so information in the nRF51 current consumption guide should be valid for nRF52 also. To decrease current consumption when advertising you could increase the advertising interval, look at the "Tuning advertising parameters" in the nRF51 current consumption guide.

    You enter System On low power mode with call to power_manage() and you enter system off low power mode when you call sleep_mode_enter(). Look at the "Low power mode with BLE softdevice" section in the nRF51 current consumption guide to realize how the nRF52 enters system on sleep mode (which basically just disables the CPU) when it is advertising at the same time.

  • Hi Stefan!

    Thank you for your answer.I have read the “nRF51 current consumption guide”. I would like to know if I want to keep broadcasting while into low-power mode (assuming that all the other peripherals have been closed), the operation is correct ?

    If the operation is correct, I have another problem that whether the noly way to reduce the current is to adjust the broadcast interval now ?

    expect your reply...

  • If you stop advertising the nRF52 should be in System on low power mode and should consume about 2uA. If you can get the ~2uA when not advertising and not in connection, then there is nothing else consuming current on the nRF52. Then if you enable advertising and get the 160uA, then you know it is the advertising causing the 160uA current consumption.

    The advertising interval is the main factor of the consumption. Depending on your requirements for range, you can tune the TX power of the radio to reduce current consumption. Also remember to enable DCDC, which will reduce radio peak current consumption, given that you have DCDC schematics included in your PCB design. Also if you have limited payload in the advertising packet, that will reduce current consumption as there is smaller packets to send.

Related