<?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>Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/18579/slow-ble-throughput-with-nexus-5x</link><description>Hi, 
 I am trying to transfer large amounts of data over BLE, to a large amount of devices so speed is critical. 
 So far, i am able to send the nRF51422 (S110 V8.0.0) a 48Kbyte chunk of data in 12.6 seconds which is roughly 32kBits a second if i am</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 04 Jan 2017 09:11:21 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/18579/slow-ble-throughput-with-nexus-5x" /><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71703?ContentTypeID=1</link><pubDate>Wed, 04 Jan 2017 09:11:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:81c5c2dc-1056-4113-bcfd-e72e04ec1f4a</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;nRF Sniffer is a bit unstable on the PCA10028, but with some re-pluging it usually works.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71699?ContentTypeID=1</link><pubDate>Tue, 03 Jan 2017 15:32:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e98cce8e-6598-4295-b2d1-94c917a1b272</guid><dc:creator>billt79</dc:creator><description>&lt;p&gt;Hi Petter, thanks for getting me that. I am not sure why the interval is getting set to those values, the nRF is indicating that i am getting a much slower interval. I will take a fresh log an compare it to the logs on the nRF and see if there is still a discrepancy. Is it possible to use PCA10028 dev kit as a sniffer?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71701?ContentTypeID=1</link><pubDate>Tue, 03 Jan 2017 15:16:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ae04052-abd0-4c55-b5fc-45e2b5f4ab0b</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;I opened your log in wireshark, and it was able to decode it. It seems to me that you are updating the connection interval three times:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;19.07s to 7.5ms
