Advertisement interval randomizing

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
StBa_721356
Level 5
Level 5
50 likes received 25 likes received 10 likes received

What is the advertisement interval randomizing range of the '36 and '37 chips?

The Bluetooth LE standard states that it should be in the range of 0...10ms but we only see variations of 0...5ms.

How can we change this so that is standard compliant?

0 Likes
1 Solution
Anonymous
Not applicable

As Jacob Torres right pointed out, it is not possible to change the range of the ADVdelay. We are not violating the spec. By generating a random number in the range 0-5, we are still in the range of 0-10. The spec does not say anything about the randomness being greater than 5ms.

Also it is to be noted that the concept of ADVdelay was introduced to prevent one device from being shadowed by another device, both having the same advertising interval and started advertising at the exact same instant. So, this should not critically affect your application.

View solution in original post

0 Likes
5 Replies
JacobT_81
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

Hi sbs

Unfortunately, there is no way to alter the range of randomization of advertising intervals.

Jacob

But doesn't this violate the BLE standard? Shouldn't it be 10ms instead of 5ms?

Here is the relevant part of the spec:

4.4.2.2 Advertising Interval

...

The advDelay is a pseudo-random value with a range of 0 ms to 10 ms generated by the Link Layer for each advertising event.

Can someone please clarify if the chip does meet the standard or not?

0 Likes
Anonymous
Not applicable

If i understand truly, i have changed adv interval 0-10 ms using this code below:

blecm_startAdv(

        HCIULP_ADV_NONCONNECTABLE_EVENT,                // non-connectable undirected advertisement

        16000,                                           // adv interval 10000 msec(adv time adjusting)

        HCIULP_ADV_CHANNEL_MAP_MASK,                    // all channels

        HCIULP_PUBLIC_ADDRESS,                          // int advAdrType,

        HCIULP_ADV_FILTER_POLICY_WHITE_LIST_NOT_USED,   // int advFilterPolicy,

        HCIULP_PUBLIC_ADDRESS,                          // int initiatorAdrType,

        NULL);                                          // UINT8* initiatorAdr

You can change adv interval using this code( 16000,                                           // adv interval 10000 msec(adv time adjusting)).

0 Likes

Hi buraki,

unfortunately your example only changes the interval itself but not its randomness.

0 Likes
Anonymous
Not applicable

As Jacob Torres right pointed out, it is not possible to change the range of the ADVdelay. We are not violating the spec. By generating a random number in the range 0-5, we are still in the range of 0-10. The spec does not say anything about the randomness being greater than 5ms.

Also it is to be noted that the concept of ADVdelay was introduced to prevent one device from being shadowed by another device, both having the same advertising interval and started advertising at the exact same instant. So, this should not critically affect your application.

0 Likes