<?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>Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/56808/bidirectional-throughput-analysis-with-nrf52840-and-android</link><description>Hello Team, 
 Currently, we are evaluating nRF52 using nRF52840DK for one of our upcoming project. Basically, our typical application involves sending 32 Bytes of command data from Android to nRF52 and getting 256 bytes from nRF52 to Android. 
 Considering</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 31 Jan 2020 13:05:46 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/56808/bidirectional-throughput-analysis-with-nrf52840-and-android" /><item><title>RE: Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/thread/232091?ContentTypeID=1</link><pubDate>Fri, 31 Jan 2020 13:05:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d35ec4e0-9aa9-4472-b068-9be8e240855a</guid><dc:creator>Dmitry</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m impressed with your results - we have got much lower speeds (no more than 12 kbytes/sec from device to app). It&amp;#39;s interesting to look at sniffer trace. Could you write a short help how to&amp;nbsp;use your example? I&amp;#39;m trying to set all parameters but got&amp;nbsp; &amp;quot;Wrong board setup!&amp;quot;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/thread/232068?ContentTypeID=1</link><pubDate>Fri, 31 Jan 2020 11:51:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:87ed59ba-0cb5-448b-a861-907fea93671d</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Ah, sorry. This was filtered in my head.&lt;/p&gt;
&lt;p&gt;Write &lt;em&gt;with&lt;/em&gt; the response (reliable write) will take&amp;nbsp;two events since the application layer on the peer needs to accept the write, which then happens in the next event. This is not suitable if you want high throughput. Write &lt;em&gt;without&lt;/em&gt; response also requires an ack before continuing, which may or may not occur in the same connection event depending on the implementation. You should use notifications instead if you need high throughput.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/thread/232028?ContentTypeID=1</link><pubDate>Fri, 31 Jan 2020 09:20:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eccf7e15-d174-4969-b855-e055526d332c</guid><dc:creator>aslamz</dc:creator><description>&lt;p&gt;Hi Einar,&lt;/p&gt;
&lt;p&gt;we are able to send multiple notifications in a single connection interval. We are using notification only not indication.&lt;/p&gt;
&lt;p&gt;My question is when we are writing from android to&amp;nbsp;NRF can we able to send a response back to android as a notification in the same connection interval(both write and notification)?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/thread/232011?ContentTypeID=1</link><pubDate>Fri, 31 Jan 2020 08:05:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2207a87-de17-40cf-a59a-7dd7f5f9e5df</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I do not have an explanation for this based on the nRF Configuration. There should be no problem sending multiple notifications in the same connection event. Note that if you used indications that would be different since an indication must be acked before another is sent. Can you double-check that you are using notifications (as you wrote initially), and not indications?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/thread/231998?ContentTypeID=1</link><pubDate>Fri, 31 Jan 2020 05:22:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7009c32f-ad30-4e0d-b0b6-68c346d36c90</guid><dc:creator>aslamz</dc:creator><description>&lt;p&gt;Hi Einar,&lt;/p&gt;
&lt;p&gt;I cross-checked the&amp;nbsp;NRF_SDH_BLE_GAP_EVENT_LENGTH value it&amp;#39;s 400. When just sending data in unidirectional either by writing without a response from the client to server or Notification from server to client being able to send 7 packet&amp;#39;s in a connection interval. But the bottleneck is coming up when we are doing this bidirectional transfer.&lt;/p&gt;
&lt;p&gt;Even I observe write with the response is taking 2 connectin intervals. 1 is for writing and another one for the response.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/thread/231648?ContentTypeID=1</link><pubDate>Wed, 29 Jan 2020 12:47:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:78895d71-8ebe-420e-b80e-fdad564b25c9</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user="aslamz"]is there any possibility is there to improve the throughput further by fitting both writing and response in a&amp;nbsp;single connection interval?[/quote]
&lt;p&gt;The SoftDevice used to have API to specify the maximum number of packets per connection (up to version 2 if my memory is correct), but recent SoftDevice versions does not have that. Instead, you configure the event length. With a large maximum event length, more packets can fit into one event. This is described in &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/44297/nrf52840-softdevice-s140-max-attmtu-size-and-number-of-packets-per-connection-interval/174052#174052"&gt;this post&lt;/a&gt;. Note that the&amp;nbsp;ble_app_att_mtu_throughput example already has this set to a high value (400 * 1.25 ms). Another point is that the event length can be limited by the connection interval. So you should not use a high connection interval if you try to get high throughput by having long event lengths.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/thread/231603?ContentTypeID=1</link><pubDate>Wed, 29 Jan 2020 10:51:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb9fc781-b67d-43ed-a295-ccd24a6ef576</guid><dc:creator>aslamz</dc:creator><description>&lt;p&gt;Hi Einar,&lt;/p&gt;
&lt;p&gt;we are using &lt;strong&gt;MTU 247&lt;/strong&gt; that&amp;#39;s the maximum MTU size peripheral is supported and &lt;strong&gt;DLE 251&lt;/strong&gt;&amp;nbsp;as well, we are using bidirectional data transfer, so by examining using NRF sniffer with Wireshark, for writing it&amp;#39;s taking 1 connection interval and for the notification (response from peripheral) happens in the next connection interval. &lt;br /&gt;so if we calculate for 10k, 10*1024 =10240 / 244(maximum number of byte in a packet) = 42 packet for 10k.&lt;/p&gt;
&lt;p&gt;For each packet master will send a written request. 42*2(request 1 packet and response another 1 packet) = 84.&lt;/p&gt;
&lt;p&gt;84*11.25(connection interval) = &lt;strong&gt;945ms&lt;/strong&gt;, which is nearby value to our observation&amp;nbsp;that is&amp;nbsp;&lt;strong&gt;1 second&lt;/strong&gt;&amp;nbsp;practically.&lt;/p&gt;
&lt;p&gt;I tested with Samsung S10, one plus 6 and Samsung M30 all the results are near to 950ms - 1.2 Second&lt;/p&gt;
&lt;p&gt;is there any possibility is there to improve the throughput further by fitting both writing and response in a&amp;nbsp;single connection interval?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bidirectional throughput analysis with nrf52840 and Android</title><link>https://devzone.nordicsemi.com/thread/230087?ContentTypeID=1</link><pubDate>Tue, 21 Jan 2020 13:32:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:880085f6-f5c7-43cf-bfb4-17a9bb0d5b7e</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The maximum throughput of Android devices varies with phone models and Android versions (as is the case with iOS). The phone may also adjust relevant parameters depending on the state of the phone and the application in question (foreground/background etc.). There are a few things you can do on the Android application to influence this. I do not have any recent documentation, but you can find a good (but slightly dated) overview &lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/what-to-keep-in-mind-when-developing-your-ble-andr"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>