<?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>What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/16565/what-is-the-max-data-throughput-with-s132-v3</link><description>The absolute max throughput for the nRF52 using S132 v2 was 128 kbps . 
 The new S132 v3 was recently released and boasts throughput increases by 400%. Has anyone tested this and found the actual max throughput rather than an estimate? Is there example</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 24 Aug 2017 11:00:55 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/16565/what-is-the-max-data-throughput-with-s132-v3" /><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63377?ContentTypeID=1</link><pubDate>Thu, 24 Aug 2017 11:00:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b32300e-6873-4c2b-896e-b194111c5508</guid><dc:creator>Nivetha</dc:creator><description>&lt;p&gt;Thanks, Ulrich. Currently, im using att_mtu as 48 bytes which is given as NRF_BLE_GATT_MAX_MTU_SIZE. Now for this case, the connection interval is 10ms and 10 samples each sample of 12 bytes are transmitted. Can the attribute data be 44 bytes ? or do I need to reduce to 20 bytes to send more packets in 1connection interval?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63376?ContentTypeID=1</link><pubDate>Thu, 24 Aug 2017 10:10:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f9a86a0a-8414-4487-b34c-40abee03dc59</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;You will have to do some experiments. At 10ms, the length of each connection event will be limited in order to start the next one.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63375?ContentTypeID=1</link><pubDate>Thu, 24 Aug 2017 09:46:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e463ff54-dd33-4ada-8de3-accb543ba957</guid><dc:creator>Nivetha</dc:creator><description>&lt;p&gt;Hi, Ulrich! my &lt;a href="https://devzone.nordicsemi.com/question/165050/send-2-samples-12-bytes-each-every-2ms-in-nrf52dk/"&gt;question&lt;/a&gt; is posted here. I want to keep the connection interval to 10ms, Can I still set MTU 247, DLE 251 to achieve max throughput with nrf52 DK. Please help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63372?ContentTypeID=1</link><pubDate>Mon, 14 Nov 2016 13:34:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2cd3ec7-e7b1-42b5-b679-3c07b31ffe97</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;Good catch! I have notified the team that works on the SDK, and they will track this internally.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63374?ContentTypeID=1</link><pubDate>Mon, 14 Nov 2016 10:16:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f7b75e42-6d22-4468-9e6e-89afe80fdcd1</guid><dc:creator>Martin Roa Villescas</dc:creator><description>&lt;p&gt;I actually found that there is a bug in the &lt;strong&gt;ble_nus_c.h&lt;/strong&gt;. Now that the SoftDevice supports the Long ATT MTU increase, the &lt;code&gt;uint8_t data_len&lt;/code&gt; variable inside the &lt;code&gt;ble_nus_c_evt_t&lt;/code&gt; definition is not large enough to store values higher than 255. I changed the type to &lt;code&gt;uint16_t&lt;/code&gt;, increased the MTU to the maximum, and started seeing throughputs close to 800 kbps. Could you report this bug?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63373?ContentTypeID=1</link><pubDate>Mon, 14 Nov 2016 10:07:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2db702d1-5520-445f-bfcd-244f5c776b42</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;Have you also enabled event extension on both sides? And is the peer pulling the events as fast as you are sending them? With event extensions enabled, the connection interval should be as high as possible during data transfer. This lets the SoftDevice continue to send data without closing the connection event.&lt;/p&gt;
