- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi sbs
Unfortunately, there is no way to alter the range of randomization of advertising intervals.
Jacob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi buraki,
unfortunately your example only changes the interval itself but not its randomness.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.