<?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>Flash storage usage with multiprotocol BLE + Thread</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/39415/flash-storage-usage-with-multiprotocol-ble-thread</link><description>Hi! 
 I am currently developing product containing Thread mesh and BLE peripheral service. I am using Thread SDK v2 in my software. My application has to support writing to MCU flash. I am trying to do it with working radio. Unfortunately my application</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 18 Oct 2018 10:55:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/39415/flash-storage-usage-with-multiprotocol-ble-thread" /><item><title>RE: Flash storage usage with multiprotocol BLE + Thread</title><link>https://devzone.nordicsemi.com/thread/153448?ContentTypeID=1</link><pubDate>Thu, 18 Oct 2018 10:55:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:11d413b4-79b6-4526-a45a-5252289d6072</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I see.&lt;/p&gt;
&lt;p&gt;You should rather try to &lt;em&gt;increase&lt;/em&gt; the connection interval. That way there will be more room in-between events.&lt;/p&gt;
&lt;p&gt;Actually I found some more information on when flash write/erase can be expected to succeed given various examples of BLE activity, in the &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s140.sds%2Fdita%2Fsoftdevices%2Fs130%2Fflash_mem_api%2Fflash_mem_api.html"&gt;Flash memory API&lt;/a&gt; section of the SoftDevice Specification. See &amp;quot;Table 1. Behavior with Bluetooth Low Energy traffic and concurrent flash write/erase&amp;quot; on that page.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash storage usage with multiprotocol BLE + Thread</title><link>https://devzone.nordicsemi.com/thread/153305?ContentTypeID=1</link><pubDate>Wed, 17 Oct 2018 15:12:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:81fe4715-7c67-4df0-973f-df1d281a1ae2</guid><dc:creator>Krzysztof Cieniawski</dc:creator><description>&lt;p&gt;Try to answer for your question about configuration I must say that I do not remember exactly which values I set but I can write which parameters ware change and why:&lt;/p&gt;
&lt;p&gt;- in fstorage module I was changing value of NRF_FSTORAGE_SD_MAX_WRITE_SIZE. I tried to reduce this value to increase chance of successful operation&lt;/p&gt;
&lt;p&gt;- in BLE peripheral I was trying to reduce adv interval, connection intervals and connection sup timeout, also to increase possibility of success by reducing radio usage.&lt;/p&gt;
&lt;p&gt;Configuration changes I made that ended in working devices are:&lt;br /&gt;MIN_CONN_INTERVAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSEC_TO_UNITS (60, UNIT_1_25_MS)&lt;br /&gt;MAX_CONN_INTERVAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSEC_TO_UNITS (100, UNIT_1_25_MS)&lt;br /&gt;CONN_SUP_TIMEOUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSEC_TO_UNITS (500, UNIT_10_MS)&lt;br /&gt;FIRST_CONN_PARAMS_UPDATE_DELAY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_TIMER_TICKS (5000)&lt;br /&gt;NEXT_CONN_PARAMS_UPDATE_DELAY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_TIMER_TICKS (30000)&lt;br /&gt;APP_ADV_INTERVAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSEC_TO_UNITS (40, UNIT_0_625_MS)&lt;br /&gt;NRF_FSTORAGE_SD_MAX_WRITE_SIZE 4096&lt;br /&gt;NRFX_PRS_ENABLED 1&lt;br /&gt;NRFX_PRS_BOX_4_ENABLED 1&lt;br /&gt;NRF_SDH_DISPATCH_MODEL 0thread configuration:&lt;br /&gt;role = RX_OFF_WHEN_IDLE&lt;br /&gt;autocommissioning = true&lt;br /&gt;poll_period = 10000&lt;/p&gt;
&lt;p&gt;I have not tested scheduler precisely because currently I am implementing functionality connected with flash storage however till today it has not failed. It is rather early stage of development but I am using some already made modules and soon scheduler will be tested. If I find any problem or better solution I will post it here.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash storage usage with multiprotocol BLE + Thread</title><link>https://devzone.nordicsemi.com/thread/153281?ContentTypeID=1</link><pubDate>Wed, 17 Oct 2018 14:29:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dcea260b-fe4a-41c5-ad22-b9dc62cd8642</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;As far as I know the dispatch model used by the SoftDevice Handler (SDH) should not affect the functionality of other modules, although there might be a caveat there since fstorage uses the SoftDevice for flash access. I find it just as likely that enabling Periperal Resource Sharing (PRS) may have solved a problem.&lt;/p&gt;
&lt;p&gt;I do not quite understand what configurations you have tried that work and what configurations you have tried that does not. Did using the scheduler work flawlessly, also for SDH, after having enabled NRFX_PRS?&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash storage usage with multiprotocol BLE + Thread</title><link>https://devzone.nordicsemi.com/thread/152972?ContentTypeID=1</link><pubDate>Tue, 16 Oct 2018 07:42:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:85a0bb17-20b0-4d02-b194-8b984a256570</guid><dc:creator>Krzysztof Cieniawski</dc:creator><description>&lt;p&gt;Hi Terje,&lt;/p&gt;
&lt;p&gt;first of all thank you for very quick response. Since Monday I have tried to reduce radio usage or to change fstorage configuration. Unfortunately it hasn&amp;#39;t helped. When I removed scheduler and change NRF_SDH_DISPATCH_MODEL value to interrupt (value 0) from scheduler (value 1), it helped.&amp;nbsp; I have also enabled NRFX_PRS because it is enabled in fstorage example. Now in my application work both BLE and Thread without problem with fstorage. Also scheduler work correctly with NRF_SDH_DISPATCH_MODEL = 1.&lt;/p&gt;
&lt;p&gt;I have one more question. Does app_scheduler work with fstorage when NRF_SDH_DISPATCH_MODEL = 1? Changing it to 0 removed all my problems.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash storage usage with multiprotocol BLE + Thread</title><link>https://devzone.nordicsemi.com/thread/152679?ContentTypeID=1</link><pubDate>Fri, 12 Oct 2018 11:57:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:99b574aa-263d-4e12-940e-b925449aeded</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Fstorage works with BLE and Thread, but flash access must go through the SoftDevice API and is subject to SoftDevice scheduling. If no appropriate timeslot can be found for the flash operation it may time out. Flash erase is the most time consuming flash operation and so it is the operation most likely not to get through.&lt;/p&gt;
&lt;p&gt;The key for flash operations to succeed is to make sure other radio activities leaves gaps long enough for successful scheduling of flash operations. See also the S140 SoftDevice Specification sections on &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s140.sds%2Fdita%2Fsoftdevices%2Fs130%2Fmultilink_scheduling%2Fflash_api_timing.html"&gt;Flash API timing&lt;/a&gt; and on &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s140.sds%2Fdita%2Fsoftdevices%2Fs130%2Fmultilink_scheduling%2Fpriorities_and_events_intro.html"&gt;SoftDevice timing-activities and priorities&lt;/a&gt;. (The 802.15.4 radio driver uses &amp;quot;Radio Timeslot with high priority&amp;quot;.)&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>