<?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>Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked</link><description>I&amp;#39;ve got another question concerning a timeslot application. 
 In our timeslot application which is based on the nRF Mesh SDK timeslot.c implementation I noticed that if a BLE connection is active with a connection interval of 7.5ms, the softdevice did</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 27 Oct 2021 09:09:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked" /><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/336133?ContentTypeID=1</link><pubDate>Wed, 27 Oct 2021 09:09:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:16937ffe-7859-4314-9a57-ee4201b49dfa</guid><dc:creator>Elfving</dc:creator><description>&lt;p&gt;Hey Anne!&lt;/p&gt;
&lt;p&gt;I&amp;#39;m glad this thread helped you out, and that you got help from Michael here as well. If you have further questions, it would be best if you started a new support ticket.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Elfving&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/334558?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2021 10:56:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:39f4d807-b14d-43aa-a7ec-5071fe6b24ed</guid><dc:creator>Anne van Rossum</dc:creator><description>&lt;p&gt;Ah, check! You&amp;#39;re right of course. It&amp;#39;s increasing `m_radio_request_earliest.&lt;span class="pl-smi"&gt;params&lt;/span&gt;.&lt;span class="pl-smi"&gt;earliest&lt;/span&gt;.&lt;span class="pl-smi"&gt;timeout_us&lt;/span&gt;` what&amp;#39;s recommended by&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/members/hungbui"&gt;Hung Bui&lt;/a&gt;&amp;nbsp;here.&lt;/p&gt;
&lt;p&gt;We see this also with `NRF_SDH_BLE_GAP_EVENT_LENGTH` of size `6` by the way, but not with every connection set up.&lt;/p&gt;
&lt;p&gt;Reported at&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/80616/scheduler-get-full-by-nrf_evt_radio_blocked-events-during-connect"&gt;devzone.nordicsemi.com/.../scheduler-get-full-by-nrf_evt_radio_blocked-events-during-connect&lt;/a&gt; so let&amp;#39;s see what&amp;#39;s the best way to handle this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/334463?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2021 05:41:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30cd49f2-dd67-421f-a8ec-36090d17839f</guid><dc:creator>m.wagner</dc:creator><description>&lt;p&gt;Hi Anne,&lt;br /&gt;&lt;br /&gt;I don&amp;#39;t think Nordic employees get notified of responses to questions with verified answers.&lt;/p&gt;
&lt;p&gt;But just note that we were talking about increasing the timeout, not the length. Reducing the length is the right thing to do. Increasing the timeout will lead to reduced timeslot availbility - as evident from the above discussion. So if you want to optimise for timeslot uptime you&amp;#39;ve got to live with the above scheduler behaviour.&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/333776?ContentTypeID=1</link><pubDate>Tue, 12 Oct 2021 14:57:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:96ad6428-3185-4cc2-a066-07bd1ed4d6bb</guid><dc:creator>Anne van Rossum</dc:creator><description>&lt;p&gt;If (dynamically) increasing&amp;nbsp;m_radio_request_earliest.&lt;span class="pl-smi"&gt;params&lt;/span&gt;.&lt;span class="pl-smi"&gt;earliest&lt;/span&gt;.&lt;span class="pl-smi"&gt;length_us&lt;/span&gt; is what you recommend when getting&amp;nbsp;NRF_EVT_RADIO_BLOCKED in the Mesh code (&lt;a href="https://github.com/NordicSemiconductor/nRF5-SDK-for-Mesh/blob/master/mesh/core/src/timeslot.c#L419"&gt;https://github.com/NordicSemiconductor/nRF5-SDK-for-Mesh/blob/master/mesh/core/src/timeslot.c#L419&lt;/a&gt;), then shouldn&amp;#39;t this be implemented?&lt;/p&gt;
&lt;p&gt;Everybody who sets up connections will run into this. And not always in a very pleasant way, it&amp;#39;s namely the case that &lt;span class="pl-c1"&gt;sd_radio_request()&lt;/span&gt; uses the app scheduler which can run out of space.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/296550?ContentTypeID=1</link><pubDate>Fri, 26 Feb 2021 13:01:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2316c575-ae2e-4616-9c2d-927c472cb296</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I&amp;#39;m happy to help :) it&amp;#39;s an interesting topic to look into :)&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/296354?ContentTypeID=1</link><pubDate>Thu, 25 Feb 2021 15:54:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:834c6acd-2a32-4dbe-8ae4-b6f14ffaae1d</guid><dc:creator>m.wagner</dc:creator><description>[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/296345#296345"]I assume&amp;nbsp;when you mentioned &amp;quot;large event_length&amp;quot;. it&amp;#39;s just larger than 6 and still not larger than the connection interval ?&amp;nbsp;[/quote]
&lt;p&gt;By this I actually only meant that the softdevice is configured with a value for NRF_SDH_BLE_GAP_EVENT_LENGTH that is larger than 6.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/296345#296345"]&lt;br /&gt;As far as I know when event_length is larger than connection interval it will not take effect and will be capped at the connection interval as the max value.[/quote]
&lt;p&gt;Okay, that makes sense - I did not take this limit into account.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/296345#296345"]When you mentioned &amp;quot;potential max&amp;quot; , did you mean the event_length ?&amp;nbsp;&lt;br /&gt;The softdevice should always presume that the connection event will last as long as event_length.&amp;nbsp;[/quote]
&lt;p&gt;If by &amp;quot;event_length&amp;quot; you mean NRF_SDH_BLE_GAP_EVENT_LENGTH, then yes, that is wath I meant.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/296345#296345"]To save power consumption of the peripheral and to avoid the timeslot being blocked by short conn interval, you can use slave latency.[/quote]
&lt;p&gt;Yes, we already try to use slave latency if possible. Since the connection interval is essentially given by our peer (running as peripheral only), I don&amp;#39;t want to rely on the connection interval too much.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/296345#296345"]&lt;br /&gt;In your case when you want the timeslot as much as possible, power consumption may not be a big problem. Then you can afford to go with the approach to request continuously, I think that would be a good workaround for the &amp;quot;non-dynamic&amp;quot; scheduler.&amp;nbsp;[/quote]
&lt;p&gt;I think that&amp;#39;s the way to go here. All measurements and our discussion here point to this being the ideal solution for our application.&lt;/p&gt;
&lt;p&gt;Thanks for your help!&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;-mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/296345?ContentTypeID=1</link><pubDate>Thu, 25 Feb 2021 15:44:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2c4bf671-a8b1-4870-ae6a-53582115aa39</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Mike,&amp;nbsp;&lt;br /&gt;I assume&amp;nbsp;when you mentioned &amp;quot;large event_length&amp;quot;. it&amp;#39;s just larger than 6 and still not larger than the connection interval ?&amp;nbsp;&lt;br /&gt;As far as I know when event_length is larger than connection interval it will not take effect and will be capped at the connection interval as the max value.&lt;/p&gt;
&lt;p&gt;When you mentioned &amp;quot;potential max&amp;quot; , did you mean the event_length ?&amp;nbsp;&lt;br /&gt;The softdevice should always presume that the connection event will last as long as event_length.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Our softdevice scheduler is not designed to be able to re-schedule if the connection event ends earlier than expected (which is the event_length). This requires a more dynamic algorithm for scheduling and complicating thing a little bit.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;If you want to avoid such down time, I would suggest to use shorter connection interval. To save power consumption of the peripheral and to avoid the timeslot being blocked by short conn interval, you can use slave latency. When the slave skips the connection events due to slave latency, the timeslots can take place in those slots.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;In your case when you want the timeslot as much as possible, power consumption may not be a big problem. Then you can afford to go with the approach to request continuously, I think that would be a good workaround for the &amp;quot;non-dynamic&amp;quot; scheduler.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/296339?ContentTypeID=1</link><pubDate>Thu, 25 Feb 2021 15:14:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:09615863-6982-4777-9be5-2dce11bc8481</guid><dc:creator>m.wagner</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
&lt;p&gt;Thanks for the explanation. Even though, you did not touch on the impact of NRF_SDH_BLE_GAP_EVENT_LENGTH, I think it helped me understand what actually happens here.&lt;/p&gt;
&lt;p&gt;Just for clarification: I do observe this behaviour (continuous BLOCKED loop) during each and every connection event - not just during connection establishement.&lt;/p&gt;
&lt;p&gt;To sum up the issue again:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My issue was that I discovered this loop of NRF_EVT_RADIO_BLOCKED.&lt;/li&gt;
&lt;li&gt;This behaviour can be modified by changing the parameters of the request - most notably increasing the timeout leads to fewer or even none of these BLOCKED events.&lt;/li&gt;
&lt;li&gt;This however will often result in larger &amp;quot;downtime&amp;quot; of the timeslot&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/571x166/__key/communityserver-discussions-components-files/4/1_5F00_normal_5F00_gap_5F00_event_5F00_length.png" /&gt;&lt;/p&gt;
&lt;p&gt;In a &amp;quot;normal&amp;quot; scenario where NRF_SDH_BLE_GAP_EVENT_LENGTH is at the default of 6, a rather low timeout value of 15000us will most likely not result in a BLOCKED timeslot or at least not often. The example above illustrates the scenario where it is BLOCKED once, but then the requested timeslot can be scheduled after the Connection event ends...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/578x253/__key/communityserver-discussions-components-files/4/2_5F00_normal_5F00_gap_5F00_event_5F00_length.png" /&gt;&lt;/p&gt;
&lt;p&gt;The above sketch illustrates a scenario with a large GAP event length but still a short timeout. With NRF_SDH_BLE_GAP_EVENT_LENGTH set to a larger value - let&amp;#39;s assume the maximum value of 320 as used in my application - the Softdevice does not yet know how long a connection event will be at the time it is scheduled. Therefore it has to assume the maximum length of 400ms.&lt;/p&gt;
&lt;p&gt;So radio requests with a short timeout will be continuously blocked until either the timeout at the point of the request is long enough to be after the potential maximum event duration or the connection event actually ended and the Softdevice can grant the timeslot immediately.&lt;/p&gt;
&lt;p&gt;To circumvent this, one may be tempted to increase the timeout. If we increase the timeout to a value &amp;gt; 400000us (greater than the maximum connection event duration), we get the following scenario:&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/582x169/__key/communityserver-discussions-components-files/4/3_5F00_long_5F00_gap_5F00_event_5F00_length_5F00_long_5F00_timeout.png" /&gt;&lt;/p&gt;
&lt;p&gt;The timeout is longer, so the softdevice just schedules the next timeslot at the first point after the potential max. duration of the connection event. In our example this would be about 400ms after the connection event started. But the connection event may actually be over in as little as 7.5ms and therefore, we have 392.5ms of unnecessary downtime of the timeslot!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/hungbui"&gt;Hung Bui&lt;/a&gt;&amp;nbsp;&lt;strong&gt;Can you confirm that I got this right?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/296180#296180"]To avoid this loop what we usually do is to gradually increase the timeout_us when we receive the repeated blocked events (in crease it by 1ms each for example). This way we can still get the earliest possible timeslot when the higher priority&amp;nbsp;activity passed.[/quote]
&lt;p&gt;I played around with this, but what essentially happens with a large value for NRF_SDH_BLE_GAP_EVENT_LENGTH is that I increase the timeout and in the best case scenario, there is still a loop of calls to the softdevice event handler and in the worst case scenario, at some point the timeouts were large enough to still get a timeslot scheduled but after an unnecessary delay.&lt;/p&gt;
&lt;p&gt;So as it stands right now, I think I would prefer the continuous calls to the SD event handler with the BLOCKED signal to having gaps in radio availability in the timeslot.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It would be nice if the softdevice could either reschedule a timeslot if it notices that there is a gap of &amp;quot;wasted&amp;quot; time or if there was any other way to avoid this loop (e.g. an event indicating that a connection event passed - at which point it would be possible to manualy request a new timeslot?)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do you have any suggestions?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thanks &amp;amp; best regards,&lt;/p&gt;
&lt;p&gt;-mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/296180?ContentTypeID=1</link><pubDate>Thu, 25 Feb 2021 09:41:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74f4590b-9d8f-49f7-b14f-cdfd83c1b1f2</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Mike,&lt;/p&gt;
&lt;p&gt;I think I can explain the reason you get continuous blocking event with such configuration.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;When you change the timeout to 15ms and when you just enter a connection, the first connection event has more priority than timeslot at HIGH. The first connection event(s) is important because if you miss 6 of them the connection will be terminated.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;So timeslot will be blocked at least for the period of the first connection event (7.5ms + t_dist ) period, it will hit the 15ms timeout and&amp;nbsp;the request for earliest timeslot will be blocked.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Then the code will&amp;nbsp;receive NRF_EVT_RADIO_BLOCKED event,&amp;nbsp;it will then immediately request a new&amp;nbsp;request_next_event_earliest() which will also result in&amp;nbsp;&lt;span&gt;NRF_EVT_RADIO_BLOCKED&amp;nbsp;because the timeout it still inside the period occupied by the first connection event. And this loop continues until the timeout 15ms it out of the period occupied by the first connection event (in my case with connection interval of 7.5ms it took 2ms of continously trying to get the timeslot.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;To avoid this loop what we usually do is to gradually increase the timeout_us when we receive the repeated blocked events (in crease it by 1ms each for example). This way we can still get the earliest possible timeslot when the higher priority&amp;nbsp;activity passed.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/296085?ContentTypeID=1</link><pubDate>Wed, 24 Feb 2021 16:10:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8c0be342-cf05-48d4-a145-ec882015dae7</guid><dc:creator>m.wagner</dc:creator><description>&lt;p&gt;Hi Hung Bui&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/294180#294180"]This bug only affect central devices in some corner cases.&amp;nbsp;[/quote][quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/294180#294180"]I believe the draw back is actually the timing needed to start the crystal, not really about that the HFCLK is kept between timeslot and BLE activity (actually it&amp;#39;s the opposite, when you use&amp;nbsp;&lt;span&gt;NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED&amp;nbsp; the clock is kept)&lt;/span&gt;[/quote]
&lt;p&gt;Okay, that&amp;#39;s helpful. In conclusion, I know now that I&amp;#39;m safe and better off to use &lt;span&gt;NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED&lt;/span&gt; in my application.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/294180#294180"]What I&amp;#39;m not really certain about is why in your case the softdevice doesn&amp;#39;t grant the timeslot when the interval is 7.5ms when in my example it works fine.[/quote]
&lt;p&gt;I think we were talking about different things here. When I originally wrote that setting the priority to HIGH does not change the oserved behaviour, I was referring to the continuous indications of the BLOCKED event. This still occurs when setting the priority to HIGH, but I will manage to get a timeslot within reasonable time.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293842#293842"]But if you can reproduce on much simpler application then it&amp;#39;s easier to spot the root cause.&amp;nbsp;[/quote]
&lt;p&gt;I managed to reproduce the behaviour where the signal handler is continuously invoked with the BLOCKED event with your example. It happens as soon as I reduce the timeout_us parameter to e.g. 15000 while also configuring the softdevice with any value for NRF_SDH_BLE_GAP_EVENT_LENGTH greater than 6. The higher the value, the more subsequent BLOCKED events seem to occur.&lt;/p&gt;
&lt;p&gt;Steps to reproduce with your example:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Get the linked example to run as per the instructions.&lt;/li&gt;
&lt;li&gt;Attach the patch attached to this comment&lt;/li&gt;
&lt;li&gt;Run the example&lt;/li&gt;
&lt;li&gt;Connect a BLE central to the peripheral (advertising as &amp;quot;Nordic_UART&amp;quot;). I used the Desktop version of nRF Connect.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This will result in the BLOCKED event being continuously invoked as soon as a timeslot ends.&lt;/p&gt;
&lt;p&gt;The patch contains the following changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added and enabled GPIOs for debugging:
&lt;ul&gt;
&lt;li&gt;P0.03 - Signals whether device is in timeslot&lt;/li&gt;
&lt;li&gt;P0.04 - High while in radio callback (signal ID is indicated by repeated toggles)&lt;/li&gt;
&lt;li&gt;P0.28 - Set when callback_action set to NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND, cleared on EXTEND_SUCCEEDED or EXTEND_FAILED&lt;/li&gt;
&lt;li&gt;P0.29 - High while serving SIGNAL_TYPE_TIMER0&lt;/li&gt;
&lt;li&gt;P0.30 - High while in softdevice signal handler (signal ID is indicated by repeated toggles)&lt;/li&gt;
&lt;li&gt;P0.31 - High while serving TIMER0 interrupt where timeslot is ended.&lt;/li&gt;
&lt;li&gt;P0.25 - Indicates EXTEND_SUCCEEDED.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced the timeout_us parameter in the radio request to 15000.&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Increased NRF_SDH_BLE_GAP_EVENT_LENGTH to 7.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Increased RAM available for Softdevice (so NRF_SDH_BLE_GAP_EVENT_LENGTH can be increased up to 320)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/4314.example_2D00_uart_2D00_esb_2D00_timeslot.patch"&gt;devzone.nordicsemi.com/.../4314.example_2D00_uart_2D00_esb_2D00_timeslot.patch&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It would be great if you can look into this and find a solution to this erroneous behaviour.&lt;/p&gt;
&lt;p&gt;Thanks &amp;amp; best regards,&lt;/p&gt;
&lt;p&gt;-mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/294180?ContentTypeID=1</link><pubDate>Fri, 12 Feb 2021 14:04:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bfccdfdc-f30e-4006-a33e-c5dfdba5bfad</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Michael,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I talked to Sigurd, the bug that the central couldn&amp;#39;t send the the first connection event is fixed from Softdevice v8. However we haven&amp;#39;t released the S132/S140 v8.0 yet.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This bug only affect central devices in some corner cases.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I believe the draw back is actually the timing needed to start the crystal, not really about that the HFCLK is kept between timeslot and BLE activity (actually it&amp;#39;s the opposite, when you use&amp;nbsp;&lt;span&gt;NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED&amp;nbsp; the clock is kept)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What I&amp;#39;m not really certain about is why in your case the softdevice doesn&amp;#39;t grant the timeslot when the interval is 7.5ms when in my example it works fine. In my example, the connection event and the timeslot take turn to preempt each other resulting a timeslot in every 15ms, this match with what described in the timeslot priority that when set to HIGH it has the same priority as the connection event.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; I would suggest you to double check if you have selected the timeslot priority to HIGH in the request after&amp;nbsp; it&amp;#39;s blocked.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/293916?ContentTypeID=1</link><pubDate>Thu, 11 Feb 2021 09:31:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b7755cd1-e4d9-45c8-af4f-72fad1e4c8c9</guid><dc:creator>m.wagner</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293842#293842"]I think the softdevice always assume the crystal is disabled when it&amp;#39;s returned from the application timeslot. So it&amp;#39;s the application responsibility to disable it again before timeslot ends.[/quote]
&lt;p&gt;Okay, I think you helped me understand it better. I was thrown off by the Nordic engineers response to the issue I linked above. The suggested workaround there was:&lt;/p&gt;
[quote userid="15146" url="~/f/nordic-q-a/55264/nus-connection-problems-with-timesync-example-ported-to-sdk16-0-0/232503#232503"]Based on initial testing, it&amp;#39;s seems like using&amp;nbsp;NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED is causing the first packet sent by the master after CONNECT_IND packet to be sent a bit too early. Other workarounds could be to set NRF_SDH_CLOCK_LF_ACCURACY to 1, or use NRF_RADIO_HFCLK_CFG_NO_GUARANTEE. [/quote]
&lt;p&gt;The user then asked whether there are any negative impacts:&lt;/p&gt;
[quote userid="85765" url="~/f/nordic-q-a/55264/nus-connection-problems-with-timesync-example-ported-to-sdk16-0-0/234049#234049"]In the time_sync example HFCLK is alway on due to calling sd_clock_hfclk_request(). So if I change the timeslot requests from NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED to NRF_RADIO_HFCLK_CFG_NO_GUARANTEE are there any drawbacks?[/quote]
&lt;p&gt;And the engineers response was:&lt;/p&gt;
[quote userid="15146" url="~/f/nordic-q-a/55264/nus-connection-problems-with-timesync-example-ported-to-sdk16-0-0/234240#234240"]Only that the HFCLK is not turned off between BLE radio and timeslot usage, so the current consumption will potentially be a little bit higher.[/quote]
&lt;p&gt;So I assumed that it is not actually required that the HFCLK must be disabled before ending the timeslot.&lt;/p&gt;
&lt;p&gt;I could imagine, though, that the root of my issue with the softdevice not granting any timeslots with a 7.5ms connection interval, is &lt;em&gt;that the softdevice&amp;#39;s scheduling needs to account for the time it takes for the hfclk to start&lt;/em&gt; - no matter if it&amp;#39;s already running or not - and therefore does not grant any timeslots in this scenario. &lt;strong&gt;Can you confirm this?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/55264/nus-connection-problems-with-timesync-example-ported-to-sdk16-0-0/234049#234049"&gt;the softdevice issue &lt;/a&gt;above actually have any impact on a device that only implements a BLE peripheral?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293842#293842"]But if you can reproduce on much simpler application then it&amp;#39;s easier to spot the root cause.&amp;nbsp;[/quote]
&lt;p&gt;Of course. I thought it may already be helpful since it&amp;#39;s a slight modification to one of the Mesh SDK example.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m still working on reproducing it with your example, but so far without success. It looks like I managed to trigger the behaviour I observed in &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/70252/softdevice-assert-at-pc-0x15810-s132-7-2-0-rtc-clock-drift-when-using-timeslot"&gt;my other open issue pertaining to timeslots&lt;/a&gt;, where it seems the softdevice does not fire the signal handler for TIMER0 interrupts and then fires the event handler with NRF_EVT_RADIO_IDLE even though the timeslot was not ended via signal handler. Will post these findings to the other issue when I&amp;#39;m ready.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/293842?ContentTypeID=1</link><pubDate>Wed, 10 Feb 2021 16:30:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cd37927f-e5f6-4fc7-b3b9-43cb085f22a8</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Michael,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I quote here what inside the Softdevice spec :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/749x517/__key/communityserver-discussions-components-files/4/pastedimage1612974520274v2.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I think the softdevice always assume the crystal is disabled when it&amp;#39;s returned from the application timeslot. So it&amp;#39;s the application responsibility to disable it again before timeslot ends.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;I understood that you have a working example that&amp;nbsp; only have some corner cases need to be fixed. But if you can reproduce on much simpler application then it&amp;#39;s easier to spot the root cause.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/293814?ContentTypeID=1</link><pubDate>Wed, 10 Feb 2021 14:57:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fdb4940b-36bf-4d44-ade7-d047464c50f2</guid><dc:creator>m.wagner</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293805#293805"]When you use&amp;nbsp;&lt;span&gt;NRF_RADIO_HFCLK_CFG_NO_GUARANTEE, you have the responsibility to disable the crystal before the timeslot end.&lt;/span&gt;[/quote]
&lt;p&gt;I&amp;#39;m not sure it would be of much use to try our application with your example, since we use the entire timeslot extension algorithm from Nordic&amp;#39;s Mesh stack - which apart from these few open issues I have - works really well and allows us to absolutely maximise timeslot use...&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293805#293805"]When you use&amp;nbsp;&lt;span&gt;NRF_RADIO_HFCLK_CFG_NO_GUARANTEE, you have the responsibility to disable the crystal before the timeslot end.&lt;/span&gt;[/quote]
&lt;p&gt;Why would I need to disable it? Can&amp;#39;t I leave it running for the entire run time of my application?&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293805#293805"]&lt;br /&gt;Regarding issue #1 if you can find away to reproduce with my example code on github above, I can try to test here.&amp;nbsp;[/quote]
&lt;p&gt;Would be great if you could take a look at the mesh example I provided above. It&amp;#39;s almost out of the box, the only modifications I did were the required path adaptations and setting &lt;strong&gt;NRF_SDH_BLE_GAP_EVENT_LENGTH&lt;/strong&gt; to 320.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll see if I manage to reproduce it with your example, though.&lt;/p&gt;
&lt;p&gt;Thanks &amp;amp; regards,&lt;/p&gt;
&lt;p&gt;-mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/293805?ContentTypeID=1</link><pubDate>Wed, 10 Feb 2021 14:44:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9bc9eb12-9512-45cc-8d70-dd7fe7114757</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Michael,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I tried this configuration:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#define TS_LEN_US                   (5000UL)                /**&amp;lt; Length of timeslot to be requested. */
#define TX_LEN_EXTENSION_US         (5000UL)                /**&amp;lt; Length of timeslot to be extended. */
#define TS_SAFETY_MARGIN_US         (700UL)                 /**&amp;lt; The timeslot activity should be finished with this much to spare. */
#define TS_EXTEND_MARGIN_US         (2000UL)                /**&amp;lt; Margin reserved for extension processing. */

uint32_t request_next_event_earliest(void)
{
    m_timeslot_request.request_type                = NRF_RADIO_REQ_TYPE_EARLIEST;
    m_timeslot_request.params.earliest.hfclk       = NRF_RADIO_HFCLK_CFG_NO_GUARANTEE;
    m_timeslot_request.params.earliest.priority    = NRF_RADIO_PRIORITY_HIGH;
    m_timeslot_request.params.earliest.length_us   = TS_LEN_US;
    m_timeslot_request.params.earliest.timeout_us  = 500000;
    return sd_radio_request(&amp;amp;m_timeslot_request);
}


/**@brief Configure next timeslot event in earliest configuration.
 */
void configure_next_event_earliest(void)
{
    m_timeslot_request.request_type                = NRF_RADIO_REQ_TYPE_EARLIEST;
    m_timeslot_request.params.earliest.hfclk       = NRF_RADIO_HFCLK_CFG_NO_GUARANTEE;
    m_timeslot_request.params.earliest.priority    = NRF_RADIO_PRIORITY_HIGH;
    m_timeslot_request.params.earliest.length_us   = TS_LEN_US;
    m_timeslot_request.params.earliest.timeout_us  = 500000;
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;And it doesn&amp;#39;t seem to get any problem with 7.5ms. The timeslot is granted every other connection event.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can try my code &lt;a href="https://github.com/NordicPlayground/nrf51-ble-micro-esb-uart"&gt;here&lt;/a&gt;. please update with the above configuration.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When you use&amp;nbsp;&lt;span&gt;NRF_RADIO_HFCLK_CFG_NO_GUARANTEE, you have the responsibility to disable the crystal before the timeslot end. And the softdevice would need to start it again when it get back to BLE activity. So it may take longer time for the softdevice to ramp up the radio before it can handle the BLE activity. But in my case this anyway doesn&amp;#39;t seem to affect the timeslot request. You can find attached trace which i used the&amp;nbsp;NRF_RADIO_HFCLK_CFG_NO_GUARANTEE with 7.5ms interval.&amp;nbsp;&lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/10Feb.zip"&gt;devzone.nordicsemi.com/.../10Feb.zip&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;Regarding issue #1 if you can find away to reproduce with my example code on github above, I can try to test here.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/293574?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2021 13:52:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f5331017-ca5b-441d-9819-0c231e5e5b56</guid><dc:creator>m.wagner</dc:creator><description>&lt;p&gt;In the meantime, I was able to reproduce the issue with the ble_app_proximity example from the nRF SDK for Mesh 4.2.0.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve attached the diff to the nRF SDK for Mesh 4.2.0 folder. The modifications I made were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modified nRF5 SDK related paths in project file to point to folder nRF5_SDK at same level as the mesh SDK folder is.&lt;/li&gt;
&lt;li&gt;Enabled and configured timeslot debug pins (default configuration for timeslot debugging in mesh/core):
&lt;ul&gt;
&lt;li&gt;P0.03: high while in timeslot&lt;/li&gt;
&lt;li&gt;P0.04: high while in signal handler&lt;/li&gt;
&lt;li&gt;P0.28: high while trying to extend timeslot&lt;/li&gt;
&lt;li&gt;P0.29: high when serving TIMER0 IRQ&lt;/li&gt;
&lt;li&gt;P0.30: &lt;strong&gt;high while in softdevice event handler (the culprit here!)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;P0.31: High when timeslot end is reached&lt;/li&gt;
&lt;li&gt;P0.24: High if high priority timeslot was requested&lt;/li&gt;
&lt;li&gt;P0.25: High if extension succeeded.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Set APP_TIMER_CONFIG_RTC_FREQUENCY to 0 (only way the example runs)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set NRF_SDH_BLE_GAP_EVENT_LENGTH to 320 --&amp;gt; this triggers the issue!&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/timeslot_2D00_sd_2D00_event_2D00_loop.patch"&gt;devzone.nordicsemi.com/.../timeslot_2D00_sd_2D00_event_2D00_loop.patch&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So I&amp;#39;ve touched on two issues here:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The weird behaviour (described in the initial post) that occurs during a BLE connection where the SD event handler is invoked repeatedly. This seems to happen in the suppleid exemple when settting NRF_SDH_BLE_GAP_EVENT_LENGTH to 320. We set this to a high value to be able to achieve higher BLE throughput when needed.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Do you have any explanation as to why this behaviour occurs and how it can be avoided?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;When setting the hfclk parameter to NRF_RADIO_HFCLK_CFG_NO_GUARANTEE, no timeslots can be served if the connection interval is only 7.5ms. The idea was to configure the hfclk that way because we are able to have it continuously running, as we do not have any battery constraints. Additionally, there seems to be &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/55264/nus-connection-problems-with-timesync-example-ported-to-sdk16-0-0/234049#234049"&gt;a connection issue that seems to be avoidable if NRF_RADIO_HFCLK_CFG_NO_GUARANTEE is chosen.&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;So why can no timeslots be served with a 7.5ms connection interval and NRF_RADIO_HFCLK_CFG_NO_GUARANTEE even though the HFCLK is running?&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Looking forward to your responses!&lt;/p&gt;
&lt;p&gt;Thank you &amp;amp; best regards,&lt;/p&gt;
&lt;p&gt;-mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/293520?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2021 10:58:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:38c51658-ddc4-45ee-8be6-73bc94358d45</guid><dc:creator>m.wagner</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
&lt;p&gt;Thank you for your response.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293377#293377"]According to this if you request the timeslot at NORMAL priority it will have lower priority than the connection activity, meaning that if the timeslot doesn&amp;#39;t fit entirely inside a period when there is no connection event (calculated by the event length reserved) it will get cancelled.&amp;nbsp;[/quote]
&lt;p&gt;I was aware of the above table, thanks. I think you helped me understand the difference between BLOCKED and CANCELED better, still, could you confirm that I got this right:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BLOCKED: the request with sd_radio_request() or via return value of the signal callback could not be granted within the provided timeout?&lt;/li&gt;
&lt;li&gt;CANCELED: the softdevice originally intended to grant the requested timeslot - i.e. but at the point where it should have started, it could not grant it because an event of higher priority (e.g. BLE event when timeslot priority is normal) needs to be served during the timeslot.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So that means from the callers perspective what happens is actually similar, but the two events are raised at different &amp;quot;stages&amp;quot; in the softdevice&amp;#39;s scheduling.&lt;/p&gt;
&lt;p&gt;Is this right?&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293377#293377"]Please try to test again with the priority set to HIGH.&amp;nbsp;[/quote]
&lt;p&gt;This does not change the observed behaviour.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/71360/softdevice-event-handler-continuously-called-with-nrf_evt_radio_blocked/293377#293377"]However, I couldn&amp;#39;t explain why&amp;nbsp;you get the event every 50us. We may need to look into your code to see why.&amp;nbsp;[/quote]
&lt;p&gt;&amp;quot;My code&amp;quot; for the timeslot implementation is actually the timeslot.c implementation from nRF SDK for Mesh 4.2.0.&lt;/p&gt;
&lt;p&gt;I did just play around with examples\sdk_coexist\ble_app_proximity_coexist in the nRF SDK for Mesh 4.2.0 and stumbled upon one change that I made that seems to be the cause of all my issues:&lt;/p&gt;
&lt;p&gt;Because we usually have the HFCLK running, I changed the hfclk parameter in the radio request to&amp;nbsp;NRF_RADIO_HFCLK_CFG_NO_GUARANTEE. The change was prompted because I was afraid, that we &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/55264/nus-connection-problems-with-timesync-example-ported-to-sdk16-0-0/234049#234049"&gt;could run into the issue described here&lt;/a&gt;. Therefore I implemented this as a temporary workaround.&lt;/p&gt;
&lt;p&gt;With the hfclk parameter set to NRF_RADIO_HFCLK_CFG_NO_GUARANTEE, the softdevice stops granting me timeslots when the connection interval is only 7.5ms. This is the behaviour I observed and described above and I followed this by changing the requests. But I could not reproduce the behaviour with the continuous calls of the softdevice event handler - even when updating to S132 7.2.0.&lt;/p&gt;
&lt;p&gt;So, maybe there is still something in our application that somehow interferes. Unfortunately I can&amp;#39;t publicly share the application&amp;#39;s source code here.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice event handler continuously called with NRF_EVT_RADIO_BLOCKED</title><link>https://devzone.nordicsemi.com/thread/293377?ContentTypeID=1</link><pubDate>Mon, 08 Feb 2021 15:02:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5920d34a-611a-4d95-9c1c-8f4194a62f5e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Michael,&amp;nbsp;&lt;br /&gt;If you have a look at the documentation of the softdevice (SDS) you can find this scheduling properties:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/764x613/__key/communityserver-discussions-components-files/4/pastedimage1612795963773v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;According to this if you request the timeslot at NORMAL priority it will have lower priority than the connection activity, meaning that if the timeslot doesn&amp;#39;t fit entirely inside a period when there is no connection event (calculated by the event length reserved) it will get cancelled.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Please try to test again with the priority set to HIGH.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;However, I couldn&amp;#39;t explain why&amp;nbsp;you get the event every 50us. We may need to look into your code to see why.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;You can have a look at my example code &lt;a href="https://github.com/NordicPlayground/nrf51-ble-micro-esb-uart"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I attached the logic trace in my test here when the device first advertised, then entered a connection with interval = 7.5ms after 5 seconds the interval changed to 750ms. You can find the timeslot got cancelled multiple times, but still it get some slots in between.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/1-MHz_2C00_-20-M-Samples-_5B00_9_5D00_.logicdata"&gt;devzone.nordicsemi.com/.../1-MHz_2C00_-20-M-Samples-_5B00_9_5D00_.logicdata&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>