<?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>BLE Throughput and DFU</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/34002/ble-throughput-and-dfu</link><description>Our nRF52832 software detects the arrival of characteristics via writes from the Central and reformats the contents and sends them out in a UART message. 
 
 I&amp;#39;ve built an Android app to write characteristics (in this case, one 9-byte and twelve 8-byte</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 04 May 2018 10:44:19 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/34002/ble-throughput-and-dfu" /><item><title>RE: BLE Throughput and DFU</title><link>https://devzone.nordicsemi.com/thread/130992?ContentTypeID=1</link><pubDate>Fri, 04 May 2018 10:44:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0aff448c-7c7a-43b8-a865-90e9df547c36</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Most smartphones/tablets use the 2.4GHz spectrum for both WiFi and Bluetooth, so even though the BLE specification states that the minimum allowed connection interval is 7.5ms, most&amp;nbsp;smartphones/tablets will not allow you to use lower than 15-20ms in order to maintain coexistence with WiFi.&amp;nbsp;So a connection interval of 20ms sounds&amp;nbsp;very reasonable and I doubt you will be able to go lower. THat said, some of the newer smartphones might have improved BLE/Wifi Combo chips that allow you to use the lowest&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hence you will see variation across different smartphones/tablets when comparing the throughput of the DFU or any other write operation to a BLE characteristic.&lt;/p&gt;
&lt;p&gt;The main contributor to the high throughput of the DFU service is the increased ATT MTU size. So even tough it is by default set to 23, the central may negotiate a higher ATT MTU size, which significantly increases the throughput.&lt;/p&gt;
&lt;p&gt;We have a separate section in the S132 v6.0.0 Specification which states the throughput for the various combinations of event lengths, ATT MTU size, Connection interval etc. &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.sds/dita/softdevices/s130/ble_data_throughput/ble_data_throughput.html?cp=2_3_1_0_16"&gt;Here&lt;/a&gt; is the link to the section on the Nordic Infocenter.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Throughput and DFU</title><link>https://devzone.nordicsemi.com/thread/130896?ContentTypeID=1</link><pubDate>Thu, 03 May 2018 23:19:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:647a5a5f-b2b6-4337-b8dc-4a7c4ce365de</guid><dc:creator>David Ormand</dc:creator><description>&lt;p&gt;Update:&lt;/p&gt;
&lt;p&gt;1. The Android would spontaneously disconnect from the nRF52 after several seconds, with a report of &amp;quot;onClientConnectionState() - status=59&amp;quot;, which apparently is&amp;nbsp;&lt;span&gt;HCI_ERR_UNACCEPT_CONN_INTERVAL.&amp;nbsp; I left the MIN_CONN_INTERVAL at 6 (7.5ms) and moved MAX_CONN_INTERVAL to 20ms.&amp;nbsp; No more spontaneous disconnects.&amp;nbsp; No effect on characteristic arrival times.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. I added Optional WRITE_WITHOUT_RESPONSE to the characteristics of concern.&amp;nbsp; Now the arrival time dropped to 20ms.&amp;nbsp; That&amp;#39;s better than the 80 - 150ms I was seeing before.&amp;nbsp; Should I expect better from&amp;nbsp;Android?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. Since the 20ms in both #1 and #2 was suspicious, I attempted to reduce MAX_CONN_INTERVAL.&amp;nbsp; The arrival time went back up to 80.&amp;nbsp; Apparently, 20ms is as low as Android is willing to negotiate.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I would _still_ like to know how DFU moves so much data so fast.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Throughput and DFU</title><link>https://devzone.nordicsemi.com/thread/130879?ContentTypeID=1</link><pubDate>Thu, 03 May 2018 18:09:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:edfb5d66-b2e0-4d2a-bb2d-54bc58392da0</guid><dc:creator>David Ormand</dc:creator><description>&lt;p&gt;The Central is a Nexus 7 tablet running Android 6.0.1.&amp;nbsp; The Android SDK project is targeting SDK version 27.&lt;/p&gt;
&lt;p&gt;The Peripheral is a nRF52 DK.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using SDK 15.0.0 with SoftDevice s132 ver 6.0.0&lt;/p&gt;
&lt;p&gt;I started with MIN_CONN_INTERVAL of 20ms and MAX_CONN_INTERVAL of 75ms, but the measurement made above was with both set to 6 (x 1.25 = 7.5ms).&amp;nbsp; It seems to have shrunk the time, but not by much.&amp;nbsp; The actual interval is different every time I perform a connect.&amp;nbsp; I just tried it again, and it&amp;#39;s 98ms.&lt;/p&gt;
&lt;p&gt;From sdk_config.h:&lt;br /&gt;#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 23&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Throughput and DFU</title><link>https://devzone.nordicsemi.com/thread/130841?ContentTypeID=1</link><pubDate>Thu, 03 May 2018 14:31:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3125e044-733a-4208-a894-76fbb3d5d2a2</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Could you post the preferred minimum and maximum connection interval configuration in the nRF52 application? Also are you using the default ATT MTU size, i.e. is&amp;nbsp;NRF_SDH_BLE_GATT_MAX_MTU_SIZE set to 23? It would also be useful to know the Android version as well as what hardware you&amp;#39;re using on the central side.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Lastly, please state which SDK version and SD version you&amp;#39;re using.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>