KB: RSL10 How to force advertising random delay to be zero

Some customers want to use ADV as periodic data with fixed timing, maybe to transmit audio or some other type of data whose quality of service needs a fixed/known delay.

We known this:

T_advEvent = **advInterval** + **advDelay**
  • advInterval: multiple of 0.625 ms in the range of 20 ms to 10,485.759375 s.
  • advDelay: a pseudo-random value with a range of 0 ms to 10 ms generated by the Link Layer for each advertising event

Now we have an API which can force advDelay to be zero.
BLE_DeviceParam_Set_AdvDelay(uint8_t fixedDelayEnable)

For example:
BLE_DeviceParam_Set_AdvDelay(0);
Now addDelay is a random number (between 0 ms to 10 ms)

BLE_DeviceParam_Set_AdvDelay(1);
Now addDelay is zero (0ms)

HOW TO USE:

**This API needs to be called after Bluetooth Low Energy initialization (BLE_InitNoTL(0) or BLE_Init(0)); the application is now able to force advDelay to be zero instead of a random value, allowing for an advertisement event to happen at a fixed interval.**

NOTE:

"The advDelay parameter can be set to zero instead of a random value, allowing for an advertisement event to happen at a fixed interval. This is for applications that are not Bluetooth Low Energy compliant."

1 Like