<?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>Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/17771/troubleshooting-softdevice-assertion</link><description>Hello,
I am working on an nRF52 project that uses the SoftDevice S132 v3.0.0. The system supports BLE observer, BLE central, and ESB functions. BLE central and observer work simultaneously, and BLE central and ESB work simultaneously. However when I</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 24 Nov 2016 22:06:21 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/17771/troubleshooting-softdevice-assertion" /><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68464?ContentTypeID=1</link><pubDate>Thu, 24 Nov 2016 22:06:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:91c716ae-c0b9-4fc7-93d9-114f130d614e</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;wow, this is very interesting. I also thought that app can leave its settings on these peripherals and softdevice will re-initialize them completely. Time to read the release notes again carefully :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68463?ContentTypeID=1</link><pubDate>Wed, 23 Nov 2016 09:13:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:31d73d6f-7d53-4303-a011-c06baa7a30d2</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I&amp;#39;m glad that the issue was found, Paolo :) It&amp;#39;s true that the softdevice wouldn&amp;#39;t expect the TIMER0 interrupt to be enabled and reconfigure all registers. I assume that the softdevice only configure the register that it uses leaving some of the untouched.
What we stated in the doc is that the application should returns the TIMER0 and RADIO as it in the state when receives from softdevice. I think it&amp;#39;s included that COMPARE interrupts should be disabled. I will try to report internally, we should mention something about this in the documentation.&lt;/p&gt;
&lt;p&gt;[EDITED]  Actually it&amp;#39;s already stated in the release note of S132 v3.0 : If the application uses TIMER0 inside a timeslot (scheduled with the Radio Timeslot API), INTENSET for TIMER0 must be
cleared before the timeslot ends (DRGN-7776)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68462?ContentTypeID=1</link><pubDate>Tue, 22 Nov 2016 16:38:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c5e2d2c6-18c6-427b-91b1-76896b7309f3</guid><dc:creator>Paolo D</dc:creator><description>&lt;p&gt;I think I&amp;#39;ve found and fixed the problem. At the start of each timeslot I enable TIMER0 COMPARE interrupts 0, 1, and 2. However at the end of each timeslot I was never disabling these interrupts. If I disable those interrupts with INTENCLR in the TIMER0 interrupt handler before the timeslot ends, then everything works reliably.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know if the crash occurs because a TIMER0 interrupt is occurring outside of my timeslot when the SoftDevice isn&amp;#39;t expecting it, or if the SoftDevice just isn&amp;#39;t expecting to find those interrupts enabled. Either way it&amp;#39;s fixed now. Thanks for your help.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68461?ContentTypeID=1</link><pubDate>Tue, 22 Nov 2016 15:42:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:df887a83-f604-47be-8eb6-8ed1e7e4f17b</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Paolo: It would be much easier to trace down (and narrow down) the problem if you can provide a simplified project that can demonstrate the issue so we can reproduce here. Would prefer to use the example I suggested as the base project.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68460?ContentTypeID=1</link><pubDate>Tue, 22 Nov 2016 15:10:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bb66dbf4-7caf-47e8-a11f-00035b5dbb2b</guid><dc:creator>Paolo D</dc:creator><description>&lt;p&gt;There are no flash operations executing while I am testing. I haven&amp;#39;t tried modifying the BLE+ESB example yet.&lt;/p&gt;
&lt;p&gt;It looks like it&amp;#39;s definitely a timing issue. If I set both the connection interval and scan interval to 250ms with a 60ms scan interval, it seems to work. But If I change the scan interval from 250ms to 249.375ms (so that a scan event and connection event will eventually collide) it will eventually crash. If I change the scan interval to 248.75ms, the collision and crash happens sooner. I haven&amp;#39;t done enough testing yet to know if setting the scan and connection intervals equal really fixes the problem, or if it just makes it much less likely to occur.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68459?ContentTypeID=1</link><pubDate>Thu, 17 Nov 2016 09:49:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d66f2702-612d-49cc-bf1e-735bc502e7b4</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Paolo: have you made sure no flash operation was executed when you are testing ?
If you use &lt;a href="https://github.com/NordicSemiconductor/nrf51-ble-micro-esb-uart"&gt;this example&lt;/a&gt; and add the scanner code in would you have the same issue ?&lt;/p&gt;
&lt;p&gt;I just tried a quick test here but don&amp;#39;t see any issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68458?ContentTypeID=1</link><pubDate>Wed, 16 Nov 2016 16:26:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6b2925f-7c8e-4a87-85d1-957778b7ddcd</guid><dc:creator>Paolo D</dc:creator><description>&lt;p&gt;Observer and central works, and ESB and central works. The error only occurs when all three are active simultaneously.&lt;/p&gt;
&lt;p&gt;I am using the SoftDevice API for scanning.&lt;/p&gt;
&lt;p&gt;The central only connects to one peripheral. I am currently using 250ms connection interval and 250ms scan interval.&lt;/p&gt;
&lt;p&gt;I am experimenting with the scan window now. It seems to work reliably if the scan window is 20ms, but fails if I increase it to 30ms. When ESB is not active I can use a 50ms scan window without any problem.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68457?ContentTypeID=1</link><pubDate>Wed, 16 Nov 2016 16:11:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:030ac72a-3999-46b4-a295-156719852d7f</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;PC=0x00011150 points to Radio event management module. If you only do observers and central role, would you have the issue ? (No ESB)&lt;/p&gt;
&lt;p&gt;How did you do scanning ? You used the API from softdevice or manually in a timeslot ?&lt;/p&gt;
&lt;p&gt;What is the scan window you have ? How many peripheral connect to your central  ? What is the interval(s) ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68456?ContentTypeID=1</link><pubDate>Wed, 16 Nov 2016 14:35:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:04054409-e84a-49fe-9b68-886ad7e7544b</guid><dc:creator>Paolo D</dc:creator><description>&lt;p&gt;Yes, the error is NRF_FAULT_ID_SD_ASSERT. I am using ESB for bulk data transfer, to transfer as much data as possible in between connection events. I think the radio is always being disabled before the timeslot ends but I will confirm.&lt;/p&gt;
&lt;p&gt;If I set the observer&amp;#39;s scan interval to be exactly the same as the central&amp;#39;s connection interval, then it appears to work reliably. The error only occurs when those intervals are different.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Troubleshooting SoftDevice assertion</title><link>https://devzone.nordicsemi.com/thread/68455?ContentTypeID=1</link><pubDate>Wed, 16 Nov 2016 10:16:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:471754cf-ec1d-457a-b551-09eb4909a97c</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Paolo,&lt;/p&gt;
&lt;p&gt;Which faultID have you got ? Did you get NRF_FAULT_ID_SD_ASSERT ?
How did you use ESB ? Have you made sure you disabled the radio, timer before the timeslot expires  ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>