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

Advertisement interval and data transmission in Mesh

Hello,

I am building an application where client sends a fixed number of packets (10Bytes/packet) to a server with different values of advertisement interval. I changed the value of BEARER_ADV_INT_DEFAULT_MS from 20ms to 2000ms. 

As the value of BEARER_ADV_INT_DEFAULT_MS changes from 20 to 2000ms the packet drop rate increases from 0 to 80%. 

The values of BEARER_SCAN_INT_DEFAULT_MS and BEARER_SCAN_WINDOW_DEFAULT_MS were kept constant to 2000ms. 

Can anyone please explain the reason of this increase in packet drop?

Regards,

Sameer  

Parents
  • May I ask why you want to change the default advertisement interval? If you want to reduce current consumption, beware that Bluetooth Mesh is not a low power solution. The relay nodes need to have their radios on to listen for incoming messages. Therefore, by changing the advertising interval, I do not believe you will save a lot of power. You do have a low power node functionality in Bluetooth Mesh, which may also be relevant for your usecase.

    If you do not require a mesh functionality, but want low power, I would consider looking at our multilink example, where you can connect one central device to multiple peripheral devices. It's located in our nRF5 SDK.

    Back to your question: having a BEARER_ADV_INT_DEFAULT_MS of 20 means that you are sending an advertising packet every 20 ms. When you increase this to 2000, you start sending every 2 seconds instead.

    The BEARER_SCAN_INT_DEFAULT_MS of 2000 means that you start scanning every 2 seconds. Since the BEARER_SCAN_WINDOW_DEFAULT_MS (scan window) is also equal to 2 seconds -> the radio is on almost 100% of the time to listen for incoming advertising packets.

    Every scan interval, the scanning device will change the advertising channel (can take a few 100 us). When this occurs, you may lose packets. Maybe you are sending messages around the same time as the receiving device switches the advertising channel? What happens to the packet drop rate when you set the advertising interval to e.g. 1 second?

Reply
  • May I ask why you want to change the default advertisement interval? If you want to reduce current consumption, beware that Bluetooth Mesh is not a low power solution. The relay nodes need to have their radios on to listen for incoming messages. Therefore, by changing the advertising interval, I do not believe you will save a lot of power. You do have a low power node functionality in Bluetooth Mesh, which may also be relevant for your usecase.

    If you do not require a mesh functionality, but want low power, I would consider looking at our multilink example, where you can connect one central device to multiple peripheral devices. It's located in our nRF5 SDK.

    Back to your question: having a BEARER_ADV_INT_DEFAULT_MS of 20 means that you are sending an advertising packet every 20 ms. When you increase this to 2000, you start sending every 2 seconds instead.

    The BEARER_SCAN_INT_DEFAULT_MS of 2000 means that you start scanning every 2 seconds. Since the BEARER_SCAN_WINDOW_DEFAULT_MS (scan window) is also equal to 2 seconds -> the radio is on almost 100% of the time to listen for incoming advertising packets.

    Every scan interval, the scanning device will change the advertising channel (can take a few 100 us). When this occurs, you may lose packets. Maybe you are sending messages around the same time as the receiving device switches the advertising channel? What happens to the packet drop rate when you set the advertising interval to e.g. 1 second?

Children
No Data
Related