&lt;p&gt;Unfortunately, the length extended packets are more prone to noise due increased radio time, so this can be a factor in your lower throughput. If you are able to put the devices closer, or shield them from other 2.4GHz sources, does this help?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63371?ContentTypeID=1</link><pubDate>Tue, 08 Nov 2016 22:22:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4fc1b16b-b9c7-4b90-be19-ab7eb8dd8ed2</guid><dc:creator>Martin Roa Villescas</dc:creator><description>&lt;p&gt;Hi Ulrich. I&amp;#39;ve been playing with the MTU, DLE and Connection Interval parameters but I haven&amp;#39;t been able to reach the high throughputs that you mention. In your post you suggest MTU=247, DLE=251, a notification p_len of 244, and a long connection interval. How long should this connection interval be? By the way, I have an app_timer running in parallel that I use to calculate the throughput every 2 seconds. Could this timer be the reason why I cant pass a throughput of 496 kbps? Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63370?ContentTypeID=1</link><pubDate>Wed, 26 Oct 2016 07:18:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3743212b-74bb-47c4-af5f-98d55c060a5f</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;When the number of peers increase, you generally want to use shorter connection intervals if latency is important. This puts a hard limit on the amount of data you are able to send each connection interval, because the central must end the connection event in order to process the next. There are throughput numbers in the Softdevice Specification for these scenarios, and those should be relevant in that case. However, there is a special case, where latency is not important, but sending bursts of data to each slave in order is good enough. In that case, you can live with a longer connection interval and send as much as possible to each device when possible. In short, with many devices, throughput is limited in order to serve all the peripherals. You can tweak the connection parameters (with event ext. on) to balance throughput, power efficiency and latency to your needs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63369?ContentTypeID=1</link><pubDate>Tue, 25 Oct 2016 07:18:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e5a9fd1c-4d1f-4a5d-80a7-92ad0cda0ae6</guid><dc:creator>djqtsg</dc:creator><description>&lt;p&gt;HI Ulrich,&lt;/p&gt;
&lt;p&gt;I wonder whether you have tested throughput in a case whereby there are multiple slaves, let&amp;#39;s say maximum 7.
We have an application where multiple sensors transmit data packets (30+ bytes long, 50~100Hz) to a gateway. Previously we used nrf24l01 as the radio, now we are considering BLE 4.2; so we want to know the BLE 4.2 performance in 1-many case.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63368?ContentTypeID=1</link><pubDate>Tue, 27 Sep 2016 07:46:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:adb692cb-0f5f-4740-be04-dd5b028f5307</guid><dc:creator>djqtsg</dc:creator><description>&lt;p&gt;Hi Ulrich,&lt;/p&gt;
&lt;p&gt;Can you take a look at my &lt;a href="https://devzone.nordicsemi.com/question/96541/problem-with-ble-payload-size-larger-than-23/"&gt;Q here&lt;/a&gt;? Thx.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63367?ContentTypeID=1</link><pubDate>Mon, 26 Sep 2016 08:35:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e789ec1-0c07-4e36-8113-2d8973a8add5</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;I work more on the SoftDevice directly than through the SDK, but if that define is used in the att_mtu field it should be updated. Outside of the things I mentioned (ATT_MTU, rxtx_max_pdu_payload_size, conn_evt_ext.enable) nothing else needs to be done, except initiating the MTU exchange procedure once the link is set up.&lt;/p&gt;
&lt;p&gt;sd_ble_opt_set() for setting DLE size should be set after enabling the stack, but before going into a connection. It might not be needed in some cases, as it should default to ATT_MTU+4 automatically. Increasing MTU size will indeed change the memory requirements, as the stack needs larger buffers to reassemble the PDUs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63366?ContentTypeID=1</link><pubDate>Mon, 26 Sep 2016 02:08:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e844fca4-08e7-48da-8d90-79059256e567</guid><dc:creator>djqtsg</dc:creator><description>&lt;p&gt;Are there any other parameters that need to be changed, like NRF_BLE_MAX_MTU_SIZE?&lt;/p&gt;
&lt;p&gt;I am using UART sample code to test DLE feature. If I change NRF_BLE_MAX_MTU_SIZE to a bigger size than GATT_MTU_SIZE_DEFAULT, the app_ram_base should also be changed accordingly; otherwise softdevice_enable() returns error.&lt;/p&gt;
&lt;p&gt;In the UART sample code, I cannot find where sd_ble_opt_set() is called. So if I want to call it, where should I do, in softdevice_enable()?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63365?ContentTypeID=1</link><pubDate>Wed, 21 Sep 2016 00:30:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77e38cc5-cc35-4c99-aad4-dabbc16c1b40</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;By &amp;quot;raw L2CAP traffic&amp;quot; I meant inlcuding ATT headers and L2CAP headers. Not counting preamble, access address and other baseband parameters. Actual user-defined ATT data traffic is slightly lower, but it should be in the same ballpark - i.e. around 775kbits depending on noise and connection parameters. Very long connection intervals are better with extended connection events, because the SoftDevice can keep on sending without spending time opening/closing events.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63364?ContentTypeID=1</link><pubDate>Tue, 20 Sep 2016 23:39:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:53c003ba-4f10-4ab6-86ce-e27fcdb8b52f</guid><dc:creator>jmc</dc:creator><description>&lt;p&gt;Actual data throughput with overhead removed was almost 800 kbps?  Wow!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the max data throughput with S132 v3?</title><link>https://devzone.nordicsemi.com/thread/63363?ContentTypeID=1</link><pubDate>Tue, 20 Sep 2016 22:12:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0bcdc784-bf6c-4a11-962f-032d1263001b</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;Internally I have been able to reach speeds just shy of 800kbps, and over that if you look at the raw L2CAP traffic.&lt;/p&gt;
&lt;p&gt;To reach the maximum throughput, you need a peer that also supports Data Length Extensions. The length of these should be configured so that it is 4 bytes longer than the ATT MTU size, so that the full packet (including 4 bytes of L2CAP overhead) fits into a single packet. Example values could be an ATT MTU of 247 and a DLE size of 251. Additionally, there is a possibility to enable extended connection events, which will boost the throughput a lot when on a single connection. This simply lets the softdevice keep the connection event running until the next event, or until the peer NACKs a packet.&lt;/p&gt;
&lt;p&gt;Mini-guide on how to accomplish this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;During SoftDevice enable, set enable_params-&amp;gt;gatt_enable_params.att_mtu to 247.&lt;/li&gt;
&lt;li&gt;Set DLE size with &lt;code&gt;sd_ble_opt_set(BLE_GAP_OPT_EXT_LEN, &amp;amp;opt)&lt;/code&gt; where opt.gap_opt.ext_len.rxtx_max_pdu_payload_size = 251 (This step should be optional, but if DLE has been disabled earlier it has to be done).&lt;/li&gt;
&lt;li&gt;Enable event extension with the options API. &lt;code&gt;sd_ble_opt_set(BLE_COMMON_OPT_CONN_EVT_EXT, &amp;amp;opt)&lt;/code&gt;  where opt.common_opt.conn_evt_ext.enable = 1.&lt;/li&gt;
&lt;li&gt;Establish a connection as normal, &lt;strong&gt;preferably with a very long connection interval&lt;/strong&gt;, and initiate an MTU exchange using the relevant APIs. The SoftDevice will automatically initiate DLE negotiation after the MTU exchange has completed. If successful, this produces an extra event stating that the data length was increased.&lt;/li&gt;
&lt;li&gt;Send longer data packets than before. Remember that for notifications and write commands, 3 bytes are lost in overhead. This means you should be able to segment your data into ATT_MTU-3 = 244 byte payloads.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Keep in mind that long link layer PDUs are more sensitive to noise, as they take longer to transmit. Some peers might limit both ATT MTU and DLE sizes, so it is had to say exactly what you should expect when not testing nRF52 vs. nRF52.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>