<?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>LL_LENGTH_REQ &amp;amp; LL_LENGTH_RSP on nRF52840 with different TX and RX size</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/108393/ll_length_req-ll_length_rsp-on-nrf52840-with-different-tx-and-rx-size</link><description>Hello! 
 I am building Central app to read data from not a fully conformant BLE devices. 
 When I connect to device with my Android or Windows app, the connection establishes immediately. Connecting with Zephyr default stack lead device into &amp;quot;broken connection</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 20 Feb 2024 13:08:06 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/108393/ll_length_req-ll_length_rsp-on-nrf52840-with-different-tx-and-rx-size" /><item><title>RE: LL_LENGTH_REQ &amp; LL_LENGTH_RSP on nRF52840 with different TX and RX size</title><link>https://devzone.nordicsemi.com/thread/469803?ContentTypeID=1</link><pubDate>Tue, 20 Feb 2024 13:08:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b47921f1-e56a-4e7f-8fc7-4a21de36db06</guid><dc:creator>Anton Fedorov</dc:creator><description>&lt;p&gt;Thank you very much for the confirmation.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LL_LENGTH_REQ &amp; LL_LENGTH_RSP on nRF52840 with different TX and RX size</title><link>https://devzone.nordicsemi.com/thread/469795?ContentTypeID=1</link><pubDate>Tue, 20 Feb 2024 12:44:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:70ff15d5-9609-4e94-b3a1-1cca840bfb3f</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Anton,&amp;nbsp;&lt;br /&gt;I&amp;#39;m glad that you found what trigger the peripheral.&amp;nbsp;&lt;br /&gt;Regarding your question, the information I got from the team is that at this moment we don&amp;#39;t support asymmetric DLE unfortunately. We will always match the RX time and TX time. We&amp;nbsp;may support it in the future but I don&amp;#39;t know when it will be implemented.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LL_LENGTH_REQ &amp; LL_LENGTH_RSP on nRF52840 with different TX and RX size</title><link>https://devzone.nordicsemi.com/thread/469612?ContentTypeID=1</link><pubDate>Mon, 19 Feb 2024 16:27:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8db82e76-45f1-4d79-a862-6c27cb153d01</guid><dc:creator>Anton Fedorov</dc:creator><description>&lt;p&gt;Unrelated to the topic question -- I&amp;#39;ve discovered that actual key to force peripheral to start sending was to send&amp;nbsp;LL_CONNECTION_UPDATE_IND, as long as the requested packet length is within accepted by the peripheral parameters (which I can tweak). So I&amp;#39;ve got&amp;nbsp;the stream I wanted.&lt;/p&gt;
