<?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>NRF52/BLE4.2 data data throughout</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/22734/nrf52-ble4-2-data-data-throughout</link><description>Hi, 
 When i used nrf51822, i remember the s110 define max transmit buffer as 23 Bytes, but now, i am using nrf52832, the max transimit buffer is defined as 158 bytes.
Does this is the general standard define in offical BLE 4.2?
if so, is it means</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 14 Jun 2017 07:49:32 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/22734/nrf52-ble4-2-data-data-throughout" /><item><title>RE: NRF52/BLE4.2 data data throughout</title><link>https://devzone.nordicsemi.com/thread/89378?ContentTypeID=1</link><pubDate>Wed, 14 Jun 2017 07:49:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fbe944cc-124b-41ad-a621-3827ebeb0a8e</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Actually the ble_app_uart in SDK 13 will by default try to enable DLE and increase the ATT_MTU. By default, it will try to set the ATT_MTU to 64 and set the DLE to &lt;code&gt;NRF_BLE_GATT_MAX_MTU_SIZE + LL_HEADER_LEN&lt;/code&gt;. But you need to check the log to see if it was successfully increased (i.e. if the other device accepted the increase or not, by default the link starts with ATT_MTU 23 and no DLE, but it’s then negotiated higher). If you set the NRF_LOG_DEFAULT_LEVEL to DEBUG (#define &lt;code&gt;NRF_LOG_DEFAULT_LEVEL&lt;/code&gt; 4 in sdk_config.h), you should be able to see the parameters that is negotiated between the central and peripheral. (Also remember to set #define &lt;code&gt;NRF_LOG_BACKEND_SERIAL_USES_UART&lt;/code&gt; 1, if you are using UART as backend for NRF_LOG).&lt;/p&gt;
&lt;p&gt;If DLE is not support on the other device, you will see the following values in the log:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nrf_ble_gatt:DEBUG:max_rx_octets: 27
nrf_ble_gatt:DEBUG:max_tx_octets: 27
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For the ATT_MTU you will see something like this when it&amp;#39;s updated:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nrf_ble_gatt:DEBUG:Updating ATT MTU to 64 bytes (desired: 64) on connection 0x0.
nrf_ble_gatt:DEBUG:ATT MTU updated to 64 bytes on connection 0x0 (response).
APP:INFO:Data len is set to 0x3D(61)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Depending on what settings the devices negotiate, the &lt;code&gt;m_ble_nus_max_data_len&lt;/code&gt; will be updated in the &lt;code&gt;gatt_evt_handler()&lt;/code&gt; function. When &lt;code&gt;ble_nus_string_send()&lt;/code&gt; is used in &lt;code&gt;uart_event_handle()&lt;/code&gt; there is a check so that it will not send anything longer than &lt;code&gt;m_ble_nus_max_data_len&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if ((data_array[index - 1] == &amp;#39;\n&amp;#39;) || (index &amp;gt;= (m_ble_nus_max_data_len)))
            {
                NRF_LOG_DEBUG(&amp;quot;Ready to send data over BLE NUS\r\n&amp;quot;);
                NRF_LOG_HEXDUMP_DEBUG(data_array, index);

                do
                {
                    err_code = ble_nus_string_send(&amp;amp;m_nus, data_array, index);
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF52/BLE4.2 data data throughout</title><link>https://devzone.nordicsemi.com/thread/89377?ContentTypeID=1</link><pubDate>Tue, 13 Jun 2017 15:07:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cf994e25-1cac-4b64-b78e-7b8d4068cf40</guid><dc:creator>simon</dc:creator><description>&lt;p&gt;Hi Sigurd,&lt;/p&gt;
&lt;p&gt;Thank you. I am new with nrf52832, so, I am confusing with DLE you mean. how can I enable the DLE? I am using the example code &amp;quot;.\ble_peripheral\ble_app_uart&amp;quot;
And, I found in the example code, gatt_init() function call nrf_ble_gatt_att_mtu_periph_set(&amp;amp;m_gatt, 64);
that means it set the MTU with value 64.
but, the function ble_ecg_string_send(), it used if (length &amp;gt; BLE_NUS_MAX_DATA_LEN), but BLE_NUS_MAX_DATA_LEN was set (158-3).
Do these have potential risk?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF52/BLE4.2 data data throughout</title><link>https://devzone.nordicsemi.com/thread/89379?ContentTypeID=1</link><pubDate>Tue, 13 Jun 2017 09:09:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ac22026-ec57-48c7-bc64-79121434c14d</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Not really, BT SIG leaves &amp;quot;default&amp;quot; ATT_MTU size unchanged on 23 bytes. Devices can exchange maximum MTU size capabilities once during the link and since then maximum size implicitly moves the the lower of two max values exchanged. This is managed by S132/140 Soft Devices on nRF52 chip where larger ATT_MTU sizes are supported (it seems never coming to nRF51 with Nordic Soft Devices due to RAM constrains).&lt;/p&gt;
&lt;p&gt;Throughput is directly influenced by ATT_MTU size (if you run on top of (G)ATT layer of course;), you can see some example computation in the respective section of &lt;a href="https://devzone.nordicsemi.com/blogs/1078/throughput-and-long-range-demo/"&gt;Nordic BT 4.2/5.0 throughput blog post&lt;/a&gt;. As you can see resulting throughput is also influenced by LL packet size aka PDU because higher-layer ATT_MTU must be split among several packets (and maximum sizes influence how much overhead you need to have).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF52/BLE4.2 data data throughout</title><link>https://devzone.nordicsemi.com/thread/89376?ContentTypeID=1</link><pubDate>Tue, 13 Jun 2017 09:09:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:37a3ef7a-95db-4817-b2ed-01b4cd8dad98</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;With BLE 4.1 the ATT MTU is 23 bytes, but with BLE 4.2 it can be increased up to 247 bytes. The throughput you can achieve also depends on the connection interval, how many packets you can send each connection event, and if you have enabled DLE (Data length extension) and Connection event length extension.&lt;/p&gt;
&lt;p&gt;If both sides of the links supports all these settings, you can achieve ~770 kbps with BLE 4.2.&lt;/p&gt;
&lt;p&gt;See these links for more information:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.sds/dita/softdevices/s130/ble_data_throughput/ble_data_throughput.html?cp=2_4_0_0_16"&gt;BLE data throughput&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/blogs/1078/throughput-and-long-range-demo/"&gt;Throughput and long range demo&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>