19.74s to 45ms
38.42s to 7.5ms
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71698?ContentTypeID=1</link><pubDate>Tue, 03 Jan 2017 14:43:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3e5fb72-f078-45b5-b2a7-28a4ded7d242</guid><dc:creator>billt79</dc:creator><description>&lt;p&gt;Here is what i think to be the connection interval update,&lt;/p&gt;
&lt;p&gt;&amp;quot;386&amp;quot;,&amp;quot;13.985244&amp;quot;,&amp;quot;host&amp;quot;,&amp;quot;controller&amp;quot;,&amp;quot;HCI_CMD&amp;quot;,&amp;quot;18&amp;quot;,&amp;quot;Sent LE Connection Update&amp;quot; 0000 01 13 20 0e 02 00 24 00 24 00 00 00 d0 07 00 00 0010 00 00
&amp;quot;387&amp;quot;,&amp;quot;13.993223&amp;quot;,&amp;quot;controller&amp;quot;,&amp;quot;host&amp;quot;,&amp;quot;HCI_EVT&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;Rcvd Command Status (LE Connection Update)&amp;quot; 0000 04 0f 04 00 01 13 20
&amp;quot;388&amp;quot;,&amp;quot;14.054963&amp;quot;,&amp;quot;controller&amp;quot;,&amp;quot;host&amp;quot;,&amp;quot;HCI_EVT&amp;quot;,&amp;quot;13&amp;quot;,&amp;quot;Rcvd LE Meta (LE Connection Update Complete)&amp;quot; 0000 04 3e 0a 03 00 02 00 24 00 00 00 d0 07&lt;/p&gt;
&lt;p&gt;But i also saw this,&lt;/p&gt;
&lt;p&gt;313	19.140125	remote ()	LgElectr_90:15:dd (Nexus 5X)	ATT	14	Rcvd Error Response - Attribute Not Found, Handle: 0x0007, Handle: 0x0007 (Generic Access Profile: Peripheral Preferred Connection Parameters)&lt;/p&gt;
&lt;p&gt;Could this be causing an issue on the android side of things? I think this may be because i am missing something like the device info service on the nRF so i will check that too.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71702?ContentTypeID=1</link><pubDate>Tue, 03 Jan 2017 14:41:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b529ec3c-71c1-440d-87f3-81e521e451f6</guid><dc:creator>billt79</dc:creator><description>&lt;p&gt;Hi Emil, hope you had a good new year.
I have just gotten around to looking in the HCI logs at the connection interval commands and i am not sure if i am understanding them correctly. I have been following this document from ST about how to look at the raw numbers, what i have in my logs is not lining up with what they have, although i realise this is for a different stack, i thought that would have been standard.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.st.com/content/ccc/resource/technical/document/user_manual/6d/a1/5b/6c/dc/ab/48/76/DM00162667.pdf/files/DM00162667.pdf/jcr:content/translations/en.DM00162667.pdf"&gt;www.st.com/.../en.DM00162667.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have found some interesting things in this log however, i will post a snippet of a connection parameter update in another comment along with another possible issue i found. also here is the log if it is of any use to you &lt;a href="https://drive.google.com/open?id=0B0rVXqUqQFsLeHhoOHkwTEUxUWc"&gt;drive.google.com/open&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71694?ContentTypeID=1</link><pubDate>Thu, 29 Dec 2016 14:33:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fd389c35-7a34-4720-9ddd-2212240a2d6a</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;Sniffer log is preferred, please see if you can make it work with the dongle.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71695?ContentTypeID=1</link><pubDate>Thu, 29 Dec 2016 14:28:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2312292-0191-40f8-b869-06cf22eeaf51</guid><dc:creator>billt79</dc:creator><description>&lt;p&gt;I have an nRF51 dongle somewhere so that should be possible. I do have the bluetooth hci logs to hand if they are of any use to you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71697?ContentTypeID=1</link><pubDate>Thu, 29 Dec 2016 14:26:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:794bd8d7-52dc-478a-ab91-e66f739b9316</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;I see. It is a bit difficult to know what is happening on air without doing a sniffer trace. Maybe you can try to do one?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71700?ContentTypeID=1</link><pubDate>Thu, 29 Dec 2016 14:13:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5b0dc232-a590-4daa-b3e9-223f1df7c823</guid><dc:creator>billt79</dc:creator><description>&lt;p&gt;thanks for clarifying that, although it does not solve my issue. This morning i have tested this on a lot of different android phones, mostly different nexus, Samsung and Motorola devices and an intel based dell tablet. i have tried many android versions between 4.4.4 to 7.1.1. the requestConnectionPriority method only works on API 21 and above, but on all the devices that have it, always get an interval betweem 45-72.5mS, whether i request high, medium or low priority. Its like the nRF is rejecting the connection parameter updates. When i connect an ipad to it, it gets an interval of 30mS.&lt;/p&gt;
&lt;p&gt;The nRF has S110 V8.0.0, 51422 rev QFAC.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71688?ContentTypeID=1</link><pubDate>Thu, 29 Dec 2016 09:30:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a52888ce-a7e2-47ee-a4fc-cc3cbd9c08c4</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;I&amp;#39;m sorry, I don&amp;#39;t have a overview over max throughput of different smart phones and Android versions. I think you must simply test.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71693?ContentTypeID=1</link><pubDate>Thu, 29 Dec 2016 09:28:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3561915e-6866-4bf5-ab21-dea2dd6175bf</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;That is in 1.25ms units, so then you start off with a connection interval of 36 * 1.25ms = 45 ms, and then it gets updated to 58 * 1.25ms = 72.5ms. With 6 packets with 20 bytes in each you end up with a maximum throughput of:&lt;/p&gt;
&lt;p&gt;6 * 20 * 8 / 0.0725 = 13.241 kbps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71692?ContentTypeID=1</link><pubDate>Wed, 28 Dec 2016 16:00:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0bb60739-2321-47ec-b5a3-2800ca5c15f2</guid><dc:creator>billt79</dc:creator><description>&lt;p&gt;I also would like to ask, is the minimum interval of 11.5mS a nougat thing? I remember it being able to handle 7.5mS on earlier android versions.&lt;/p&gt;
&lt;p&gt;If i was to get a custom rom or downgrade is it possible to get a bit more speed?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71691?ContentTypeID=1</link><pubDate>Wed, 28 Dec 2016 15:23:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:03f946fe-a7d4-485b-a2cb-51d83d6ccf84</guid><dc:creator>billt79</dc:creator><description>&lt;p&gt;Here are some things from the bluetooth log for you if they are useful&lt;/p&gt;
&lt;p&gt;&amp;quot;386&amp;quot;,&amp;quot;13.985244&amp;quot;,&amp;quot;host&amp;quot;,&amp;quot;controller&amp;quot;,&amp;quot;HCI_CMD&amp;quot;,&amp;quot;18&amp;quot;,&amp;quot;Sent LE Connection Update&amp;quot;
0000   01 13 20 0e 02 00 24 00 24 00 00 00 d0 07 00 00
0010   00 00&lt;/p&gt;
&lt;p&gt;&amp;quot;387&amp;quot;,&amp;quot;13.993223&amp;quot;,&amp;quot;controller&amp;quot;,&amp;quot;host&amp;quot;,&amp;quot;HCI_EVT&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;Rcvd Command Status (LE Connection Update)&amp;quot;
0000   04 0f 04 00 01 13 20&lt;/p&gt;
&lt;p&gt;&amp;quot;388&amp;quot;,&amp;quot;14.054963&amp;quot;,&amp;quot;controller&amp;quot;,&amp;quot;host&amp;quot;,&amp;quot;HCI_EVT&amp;quot;,&amp;quot;13&amp;quot;,&amp;quot;Rcvd LE Meta (LE Connection Update Complete)&amp;quot;
0000   04 3e 0a 03 00 02 00 24 00 00 00 d0 07&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71690?ContentTypeID=1</link><pubDate>Wed, 28 Dec 2016 15:23:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa2acf9e-d8b9-4575-b7cf-fc1d46bcb50d</guid><dc:creator>billt79</dc:creator><description>&lt;p&gt;Hi Pettter,&lt;/p&gt;
&lt;p&gt;i am calling requestConnectionPriority() with CONNECTION_PRIORITY_HIGH.&lt;/p&gt;
&lt;p&gt;Before i call that i get this as my connection interval,
..\Main\blemain.c,402: CONN INTERVAL = 36&lt;/p&gt;
&lt;p&gt;after i call it, i get this
..\Main\blemain.c,402: CONN INTERVAL = 58&lt;/p&gt;
&lt;p&gt;That is the raw value of p_ble_evt-&amp;gt;evt.gap_evt.params.connected.conn_params.max_conn_interval.&lt;/p&gt;
&lt;p&gt;The nexus 5X is running Android 7.1.1, and the app is built on the nougat SDK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow BLE throughput with Nexus 5X</title><link>https://devzone.nordicsemi.com/thread/71689?ContentTypeID=1</link><pubDate>Tue, 27 Dec 2016 14:46:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a5418723-3b84-4eb5-b9d1-4d7c9f7dbeb3</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;I guess you are calling requestConnectionPriority() with  CONNECTION_PRIORITY_HIGH? Then you should get 11.25-15ms connection interval, but I would check what the actual connection interval is, see &lt;a href="https://devzone.nordicsemi.com/question/56471/check-ble-connection-interval/"&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As far as I know Nexus 5 supports 6 packets of 20 bytes per connection interval.&lt;/p&gt;
&lt;p&gt;With 15ms connection interval and 6 packets of 20 bytes in &lt;strong&gt;every&lt;/strong&gt; connection interval you should be able to achieve a throughput of 6 * 20 * 8/0.015 = 64kbps. But this is assuming that you have no packet loss, that you fill all packets with 20 bytes, that Android allows you to send 6 packets in every connection interval.&lt;/p&gt;
&lt;p&gt;I would check the actual connection interval, and then I would use a sniffer to see what is actually happening on air. Also keep in mind that you will have to process the packets in the peripheral quickly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>