<?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>DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/57980/dle-support-from-android-ble-4-2-working-but-dle-support-from-windows-ble5-0-negotiation-fails</link><description>After the MTU size exchange of 247 bytes with Android LL_LENGTH_REQ/LL_LENGTH_RSP are exchanged with 123 byte octets for TX and RX. Data flows properly after that. 
 But with Windows, after the MTU size exchange of 247 bytes an LL_LENGTH_REQ is sent with</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 26 Feb 2020 22:56:49 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/57980/dle-support-from-android-ble-4-2-working-but-dle-support-from-windows-ble5-0-negotiation-fails" /><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/236664?ContentTypeID=1</link><pubDate>Wed, 26 Feb 2020 22:56:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c907b3d4-e978-42f4-93b5-748b579d8491</guid><dc:creator>Mark P. Mendelsohn</dc:creator><description>&lt;p&gt;The&amp;nbsp;&lt;span&gt;sd_ble_gap_data_length_update() was not being called because it was in the wrong place in the code. We still printed the fact that we received the&amp;nbsp;BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST in the log. Now that we are calling&amp;nbsp;sd_ble_gap_data_length_update() in response to the BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST&amp;nbsp;the negotiations are working and we can make a connection and transfer our file over DFU. Thanks&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/236428?ContentTypeID=1</link><pubDate>Wed, 26 Feb 2020 08:17:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:09fb072d-0e04-402b-abed-f1816dd59f83</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Mark,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;thanks for the trace. I forgot to ask which S132 version are you using? Looking at the trace its pretty clear that the nRF is not replying to the LL_LENGTH_REQ.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can you confirm that&amp;nbsp;&lt;span&gt;sd_ble_gap_data_length_update() returns NRF_SUCCESS when its called on the&amp;nbsp;BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST event? I assume that you do not get the BLE_GAP_EVT_DATA_LENGTH_UPDATE event after calling&amp;nbsp;sd_ble_gap_data_length_update()?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I also noticed that things break when its the nRF that sends the MTU Exchange Request, but when the Intel device( Central) initiates the MTU Exchange, then things proceed as normal.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Comparing&amp;nbsp;0743.hp pavilion large mtu 02-25-20.pcapng&amp;nbsp;with&amp;nbsp;default mtu size.pcapng, I cant really see why the nRF does not respond to the LL_LENGTH_REQ in the&amp;nbsp;&amp;nbsp;&amp;nbsp;0743.hp pavilion large mtu 02-25-20.pcapng when it does this in the&amp;nbsp;default mtu size.pcapn. The LL PDU order is exactly the same in both traces.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Is this behavior 100% consistent, i.e. if you leave set the ATT MTU size higher than the default value then the negotiation Data length or ATT MTU negotioation halts every time?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Could you try to add an even longer delay in&amp;nbsp;on_connected_evt() just before the call to sd_ble_gattc_exchange_mtu_request()? Like a full second or more? We want to see if the nRF replies to the LL_LENGTH_REQ then and if the Intel device then initiates the MTU Exchange procedure.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/236362?ContentTypeID=1</link><pubDate>Tue, 25 Feb 2020 17:16:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c2dd73a1-ce34-40e6-aa76-e78ffd366b76</guid><dc:creator>Mark P. Mendelsohn</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/0743.hp-pavilion-large-mtu-02_2D00_25_2D00_20.pcapng"&gt;devzone.nordicsemi.com/.../0743.hp-pavilion-large-mtu-02_2D00_25_2D00_20.pcapng&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/8322.large-mtu-hp-pavilion-2_2D00_25_2D00_20-v2.log"&gt;devzone.nordicsemi.com/.../8322.large-mtu-hp-pavilion-2_2D00_25_2D00_20-v2.log&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/236159?ContentTypeID=1</link><pubDate>Tue, 25 Feb 2020 08:36:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:34de0f9a-e4a9-47ab-a52c-fb833a33601e</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Great. I&amp;#39;ll wait for the OTA trace and then analyze it with the SoftDevice team to figure out what the cause of the issue is.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/236102?ContentTypeID=1</link><pubDate>Tue, 25 Feb 2020 00:23:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dc83868a-32e1-4e47-b30a-7443232b976f</guid><dc:creator>Mark P. Mendelsohn</dc:creator><description>&lt;p&gt;Added a 500ms delay in on_connected_evt() just before the call to sd_ble_gattc_exchange_mtu_request(). It still did not work. I will be able to take an OTA trace in the morning and attach it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/235654?ContentTypeID=1</link><pubDate>Fri, 21 Feb 2020 08:50:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:402f4cff-589b-42c8-9331-2c861c05df5a</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;OK, that is interesting. I see that the MTU exchange procedure now occurs after all the LL transactions and is triggered by the master , instead of immediatly after the connection establishment triggered by the slave as before. So it could be that the time and place of the MTU exchange has a role to play here.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Did you try leaving the MTU size at 247 on the Nordic side and then just delay the sd_ble_gattc_exchange_mtu_request&lt;span&gt;() call that triggers the&amp;nbsp;BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST&amp;nbsp;from the slave? In my previous reply I stated that a delay should be added before the&amp;nbsp;on_exchange_mtu_request_evt() call in&amp;nbsp;nrf_ble_gatt_on_ble_evt(). THis is incorrect, it should have been the&amp;nbsp;on_connected_evt() call under the BLE_GAP_EVT_CONNECTED case in&amp;nbsp;nrf_ble_gatt_on_ble_evt() in nrf_ble_gatt.c&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/235587?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2020 21:34:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c2fa39d-8099-4df5-98d5-5a6d37e32b0d</guid><dc:creator>Mark P. Mendelsohn</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/default-mtu-size.pcapng"&gt;devzone.nordicsemi.com/.../default-mtu-size.pcapng&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/default-mtu-size.log"&gt;devzone.nordicsemi.com/.../default-mtu-size.log&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;When the default MTU size is used on the Nordic side, the negotiations are successful.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/235573?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2020 19:23:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:51ed7994-a0d0-49c1-afe0-73dba03d40f8</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;According to the RTT logs from the nRF the connection is disconnected with reason 0x13(&amp;nbsp;BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION), i.e. the central tore down the connection. This is not shown in the on-air trace, as both slave and master keeps sending empty PDU after the&amp;nbsp;&lt;span&gt;LL_LENGTH_REQ.&lt;/span&gt;&amp;nbsp; Did you stop the capture before the disconnection occured?&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I assume that sd_ble_gap_data_length_update() returns NRF_SUCESS? The actual LL_LENGTH_RSP is sent asynch from the&amp;nbsp;sd_ble_gap_data_length_update() call and you will get the BLE_GAP_EVT_DATA_LENGTH_UPDATE event when the response has been sent. Do you recieve this event? If the link is disconnected before this occurs, then that explains the missing&amp;nbsp;BLE_GAP_EVT_DATA_LENGTH_UPDATE&amp;nbsp; event and the missing&amp;nbsp;LL_LENGTH_RSP, but the fact that the on-air trace indicates that the link is still active puzzles me.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Just to check if the&amp;nbsp;&lt;span&gt;ATT_EXCHANGE_MTU_REQ&amp;nbsp;is casing the issues, could you try to&amp;nbsp;add short delay before the&amp;nbsp;on_exchange_mtu_request_evt call under the&amp;nbsp;BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST case in&amp;nbsp;nrf_ble_gatt_on_ble_evt() in nrf_ble_gatt.c?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/235565?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2020 17:48:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9b9ce19b-e7db-4e5b-a1ee-5af8fb23c241</guid><dc:creator>Mark P. Mendelsohn</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/largemtu-hp-pavilion.log"&gt;devzone.nordicsemi.com/.../largemtu-hp-pavilion.log&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/hp-pavilion-ble-5-02_2D00_20_2D00_20.pcapng"&gt;devzone.nordicsemi.com/.../hp-pavilion-ble-5-02_2D00_20_2D00_20.pcapng&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Attached is a new set of traces from both OTA and RTT sides.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We are getting the&amp;nbsp;&lt;span&gt;BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST. There was no&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;initial reply with&amp;nbsp;sd_ble_gap_data_length_update, but it is now added. It did not affect the outcome,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;however.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1745 case BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST:&lt;br /&gt; 1746 {&lt;br /&gt; 1747 ble_gap_data_length_params_t dl_params =&lt;br /&gt; 1748 {&lt;br /&gt; 1749 .max_tx_octets = BLE_GAP_DATA_LENGTH_AUTO,&lt;br /&gt; 1750 .max_rx_octets = BLE_GAP_DATA_LENGTH_AUTO,&lt;br /&gt; 1751 };&lt;br /&gt; 1752&lt;br /&gt; 1753 ret_code_t err_code = sd_ble_gap_data_length_update(p_evt-&amp;gt;conn_handle, &amp;amp;dl_params, NULL);&lt;br /&gt; 1754&lt;br /&gt; 1755 APP_ERROR_CHECK(err_code);&lt;br /&gt; 1756 } break;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/235474?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2020 13:46:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:00135a73-3def-466b-8e62-8e5e6bcf1d56</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Do you get the&amp;nbsp;BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST event on the nRF side? Could you check whether the NRF device is calling&amp;nbsp;sd_ble_gap_data_length_update() to respond to the LL_LENGTH_REQ as shown in the&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v7.0.1/group___b_l_e___g_a_p___d_a_t_a___l_e_n_g_t_h___u_p_d_a_t_e___p_r_o_c_e_d_u_r_e___m_s_c.html"&gt;Data Length Update Procedure&lt;/a&gt;&amp;nbsp;Message sequence chart.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DLE support from Android BLE 4.2 working but DLE Support from Windows BLE5.0 negotiation fails.</title><link>https://devzone.nordicsemi.com/thread/235407?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2020 10:44:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c54d9a24-ca02-4061-a45a-05545132035f</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;HI Mark,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;the slave is sending a&amp;nbsp;ATT_EXCHANGE_MTU_REQ in the same connection event as the master sends the LL_FEATURE_REQ. Our nrf_ble_gatt.c module will initiate a&amp;nbsp;&amp;nbsp;ATT MTU exchange, i.e. call&amp;nbsp;&lt;span&gt;sd_ble_gattc_exchange_mtu_request()&amp;nbsp;&lt;/span&gt; if the NRF_SDH_BLE_GATT_MAX_MTU_SIZE is larger than the&amp;nbsp;BLE_GATT_ATT_MTU_DEFAULT.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So it would seem that the nRF is waiting for the&amp;nbsp;&lt;span&gt;ATT_EXCHANGE_MTU_RSP, while the central is waiting for the&amp;nbsp;LL_LENGTH_RSP. I am not quite sure which request that should have priority, need to check the spec / confer with the SoftDevice team.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Meanwhile, could you try to set&amp;nbsp;NRF_SDH_BLE_GATT_MAX_MTU_SIZE&amp;nbsp;==&amp;nbsp;BLE_GATT_ATT_MTU_DEFAULT and see if that resolves the &amp;quot;deadlock&amp;quot;?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Bjørn&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>