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

Advertizing in low power mode

Hi,

I am developping a product with battery power. To preserve the battery life, this product needs to work in low power mode.

How can configure nRF51 to advert in low power mode ? The system must work < 10µA in low power mode.

Is there any example to put nRF51 in low power mode ?

Thanks.

Regards.

Xavier

Parents
  • first you need to understand that it will be impossible to be in low power mode if you have to do a continuous advertisement. How ever, you can minimize the current consumption by reducing the advertising timeout and increasing the advertising interval just as said. Now if you want to advertise at all times, I suggest you start advertising again as soon as your advertising timeout expires and your nrf51 enters the IDLE MODE. You can also use an app_timer to trigger the advertising after a certain period still when you enter the IDLE MODE. I can help you if you share your code on what you have done.

    Regards

    Joseph Ayuk

  • Hi,

    I tried with PCA10040 different measurements. With "ble_app_hrs" example, and "ble_app_uart" example. I measure the current consumption of the board after cutting SB9 connection.

    With "ble_app_hrs", there is advertizing with a low current of 3µA with a peak during advertisement.

    With "ble_app_uart", there is advertizing with a low current of 2mA with a peak during advertisement.

    What is the difference between both applications for the low current ?

    Regards,

    Xavier

  • Hi Xav,

    Can you give me the advertising timeout and the advertising interval of each of the examples (ble_app_hrs and ble_app_uart) ? In order to answer your question, I will need to know the values of these constants. Also give the modes of advertsing used by each example (fast mode, slow, directed etc...)

  • Hi Joseph,

    For "ble_app_uart" :

        - advertising timeout = 40ms

        - advertising interval = 180 seconds

        - mode of advertising : ble_adv_fast_enabled = true

    For "ble_app_hrs" :

        - advertising timeout = 187,5ms

        - advertising interval = 180 seconds

        - mode of advertising : ble_adv_fast_enabled = true

    It is the default values of examples give by Nordic.

  • Hi Xav,

    First I think you have reversed the values. The advertising interval is the time between each advertising event and the advertising timeout is used to tell the device for how long it should advertising. so if I can arrange the values, this is what we get:

    For "ble_app_uart":

    -advertising interval = 40ms

    -advertising timeout = 180 seconds

    For "ble_app_hrs":

    -advertising interval = 187,5ms

    -advertising timeout = 180 seconds

    OK from the value of the constants that you gave, it is clear that the "ble_app_hrs" uses less current than the "ble_app_uart". This is because the advertising interval for ble_app_hrs" is greater than that of "ble_app_uart". With an advertising interval of  180 seconds for both cases,

    -"ble_app_hrs" sends a total of 180/0.1875 = 960 advertising packets to the peer

    -"ble_app_uart" sends a total of 4500 advertising packets to the peer

    You can begin to see why the current consumption of one is greater than the other right?. Now if you want to reduce this, you can reduce your advertising timeout and increase your advertising interval.

  • Hi Joseph,

    Effectively, i have reversed the values. Sorry.

    I think that the uart module have a greater consumption. When I insert the uart module in "ble_app_hrs", the consumption is identical to "ble_app_uart".

  • The uart module has high current consumption when it is active.

    I need to stop the module to reduce consumption during advertising (app_uart_close()).

Reply Children
No Data
Related