<?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>Timeslot-API: how to minimize the effect of BLE</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/85684/timeslot-api-how-to-minimize-the-effect-of-ble</link><description>Hello, 
 in our device we use the Timeslot API to share a 802.15.4 based protocol with BLE, softdevice is S140 6.1.1. 
 Problem: the 802.15.4 protocol misses appr 10% of the slots it is requesting even if BLE is just advertising. I assume that this is</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 16 Mar 2022 11:34:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/85684/timeslot-api-how-to-minimize-the-effect-of-ble" /><item><title>RE: Timeslot-API: how to minimize the effect of BLE</title><link>https://devzone.nordicsemi.com/thread/358392?ContentTypeID=1</link><pubDate>Wed, 16 Mar 2022 11:34:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c9a7c6cf-9584-4a14-b123-c726cf5527db</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;There are examples that uses thread and zigbee only, without BLE. In those cases the softdevice is not flashed, and the timeslots are not required. I am not completely sure how it works if you run the BLE+thread/zigbee examples and don&amp;#39;t start any BLE activity. I guess that the 802.15.4 stack would still request timeslots, but as the softdevice is not doing anything else, it will always accept them.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeslot-API: how to minimize the effect of BLE</title><link>https://devzone.nordicsemi.com/thread/358384?ContentTypeID=1</link><pubDate>Wed, 16 Mar 2022 11:18:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:78f67449-d98e-4e11-b04f-ab89e3c2fd4b</guid><dc:creator>rgrr2</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;thanks for the explanation.&amp;nbsp; Is it possible, that the Softdevice is needing timeslots even if BLE is disabled?&amp;nbsp; I mean despite for flashing.&lt;/p&gt;
&lt;p&gt;Kind regards&lt;/p&gt;
&lt;p&gt;Hardy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeslot-API: how to minimize the effect of BLE</title><link>https://devzone.nordicsemi.com/thread/357994?ContentTypeID=1</link><pubDate>Mon, 14 Mar 2022 14:41:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:40042ac8-537f-444e-95d8-1f90b86e0c61</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Hardy,&lt;/p&gt;
&lt;p&gt;The softdevice will run on the highest priority, and the 802.15.4 will request timeslots in between the scheduled BLE activities. In reality, the 802.15.4 will run 100% of the time, except when the Bluetooth Low Energy (BLE) stack is actively using the radio. The &amp;quot;issue&amp;quot; is that packets that are not yet transmitted/received 100% will be interrupted when the BLE stack is taking over.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Since BLE is running on top priority, it is worth knowing that all BLE activity you add will take the time from the 802.15.4 stack. In other words, doubling the advertising interval will interrupt the 802.15.4 stack twice as much, and a short BLE connection interval instead of a long BLE interval (if you are using connections) will do the same&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeslot-API: how to minimize the effect of BLE</title><link>https://devzone.nordicsemi.com/thread/357762?ContentTypeID=1</link><pubDate>Fri, 11 Mar 2022 20:58:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fc24fd3d-48ed-4175-8483-7ca8d1d6168a</guid><dc:creator>rgrr2</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;I have to apologize for wasting your time.&amp;nbsp; The fault was on my side: the function changing the advertise interval was immediately overridden by another function which sets the interval to 152.5ms, so I have measured always against a constant advertisement interval.&amp;nbsp; To bad.&lt;/p&gt;
&lt;p&gt;After correcting this, it &amp;quot;worked&amp;quot; as expected: timeslot misses are now somehow correlated with advertising interval.&lt;/p&gt;
&lt;p&gt;So at least I can confirm, that advertising does influence the timeslots you can expect to get.&lt;/p&gt;
&lt;p&gt;But still one question: does that mean, that advertisements have a high priority?&lt;/p&gt;
&lt;p&gt;Thanks &amp;amp; kind regards&lt;/p&gt;
&lt;p&gt;Hardy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeslot-API: how to minimize the effect of BLE</title><link>https://devzone.nordicsemi.com/thread/357619?ContentTypeID=1</link><pubDate>Fri, 11 Mar 2022 11:24:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5504c437-7577-4222-b488-edd50e338701</guid><dc:creator>rgrr2</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;the 802.15.4 protocol is requesting timeslots according to its schedule.&amp;nbsp; Length of a single slot is 10ms, but the timeslot request algorithm tries to get longer ones with a multiple of 10ms.&amp;nbsp; The 802.15.4 protocol is requesting around 10 slots / second (not evenly distributed), actually not that much.&lt;/p&gt;
&lt;p&gt;The timeslot misses are determined by simple statistic counting: if the timeslot was successfully assigned (got NRF_RADIO_CALLBACK_SIGNAL_TYPE_START), a status bit is set.&lt;/p&gt;
&lt;p&gt;The 802.15.4 routines then checking, if the timeslot is available for radio operation or not and do the statistic counting.&lt;/p&gt;
&lt;p&gt;As said for BLE enable we get around 10% timeslot misses, without BLE there are around 2% misses.&lt;/p&gt;
&lt;p&gt;BLE advertising interval can be changed from 300ms .. 3000ms without changes in this timeslot misses.&lt;/p&gt;
&lt;p&gt;Connection parameters via sd_ble_gap_ppcp_set() can also be varied, no change in the timeslot misses as well.&lt;/p&gt;
&lt;p&gt;Length of the advertise packet is 31 bytes.&lt;/p&gt;
&lt;p&gt;As said already: the parallel operation BLE/802.15.4 works fine (but more fine, if BLE is disabled).&amp;nbsp; To make it clear: radio connection works for both BLE on and off, but those timeslot misses are preventing the 802.15.4 protocol from receiving unacknowledged packets (broadcasts) too often.&lt;/p&gt;
&lt;p&gt;Any suggestion are greatly appreciated.&lt;/p&gt;
&lt;p&gt;Kind regards&lt;/p&gt;
&lt;p&gt;Hardy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timeslot-API: how to minimize the effect of BLE</title><link>https://devzone.nordicsemi.com/thread/357577?ContentTypeID=1</link><pubDate>Fri, 11 Mar 2022 09:26:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf4e2af5-eb3e-4ea8-bb38-25e557883f10</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user=""]the 802.15.4 protocol misses appr 10% of the slots it is requesting even if BLE is just advertising[/quote]
&lt;p&gt;How do you determine this? (I am not doubting it, but I just want to know what observations you base this conclusion on). Does it also mean that it misses 10% of the radio time, or is it rescheduled?&lt;/p&gt;
&lt;p&gt;And what are your advertising parameters? How often, and how much (approximate payload length) are you advertising?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>