<?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>dev academy course broken: BLE fundementals:esson 3 excersice 2</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/118886/dev-academy-course-broken-ble-fundementals-esson-3-excersice-2</link><description>in Bluetooth Low Energy Fundamentals -&amp;gt; lesson 3-&amp;gt; Exercise 2 I opened the solution, I built the config for nrf52840 dev kit. Problem: 2M PHY is not achieved. Update to 2M phy only works when I comment out calls to update_data_length(my_conn)and update_mtu</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 14 Feb 2025 07:38:03 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/118886/dev-academy-course-broken-ble-fundementals-esson-3-excersice-2" /><item><title>RE: dev academy course broken: BLE fundementals:esson 3 excersice 2</title><link>https://devzone.nordicsemi.com/thread/522965?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 07:38:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:71fc3b1a-db0d-4679-9de9-80093483f348</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello ,&lt;/p&gt;
&lt;p&gt;I participated in creating this lesson, and actually, I was aware of this issue. Most of the time, the problem doesn&amp;#39;t surface, but under the right conditions, it does. I have not debugged this yet, but I suspect that what&amp;#39;s happening is that the data length update, and the phy update are both what is called &amp;quot;Link Layer Requests&amp;quot;, and according to the BLE specification, it is not allowed to have more than one of these requests active at once per device. The reason the issue isn&amp;#39;t always visible is that the phone that you connect to would in most cases ask for the data length update before the nRF does. In that case, the nRF will not issue the data length update request, and the phy update is the only Link Layer update request.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So this is why adding the delay works. It will make sure that the data length update is completed before requesting the phy update.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you for reporting the issue. I will add a delay, or a check that the previous link layer update is complete before the phy update in the next update of the BLE course in DevAcademy.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dev academy course broken: BLE fundementals:esson 3 excersice 2</title><link>https://devzone.nordicsemi.com/thread/522825?ContentTypeID=1</link><pubDate>Thu, 13 Feb 2025 11:11:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fbbc6490-5acd-4025-864d-85b7292d0767</guid><dc:creator>klaus1234</dc:creator><description>&lt;p&gt;Hi &lt;/p&gt;
&lt;p&gt;sure here is the log:&lt;/p&gt;
&lt;p&gt;*** Booting nRF Connect SDK v2.9.0-7787b2649840 ***&lt;br /&gt;*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***&lt;br /&gt;[00:00:00.000,366] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Starting Lesson 3 - Exercise 2&lt;br /&gt;&lt;br /&gt;[00:00:00.000,701] &amp;lt;inf&amp;gt; bt_sdc_hci_driver: SoftDevice Controller build revision: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2d 79 a1 c8 6a 40 b7 3c&amp;nbsp; f6 74 f9 0b 22 d3 c4 80 |-y..j@.&amp;lt; .t..&amp;quot;...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 74 72 82 ba&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |tr..&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;[00:00:00.003,021] &amp;lt;inf&amp;gt; bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)&lt;br /&gt;[00:00:00.003,051] &amp;lt;inf&amp;gt; bt_hci_core: HW Variant: nRF52x (0x0002)&lt;br /&gt;[00:00:00.003,082] &amp;lt;inf&amp;gt; bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 45.41337 Build 3074452168&lt;br /&gt;[00:00:00.004,058] &amp;lt;inf&amp;gt; bt_hci_core: Identity: CC:94:05:F6:12:B6 (random)&lt;br /&gt;[00:00:00.004,089] &amp;lt;inf&amp;gt; bt_hci_core: HCI: version 6.0 (0x0e) revision 0x106b, manufacturer 0x0059&lt;br /&gt;[00:00:00.004,119] &amp;lt;inf&amp;gt; bt_hci_core: LMP: version 6.0 (0x0e) subver 0x106b&lt;br /&gt;[00:00:00.004,119] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Bluetooth initialized&lt;br /&gt;[00:00:00.005,126] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Advertising successfully started&lt;br /&gt;[00:00:14.643,768] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Connected&lt;br /&gt;[00:00:14.643,798] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Connection parameters: interval 30.00 ms, latency 0 intervals, timeout 5000 ms&lt;br /&gt;[00:00:14.690,643] &amp;lt;inf&amp;gt; Lesson3_Exercise2: MTU exchange successful&lt;br /&gt;[00:00:14.690,643] &amp;lt;inf&amp;gt; Lesson3_Exercise2: New MTU: 244 bytes&lt;br /&gt;[00:00:14.780,700] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Data length updated. Length 251/27 bytes, time 2120/328 us&lt;br /&gt;&lt;strong&gt;[00:00:14.930,603] &amp;lt;inf&amp;gt; Lesson3_Exercise2: PHY updated. New PHY: 1M&lt;/strong&gt;&lt;br /&gt;[00:00:15.080,841] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Connection parameters updated: interval 7.50 ms, latency 0 intervals, timeout 5000 ms&lt;br /&gt;[00:00:15.328,063] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Connection parameters updated: interval 30.00 ms, latency 0 intervals, timeout 5000 ms&lt;br /&gt;[00:00:19.940,521] &amp;lt;inf&amp;gt; Lesson3_Exercise2: Connection parameters updated: interval 1000.00 ms, latency 0 intervals, timeout 4000 ms&lt;/p&gt;
&lt;p&gt;and the app:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div dir="auto"&gt;
&lt;div dir="auto"&gt;nRF Connect, 2025-02-13&lt;/div&gt;
&lt;div dir="auto"&gt;Nordic_Peripheral (CC:94:05:F6:12:B6)&lt;/div&gt;
&lt;div dir="auto"&gt;I&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:18.750&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;[Server] Server started&lt;/div&gt;
&lt;div dir="auto"&gt;V&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:18.753&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Heart Rate (0x180D)&lt;/div&gt;
&lt;div dir="auto"&gt;- Heart Rate Measurement [N] (0x2A37)&lt;/div&gt;
&lt;div dir="auto"&gt;&amp;nbsp; &amp;nbsp;Client Characteristic Configuration (0x2902)&lt;/div&gt;
&lt;div dir="auto"&gt;- Body Sensor Location [R] (0x2A38)&lt;/div&gt;
&lt;div dir="auto"&gt;- Heart Rate Control Point [W] (0x2A39)&lt;/div&gt;
&lt;div dir="auto"&gt;Unknown Service (0000aaa0-0000-1000-8000-aabbccddeeff)&lt;/div&gt;
&lt;div dir="auto"&gt;- Unknown Characteristic [N R] (0000aaa1-0000-1000-8000-aabbccddeeff)&lt;/div&gt;
&lt;div dir="auto"&gt;&amp;nbsp; &amp;nbsp;Client Characteristic Configuration (0x2902)&lt;/div&gt;
&lt;div dir="auto"&gt;&amp;nbsp; &amp;nbsp;Unknown Descriptor (0000aab0-0000-1000-8000-aabbccddeeff)&lt;/div&gt;
&lt;div dir="auto"&gt;&amp;nbsp; &amp;nbsp;Characteristic User Description (0x2901)&lt;/div&gt;
&lt;div dir="auto"&gt;&amp;nbsp; &amp;nbsp;Characteristic Presentation Format (0x2904)&lt;/div&gt;
&lt;div dir="auto"&gt;- Unknown Characteristic [I W WNR] (0000aaa2-0000-1000-8000-aabbccddeeff)&lt;/div&gt;
&lt;div dir="auto"&gt;&amp;nbsp; &amp;nbsp;Client Characteristic Configuration (0x2902)&lt;/div&gt;
&lt;div dir="auto"&gt;User Data (0x181C)&lt;/div&gt;
&lt;div dir="auto"&gt;- First Name [R W] (0x2A8A)&lt;/div&gt;
&lt;div dir="auto"&gt;- Last Name [R W] (0x2A90)&lt;/div&gt;
&lt;div dir="auto"&gt;- Gender [R W] (0x2A8C)&lt;/div&gt;
&lt;div dir="auto"&gt;V&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:18.916&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Connecting to CC:94:05:F6:12:B6...&lt;/div&gt;
&lt;div dir="auto"&gt;D&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:18.916&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)&lt;/div&gt;
&lt;div dir="auto"&gt;D&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:18.994&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;[Server callback] Connection state changed with status: 0 and new state: CONNECTED (2)&lt;/div&gt;
&lt;div dir="auto"&gt;I&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:18.994&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;[Server] Device with address CC:94:05:F6:12:B6 connected&lt;/div&gt;
&lt;div dir="auto"&gt;I&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:18.995&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;[Server] MTU changed to 247&lt;/div&gt;
&lt;div dir="auto"&gt;D&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.005&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)&lt;/div&gt;
&lt;div dir="auto"&gt;I&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.005&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Connected to CC:94:05:F6:12:B6&lt;/div&gt;
&lt;div dir="auto"&gt;V&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.005&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Discovering services...&lt;/div&gt;
&lt;div dir="auto"&gt;D&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.005&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;gatt.discoverServices()&lt;/div&gt;
&lt;div dir="auto"&gt;D&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.014&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED&lt;/div&gt;
&lt;div dir="auto"&gt;I&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.446&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)&lt;/div&gt;
&lt;div dir="auto"&gt;D&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.591&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;[Callback] Services discovered with status: 0&lt;/div&gt;
&lt;div dir="auto"&gt;I&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.591&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Services discovered&lt;/div&gt;
&lt;div dir="auto"&gt;V&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.594&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Generic Attribute (0x1801)&lt;/div&gt;
&lt;div dir="auto"&gt;- Service Changed [I] (0x2A05)&lt;/div&gt;
&lt;div dir="auto"&gt;&amp;nbsp; &amp;nbsp;Client Characteristic Configuration (0x2902)&lt;/div&gt;
&lt;div dir="auto"&gt;- Client Supported Features [R W] (0x2B29)&lt;/div&gt;
&lt;div dir="auto"&gt;- Database Hash [R] (0x2B2A)&lt;/div&gt;
&lt;div dir="auto"&gt;Generic Access (0x1800)&lt;/div&gt;
&lt;div dir="auto"&gt;- Device Name [R] (0x2A00)&lt;/div&gt;
&lt;div dir="auto"&gt;- Appearance [R] (0x2A01)&lt;/div&gt;
&lt;div dir="auto"&gt;- Peripheral Preferred Connection Parameters [R] (0x2A04)&lt;/div&gt;
&lt;div dir="auto"&gt;Nordic LED Button Service (00001523-1212-efde-1523-785feabcd123)&lt;/div&gt;
&lt;div dir="auto"&gt;- Button [N R] (00001524-1212-efde-1523-785feabcd123)&lt;/div&gt;
&lt;div dir="auto"&gt;&amp;nbsp; &amp;nbsp;Client Characteristic Configuration (0x2902)&lt;/div&gt;
&lt;div dir="auto"&gt;- LED [W] (00001525-1212-efde-1523-785feabcd123)&lt;/div&gt;
&lt;div dir="auto"&gt;D&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.594&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)&lt;/div&gt;
&lt;div dir="auto"&gt;D&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.595&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;gatt.setCharacteristicNotification(00001524-1212-efde-1523-785feabcd123, true)&lt;/div&gt;
&lt;div dir="auto"&gt;I&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:19.689&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Connection parameters updated (interval: 30.0ms, latency: 0, timeout: 5000ms)&lt;/div&gt;
&lt;div dir="auto"&gt;I&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;12:08:24.982&lt;span style="white-space:pre-wrap;"&gt; &lt;/span&gt;Connection parameters updated (interval: 1000.0ms, latency: 0, timeout: 4000ms)&lt;/div&gt;
&lt;div dir="auto"&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dev academy course broken: BLE fundementals:esson 3 excersice 2</title><link>https://devzone.nordicsemi.com/thread/522806?ContentTypeID=1</link><pubDate>Thu, 13 Feb 2025 09:54:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6e252cd-aa67-4fc6-8e51-b992427e5595</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi klaus1234,&lt;/p&gt;
&lt;p&gt;The issue and the fix seem quite strange. Could you please include the full log when the issue happens?&lt;br /&gt;Please also include log from the nRF Connect app on the phone as well.&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: dev academy course broken: BLE fundementals:esson 3 excersice 2</title><link>https://devzone.nordicsemi.com/thread/522681?ContentTypeID=1</link><pubDate>Wed, 12 Feb 2025 14:55:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab696450-e78b-4706-9aa2-03223f954f66</guid><dc:creator>klaus1234</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;just figured out adding a delay would fix it. I am using SDK 2.9.0 btw. &lt;/p&gt;
&lt;div style="background-color:#ffffff;color:#000000;font-family:Consolas, &amp;#39;Courier New&amp;#39;, monospace;font-size:14px;font-weight:normal;line-height:19px;white-space:pre;"&gt;
&lt;div&gt;&lt;span style="color:#008000;"&gt;&amp;nbsp; &amp;nbsp; /* STEP 7.2 - Update the PHY mode */&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#795e26;"&gt;update_phy&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#001080;"&gt;my_conn&lt;/span&gt;&lt;span style="color:#000000;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#795e26;"&gt;k_sleep&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;K_MSEC&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#098658;"&gt;1000&lt;/span&gt;&lt;span style="color:#000000;"&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#008000;"&gt;&amp;nbsp; &amp;nbsp; /* STEP 13.5 - Update the data length and MTU */&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#795e26;"&gt;update_data_length&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#001080;"&gt;my_conn&lt;/span&gt;&lt;span style="color:#000000;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#795e26;"&gt;update_mtu&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#001080;"&gt;my_conn&lt;/span&gt;&lt;span style="color:#000000;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>