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

Is sending advertisements required even when notifications are registered?

I've a scenario where BLE central has registered for notifications on some characteristic of a BLE peripheral. The frequency of change in data of this characteristic is very low, may be once in 10 minutes meaning that this BLE peripheral will send notifications quite rarely. Now, say if the central device got reset and now wants data from the peripheral immediately.

What should be done here since the peripheral could be in sleep mode and would wake up and advertise for the notification only when its characteristic data changes?

Do I need to make the peripheral send periodic advertisements even when it has seen no change in its data, just to give an opportunity to the central device for making a connection and reading the data?

Won't these 'dummy' advertisements affect the peripheral's battery life?

What is the standard practice followed in such kind of scenarios?

  • This seems remarkably similar to your last question

    devzone.nordicsemi.com/.../

    "the peripheral could be in sleep mode and would wake up and advertise for the notification only when its characteristic data changes" shows you're somewhat confused about advertising mode vs connection mode. Advertisements are done before connection, after connection there are no advertisements, just read/write/notify/indicate and the devices exchange constant connection packets.

  • Thanks for your response on both my questions, RK. So does this mean that there is no other way than sending periodic advertisements just for the sake that central might need data anytime, even though these periodic advertisements would take a toll on the peripheral's battery life? Have you come across such scenarios?

  • You don't seem to have read what I wrote. If you are in connection there are no advertisements. The connection stays up because it regularly exchanges packets. If you are not in connection then you advertise at whatever frequency you like so things can connect to you. Those are they only two states.

    No advertisements --> no connection connection --> no more advertisements.

  • Okay. Thanks again, for the quick response! Now I've understood that if I don't want to waste power in periodic advertisements, I can think of keeping the connection active. But can I keep a connection active for so long, say 10 minutes? Won't it keep the RX and TX channels active consuming power and not letting the device go into sleep mode?

  • ok you really need to go and read some information about the BTLE protocol and how it works and how little information you can send or how much etc etc. so you understand the modes of operation.

    Even in connection, with no new data, the device spends 99% of its time asleep.

    Also go and look for the resource (Resources tab at the top of the screen) for the online power profiler. That will give you an idea of the power consumption for various scenarios of just advertising, in connection etc.

Related