<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Precision of an advertising interval and clock calibration</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/117046/precision-of-an-advertising-interval-and-clock-calibration</link><description>Hello, I got a custom board based on nRF52840. It uses extended BLE advertising to deliver a sensor data to the central hub with a frequency of 10 Hz. I&amp;#39;ve set the interval_max to 100ms/0.625 = 160, and interval_min to 159, as by the BT spec they cannot</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 11 Dec 2024 16:37:34 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/117046/precision-of-an-advertising-interval-and-clock-calibration" /><item><title>RE: Precision of an advertising interval and clock calibration</title><link>https://devzone.nordicsemi.com/thread/514593?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2024 16:37:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:edf77814-1ad6-4f5f-a167-fb275456ad48</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Paskin,&lt;/p&gt;
&lt;p&gt;In requirement language, &amp;quot;should&amp;quot;&amp;nbsp;means not mandatory, but recommended. &lt;br /&gt;In the Bluetooth Core Specification, this is&amp;nbsp;described in&amp;nbsp;Vol 1, Part E, Section 1, Language Convention.&lt;/p&gt;
&lt;p&gt;So, you can use the same value. The reason for not doing so is explained in the text you quoted.&lt;/p&gt;
&lt;p&gt;However, it doesn&amp;#39;t seem like permitting a range is of&amp;nbsp;interest to you any way, considering that you want exact timing.&lt;/p&gt;
&lt;p&gt;For exact timing, you can look into the Periodic Advertising feature. It does require the scanner to also support Periodic Advertising.&lt;br /&gt;You can read more about it here:&amp;nbsp;&lt;a href="https://www.bluetooth.com/blog/periodic-advertising-sync-transfer/"&gt;What You Need to Know About Periodic Advertising Sync Transfer | Bluetooth&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/00ae.svg" title="Registered"&gt;&amp;#x00ae;&lt;/span&gt; Technology Website&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Precision of an advertising interval and clock calibration</title><link>https://devzone.nordicsemi.com/thread/514591?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2024 16:19:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:293663ef-1b78-4cb1-a7eb-67dc04345db2</guid><dc:creator>Paskin</dc:creator><description>&lt;p&gt;Hello Hieu,&lt;br /&gt;&lt;br /&gt;Thanks for your response.&lt;/p&gt;
&lt;p&gt;By &amp;quot;BT Spec&amp;quot; I referred to the comment in NRF Connect header v.2.5.1/zephyr/include/zephyr/bluetooth/bluetooth.h, which in lines 739-740, as well as 748-749 reads:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Maximum Advertising Interval should not be the same value (as stated in Bluetooth Core Spec 5.2, section 7.8.5)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Referred section of the Core Spec - contains the following sentence:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Advertising_Interval_Min and&amp;nbsp;Advertising_Interval_Max should not be the same value to enable the Controller to determine the best advertising interval given other activities.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Considering your comment about random delays - Is there a way to&amp;nbsp;send advertisements with the constant interval? I am trying to implement a sensor, which - when triggered - transmits readings as frequently as possible and with high precision of a time line. Unfortunately, it cannot know who is listening and there could be multiple listeners as well (i.e. directed advertising is not possible).&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Please advise.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Precision of an advertising interval and clock calibration</title><link>https://devzone.nordicsemi.com/thread/513820?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2024 12:45:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b0cca1cd-d52c-46a8-8e6a-c7d8b147717a</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Paskin,&lt;/p&gt;
&lt;p&gt;It&amp;#39;s great that you have referred to the BT specification to find your answer. There seems to be some misunderstanding, and I would be happy to help clear them up.&lt;/p&gt;
[quote user=""]I&amp;#39;ve&amp;nbsp;set the interval_max to 100ms/0.625 = 160, and interval_min to 159, as by the BT spec they cannot be equal (setting to 160 doesn&amp;#39;t change the picture though).[/quote]
&lt;p&gt;The Bluetooth spec does not require Connection Interval Min to be smaller than Connection Interval Max at all. All specifications are along the line of &amp;quot;min shall not be greater than max.&amp;quot;&lt;/p&gt;
&lt;p&gt;Refer to Vol 4, Part E, 7.8.5, LE Set Advertising Parameters.&lt;/p&gt;
[quote user=""]In the test, conducted against Linux machine - I see that the distance between the received packets is ~103-105 ms (average over ~1000 packets). I can tweak it to become 100 by reducing the interval value by 5-7 0.625th - but the correction has to be found individually for each board instance.&amp;nbsp;[/quote]
&lt;p&gt;There is a random 0-10ms delay added to every advertising event.&amp;nbsp;That&amp;nbsp;is why you see the average interval between advertising packets being about 105ms.&lt;/p&gt;
&lt;p&gt;Refer to Vol 6, Part B, 4.4.2.2.1 Advertising interval.&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>