&lt;p&gt;That doesn&amp;#39;t invalidate the question about LL_LENGTH_REQ -- is it possible to get it the diverse, like other stacks allows to, or not?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LL_LENGTH_REQ &amp; LL_LENGTH_RSP on nRF52840 with different TX and RX size</title><link>https://devzone.nordicsemi.com/thread/469559?ContentTypeID=1</link><pubDate>Mon, 19 Feb 2024 14:16:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c20d7c9c-8614-425f-9726-4013dc02b6b4</guid><dc:creator>Anton Fedorov</dc:creator><description>&lt;p&gt;Here is the traces:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; original-to-original-slice.pcapng.gz -- it&amp;#39;s the trace of original central to original peripheral&lt;br /&gt;&amp;nbsp; &amp;nbsp; phone-to-original-slice.pcapng.gz -- this is the trace of the phone to original peripheral&lt;br /&gt;&amp;nbsp; &amp;nbsp; nRF-to-original-slice.pcapng.gz -- this is the trace of nRF connect() to original peropheral&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve also patched the firmware of the peripheral to send 251/251 at the connection time, but surprisingly, the phone replies with 27/251 to this packets:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; phone-to-patched-slice.pcapng.gz&lt;/p&gt;
&lt;p&gt;And nRF same responds with equal TX &amp;amp; RX as to the original:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; nRF-to-patched-slice.pcapng.gz&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Yes, &amp;quot;Empty PDU&amp;quot; is what I called NOOP, sorry for wrong word usage.&lt;/p&gt;
&lt;p&gt;The peripheral is NOT properly GATT-compliant, it actually just sends stream of notifications with no other GATT server functionality, basically that&amp;#39;s why I need a central-on-chip where I can get these notifications (android ble stack doesn&amp;#39;t give access to raw notification data out of native code unless device gives list of characteristics).&lt;/p&gt;
&lt;p&gt;I had an&amp;nbsp;cc2640r2-based central implementation that was working fine, it also connected using 27/251 (same as original central do), but I can&amp;#39;t show you the trace because I&amp;#39;ve burned it out &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f603.svg" title="Smiley"&gt;&amp;#x1f603;&lt;/span&gt; and nRFs is the only kits i have left atm.&lt;/p&gt;
&lt;p&gt;Regardless of these, answer LL_LENGTH_REQ with 251/251 to 27/251 looks like a bug to me, as it should use effectively MIN() between requested of the both sides, isn&amp;#39;t it?&lt;/p&gt;
&lt;p&gt;Even if I not rely on the default only and add a request for MTU from the central, it looks like this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; Peri=&amp;gt;Cen: LL_LENGTH_REQ(27/251)&lt;br /&gt;&amp;nbsp; Cen=&amp;gt;Peri:&amp;nbsp;&lt;span&gt;LL_LENGTH_RSP(251/251)&lt;br /&gt;&amp;nbsp; Cen=&amp;gt;Peri: LL_LENGTH_REQ(251/251)&lt;br /&gt;&amp;nbsp; Peri=&amp;gt;Cen:&amp;nbsp;LL_LENGTH_RSP(27/251)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Which also seems weird to me.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5670.traces.zip"&gt;devzone.nordicsemi.com/.../5670.traces.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LL_LENGTH_REQ &amp; LL_LENGTH_RSP on nRF52840 with different TX and RX size</title><link>https://devzone.nordicsemi.com/thread/469526?ContentTypeID=1</link><pubDate>Mon, 19 Feb 2024 13:16:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:425bbe65-940c-4d2c-8706-e0065439523d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Please capture &lt;a href="https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-bluetooth-le"&gt;a sniffer trace.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Have you made sure you do a write command from the central to the peripheral to enable notification. Without that the peripheral will not send anything to the central.&amp;nbsp;&lt;br /&gt;What is NOOP ? You meant empty packets ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LL_LENGTH_REQ &amp; LL_LENGTH_RSP on nRF52840 with different TX and RX size</title><link>https://devzone.nordicsemi.com/thread/469521?ContentTypeID=1</link><pubDate>Mon, 19 Feb 2024 13:07:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ad4d0dc5-a397-4ff6-9d86-b3381d3e8d9c</guid><dc:creator>Anton Fedorov</dc:creator><description>&lt;p&gt;The peripheral doesn&amp;#39;t reject the connection, it just doesn&amp;#39;t work, failing inside of its firmware either allocating the receive buffers (if it&amp;#39;s 251/251) either failing to send non-fragmented notification (27/27).&lt;/p&gt;
&lt;p&gt;The original central has:&lt;/p&gt;
&lt;p&gt;CONN_IND&lt;/p&gt;
&lt;p&gt;LL_LENGTH_REQ(27/251)&lt;/p&gt;
&lt;p&gt;LL_LENGTH_RSP(27/251)&lt;/p&gt;
&lt;p&gt;NOOP + GATT_NOTIFICATION&lt;/p&gt;
&lt;p&gt;phone connection has more stuff going on, but practically the same the gist of it.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The nRF52840 trace is&lt;/p&gt;
&lt;p&gt;CONN_IND&lt;/p&gt;
&lt;p&gt;LL_LENGTH_REQ(27/251)&lt;/p&gt;
&lt;p&gt;LL_LENGTH_RSP(251/251) or 27/27&lt;/p&gt;
&lt;p&gt;and after only NOOPs... &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f62e.svg" title="Open mouth"&gt;&amp;#x1f62e;&lt;/span&gt;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f61e.svg" title="Disappointed"&gt;&amp;#x1f61e;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LL_LENGTH_REQ &amp; LL_LENGTH_RSP on nRF52840 with different TX and RX size</title><link>https://devzone.nordicsemi.com/thread/469515?ContentTypeID=1</link><pubDate>Mon, 19 Feb 2024 12:59:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4134ae19-e5a4-43e7-ad0f-9abc74ad2e8d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Anton,&amp;nbsp;&lt;br /&gt;Could you capture a sniffer trace of the communication so we can check if the peripheral reject the connection because of the data length ?&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I will need to double check if it&amp;#39;s possible to adjust RX length different to TX data length. From what I can see the&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;bt_conn_le_data_len_update() only allow update the tx length, not the rx.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>