<?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>[nRF52832 SDK12.1] Extended MTU with and without DLE</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/17860/nrf52832-sdk12-1-extended-mtu-with-and-without-dle</link><description>Hi, 
 I&amp;#39;m developing an application based on the nRF52832 and I need a large throughput of over 100kbps, preferably over 200kbps.
I have managed to reach around 128kbps using an interval of 7.5ms and the 6 slots of the standard spec.
However, I would</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 24 Nov 2016 09:18:34 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/17860/nrf52832-sdk12-1-extended-mtu-with-and-without-dle" /><item><title>RE: [nRF52832 SDK12.1] Extended MTU with and without DLE</title><link>https://devzone.nordicsemi.com/thread/68847?ContentTypeID=1</link><pubDate>Thu, 24 Nov 2016 09:18:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6a5876d3-2165-4124-ad09-11075259cb93</guid><dc:creator>Michael</dc:creator><description>&lt;p&gt;OK, I think I got it. I wrote a simple application that sends constant data continuously based on &lt;a href="https://github.com/anasimtiaz/ble_app_ais"&gt;this project&lt;/a&gt;, and I got a data rate of 190kbps with an MTU of 158, but without DLE (27 byte packets).  I can share the project if anyone is interested.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF52832 SDK12.1] Extended MTU with and without DLE</title><link>https://devzone.nordicsemi.com/thread/68846?ContentTypeID=1</link><pubDate>Thu, 24 Nov 2016 09:14:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:283c64e7-62c3-482e-b74a-2467b62d115b</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;The client initiates the MTU request, and the server responds. The relevant API calls, events and configurations needed in &lt;code&gt;sd_ble_enable&lt;/code&gt; should all be in the MSCs I linked to.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF52832 SDK12.1] Extended MTU with and without DLE</title><link>https://devzone.nordicsemi.com/thread/68844?ContentTypeID=1</link><pubDate>Wed, 23 Nov 2016 12:16:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2cbe55dd-ddcf-4312-ab76-e70916f6337e</guid><dc:creator>Michael</dc:creator><description>&lt;p&gt;Thanks again Ulrich.
I still don&amp;#39;t see how the server can initiate the exchange MTU request.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF52832 SDK12.1] Extended MTU with and without DLE</title><link>https://devzone.nordicsemi.com/thread/68845?ContentTypeID=1</link><pubDate>Wed, 23 Nov 2016 10:15:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b30663ac-a1c1-4e47-a6ec-ba8b86871eb5</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;&lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s132.api.v3.0.0%2Fgroup___b_l_e___g_a_t_t_s___m_t_u___e_x_c_h_a_n_g_e.html"&gt;GATT Server side&lt;/a&gt; and &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s132.api.v3.0.0%2Fgroup___b_l_e___g_a_t_t_c___m_t_u___e_x_c_h_a_n_g_e.html&amp;amp;cp=2_3_0_1_0_2_2_3_0"&gt;GATT Client side&lt;/a&gt;. The MSCs are very useful in describing various situations that can occur.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF52832 SDK12.1] Extended MTU with and without DLE</title><link>https://devzone.nordicsemi.com/thread/68843?ContentTypeID=1</link><pubDate>Tue, 22 Nov 2016 08:05:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:df200b62-4fa8-4b5c-8530-6354130f2806</guid><dc:creator>Michael</dc:creator><description>&lt;p&gt;Thank you Ulrich for this explanation.  It does indeed clarify things.
However, it would be helpful to look at example code to really understand the implementation of either solution.
Specifically, it&amp;#39;s not clear to me how the GATT server can initiate an MTU exchange.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [nRF52832 SDK12.1] Extended MTU with and without DLE</title><link>https://devzone.nordicsemi.com/thread/68842?ContentTypeID=1</link><pubDate>Mon, 21 Nov 2016 09:29:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:af084ce4-96f9-4918-bf72-f6088e76d288</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;I can try to summarize a bit what extended ATT MTU and DLE actually do.&lt;/p&gt;
&lt;p&gt;When you increase the ATT MTU size, you increase the maximum logical length of a complete PDU. If the PDU cannot fit in a single on-air packet, it will be fragmented on the link-layer level. This means that the next on-air packet will have a continuation bit set, and no L2CAP or ATT header, basically saying that what follows should be appended directly onto the PDU you are building. Since the first packet contains the length of the complete PDU, the stack knows when the reassembly is complete. Similarly, if a new packet without the continuation bit is received, all the data will be discarded. This can happen in cases where a more important PDU needs to be sent first. However, each on-air packet will have the LL header. This includes preamble, access address, CRC and MIC (if encrypted).&lt;/p&gt;
&lt;p&gt;When you increase the DLE size, you increase the maximum length of an on-air packet. It will not have any direct effect on throughput with the default ATT MTU, but will reduce the fragmentation and LL header overhead significantly when used in tandem with extended ATT MTU.&lt;/p&gt;
&lt;p&gt;The Nordic Softdevices with DLE support also comes with the option to enable connection event extensions, which can further improve the throughput. Enabling this allows the SoftDevice to continue sending packets until the next connection event is scheduled, or the peer device runs out of receive buffers. With multiple active links, this will have little to no effect, but it gives huge gains on single links - especially if the connection interval is as long as possible. This might feel counter-intuitive to what has been previously learned, where you want the interval to be as short as possible, but there is quite a lot of overhead in opening and closing a connection event too.&lt;/p&gt;
&lt;p&gt;To summarize quickly: Increasing ATT MTU gives longer logical PDUs, which are fragmented without L2CAP/ATT overhead. Enabling DLE gives longer on-air packets when needed. Connection events can be extended for further throughput, by increasing the number of packets sent per connection interval.&lt;/p&gt;
&lt;p&gt;Hope this clears things up a bit!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>