<?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 transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/23151/slow-transfer-speed-to-an-nrf52</link><description>Hello! 
 We are doing transfer from an Android app to a device using nRF52. We don&amp;#39;t get the transfer speed I have seen other achieve. I get between 8.5-10 kbps. As a reference, if I run DFU I get 16 kbps. But I still want these ~100 kbps I have seen</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 30 Jun 2017 10:44:42 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/23151/slow-transfer-speed-to-an-nrf52" /><item><title>RE: Slow transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/thread/91062?ContentTypeID=1</link><pubDate>Fri, 30 Jun 2017 10:44:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0ebb536a-0c75-47f2-83d9-83895c1f070e</guid><dc:creator>Stefan</dc:creator><description>&lt;p&gt;Thank endnode. I looked into bandwidth and it says if S132 is peripheral (as my nRF52 device is) high BW is default. I hope I have read the documentation properly and also interpreted &amp;quot;BLE peripheral&amp;quot; properly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/thread/91061?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2017 20:25:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:038915af-aa65-441b-b37f-92a9bbc8bc83</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Also make sure you use proper bandwidth settings when enabling SD on nRF5x side.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/thread/91060?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2017 20:23:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30c01438-df87-4c5c-a35e-7b8d299b884f</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Thanks for update Stefan. I&amp;#39;m really skeptical about achieving 100kbps with just &lt;em&gt;any&lt;/em&gt; android phone (which is BT SIG 4.x) especially on higher layer like GATT. Nordic specifications and examples are typically speaking about link where you control lower layers e.g. two nRF5x devices against each other, which is quire different from Android phone. Anyway if we would assume it&amp;#39;s applicable your and TurboJ numbers are pretty in-line with the last lines of first table: ~10kbps for Write with Response and ~40kbps for Write command or Notification. I would take the RF trace and see what exact parameters are on the link. Then if you are sure you use optimal GATT methods you can try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Getting shorter connection interval through Android API as suggested below.&lt;/li&gt;
&lt;li&gt;Using PDU length extension and MTU length extensions as suggested on blog zone.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/thread/91065?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2017 17:51:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:92c93f41-3f8f-416a-bb78-12bee8ea6bcc</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;That&amp;#39;s definitely nice! Could you just for the record share PDU/MTU sizes, number of packets per interval and Soft Device version used? Could be great data point for Stefan and all of us...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/thread/91064?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2017 17:49:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2a99ebe-8fba-4420-bd1c-65df2163b201</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;I get about 4,5 KByte/sec in my app (against NRF52x), that is about 40kBit/sec. The connection interval will be about 15ms.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/thread/91067?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2017 15:08:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9102b2be-0bfd-4449-baaa-8136d8726e14</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Yes, but that makes the situation even more complicated: you can set this &amp;quot;wish&amp;quot; from Android app layer but how exactly lower BLE stacks react can be highly vendor dependent. Shorter connection interval can mean that stack won&amp;#39;t allow certain MTU sizes or multiple packets per interval etc. Or you have good experience with this and you&amp;#39;ve managed to push throughput over BLE GATT layer beyond 10-20kbps?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/thread/91066?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2017 14:55:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:843305a6-acb0-4c63-b426-28e10e2cec59</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Android supports lower connection intervals beginning in 5.0 (Lollipop): &lt;a href="https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#requestConnectionPriority(int)"&gt;See requestConnectionPriority()&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow transfer speed to an nRF52</title><link>https://devzone.nordicsemi.com/thread/91063?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2017 11:48:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fb47b17a-4717-40e7-8ad2-77072c298bb5</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Hi Stefan,&lt;/p&gt;
&lt;p&gt;Where have you seen higher data rates then 10~16kbps on Android? Once it comes to real applications this is where we all live with BLE... phones typically settle on much higher connection interval (Android = 48.75ms)  then what is the minimum allowed (7.5ms), also supporting ATT_MTU extension (you are saying you use default 23B) and PDU extension are not always seamlessly supported, number of MTUs per connection interval is again property of low level BLE stack which you cannot influence. If you really want to achieve something better then what you see then you need to understand what exact parameters are now used (= get RF log by some BLE sniffer) and what you can influence form application layer (typically just MTU size and indirectly = phone will use values it has hardcoded and you get only callback if MTU changed or not). The same on the other side of the link of course (all Nordic stacks on nRF52 now support MTU and PDU extensions, connections intervals down to 7.5ms and multiple MTUs/PDUs per interval for high throughput).&lt;/p&gt;
&lt;p&gt;When it comes to advertising:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;#39;s typically turned off by GAP
Peripheral as soon as connection is
established (this is not must in
BT4.2+ but in BT4.0-4.1 it&amp;#39;s even
mandatory to not advertise
connectable packets once there is one
connection ongoing already).&lt;/li&gt;
&lt;li&gt;Even if some device supports multiple
GAP peripheral connections and so it
restarts advertising immediately
after first connection is established
the advertising procedure itself has
typically very little or now effect
on throughput available to already
ongoing connection. This would get
worse if there are more parallel
connections established but otherwise
it would not be a major problem.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>