<?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>Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/124461/bluetooth-cannot-send-data-packets-within-the-connection-interval</link><description>Our company has previously used the NRF52840, and we know that by modifying the GAP event length (NRF_SDH_BLE_GAP_EVENT_LENGTH), we can enable Bluetooth to transmit multiple data packets within one connection interval. Currently, our NRF5340 is encountering</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 11 Oct 2025 05:44:34 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/124461/bluetooth-cannot-send-data-packets-within-the-connection-interval" /><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/551178?ContentTypeID=1</link><pubDate>Sat, 11 Oct 2025 05:44:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:57e5c5a4-f582-4395-a6d4-9218b03b2528</guid><dc:creator>HHJ</dc:creator><description>&lt;p&gt;Thanks bro&lt;/p&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;Our problem has been solved.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;BR&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;kevin&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549979?ContentTypeID=1</link><pubDate>Mon, 29 Sep 2025 08:44:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:baf8a0c0-b067-4394-8bc0-2235bd36d3b8</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Can you please zip and upload your peripheral and central application, so that I can have a look?&lt;/p&gt;
[quote user="HHJ"]approximately 2 out of every 5 packets are queued[/quote]
&lt;p&gt;When you list numbers like this. Does 3 out of every 5 packets return -12 when you try to queue them?&lt;/p&gt;
&lt;p&gt;BR,&lt;br /&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549929?ContentTypeID=1</link><pubDate>Sat, 27 Sep 2025 06:43:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ec57c711-3bd4-43f4-855e-1763c8515a5a</guid><dc:creator>HHJ</dc:creator><description>&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;I have checked the prj.conf of my ipc_radio, and all the key configurations from the file at&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;v3.1.0\nrf\samples\bluetooth\throughput\sysbuild\ipc_radio\prj.conf&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;have been included in mine.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;Interestingly, when my timer&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;K_MSEC()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is set to 4 and the connection interval is set to 7.5ms, data packets do not queue (-12), but the rate is 3.8ms, which does not meet our target of 3ms. When&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;K_MSEC()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is set to 4 and the connection interval is 15ms, data packets start to queue (approximately 2 out of every 5 packets are queued). When&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;K_MSEC()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is set to 3 and the connection interval is 7.5ms, data packets also queue (roughly 1 out of every 3 packets is queued). If&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;K_MSEC()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is set to 3 and the connection interval is 15ms, even more data packets will queue.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;This seems very much like a blockage at the TX (transmit) end. Regrettably, however, adjusting the value of&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;CONFIG_BT_BUF_ACL_TX_COUNT&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;does not result in any observable changes.&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549925?ContentTypeID=1</link><pubDate>Sat, 27 Sep 2025 01:17:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fe801e47-b701-4b6a-a9d5-9dd6aadae04c</guid><dc:creator>HHJ</dc:creator><description>&lt;p&gt;Thanks bro&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Sorry, I forgot to send you the prj.conf for ipc_radio. I might be missing key configurations in the prj.conf of ipc_radio, so could you please help me check it? I will send it to you right away. You don&amp;#39;t need any other hardware; a central device and peripheral devices are sufficient.&lt;/span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/81441.prj.conf"&gt;devzone.nordicsemi.com/.../81441.prj.conf&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549880?ContentTypeID=1</link><pubDate>Fri, 26 Sep 2025 10:19:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b8c3d53-b67e-44a8-bd4f-713e0d04d4c4</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Sorry, I forgot this was the nRF5340. You need to add this config to the sysbuild\ipc_radio\prj.conf. Is that the one that you sent me?&lt;/p&gt;
&lt;p&gt;Will I be able to reproduce the behavior that you are seeing if you zip the applications (peripheral and central)? Do I need any external HW, other than a couple of DKs?&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: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549877?ContentTypeID=1</link><pubDate>Fri, 26 Sep 2025 09:44:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb7ec21e-f6e8-47bb-a57d-73869b1f9e68</guid><dc:creator>HHJ</dc:creator><description>&lt;p&gt;Thanks bro&lt;/p&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;We have already been using the 2MBPS PHY, and the screenshot from the nRF Sniffer can also serve as evidence. We have adjusted CONFIG_BT_BUF_ACL_TX_COUNT to 30, but the experimental results remain consistent with those before (no changes occurred). Could it be that this configuration is not being implemented? Do we need to add some code in the main function to make it take effect?&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;In particular, regarding the connection interval: when we increase the connection interval, the number of data packets with the -12 error increases&amp;mdash;which corresponds to the increased number of queued data packets you mentioned. The more we extend the interval, the more queued data packets there are, showing a proportional relationship. This has been a point that has confused us.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;Attached are all our configurations and the code for the main function, for your reference.&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1758879487187v1.png" alt=" " /&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/0020.prj.conf"&gt;devzone.nordicsemi.com/.../0020.prj.conf&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5700.main.c"&gt;devzone.nordicsemi.com/.../5700.main.c&lt;/a&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549868?ContentTypeID=1</link><pubDate>Fri, 26 Sep 2025 08:23:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15663f48-3a96-4d5c-bcae-84d1a4582980</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Right. -12 means&amp;nbsp;ENOMEM (see NCS\zephyr\lib\libc\minimal\include\errno.h)&lt;/p&gt;
&lt;p&gt;So -12 is not actually packet loss. It is packet that are never sent/queued. (packet loss is when a packet is sent, but not received and acked by the receiver. This will result in a retransmission from the transmitter, until it is acked).&lt;/p&gt;
&lt;p&gt;Every 3ms you are generating a new packet of 242 bytes. That means 333 packets of 242 * 8bits = 644kbps. If you are using 1MBPS PHY, the theoretical limit is roughly 700kbps, so you are pushing the limit.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To maximize the throughput, you could try a bit longer connection interval, perhaps 30ms, and also set your connection event length to the same. Then keep using long packets (242 is fine), and queue up as many as you can.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The issue may be that you need to increase your&amp;nbsp;CONFIG_BT_BUF_ACL_TX_COUNT in prj.conf. I see that by default this is set to 3, meaning you can only have 3 packets in your queue. Try increasing it to 10, or perhaps 20. At least large enough that you have time to transmit the number of packets you intend to send every connection interval. And a little more, to catch up in case of packet loss -&amp;gt; retransmits.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Also, if you are still not able to transmit the data fast enough, consider changing to 2MBPS PHY. For details on how to do this, please read through &lt;a href="https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/lessons/lesson-3-bluetooth-le-connections/topic/blefund-lesson-3-exercise-2/"&gt;Lesson 3 Exercise 2&lt;/a&gt; in DevAcademy&amp;#39;s Bluetooth Low Energy Fundamentals course. Particularly steps 7-9.&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: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549849?ContentTypeID=1</link><pubDate>Fri, 26 Sep 2025 02:31:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:042687c7-277b-409b-b673-552664d4e222</guid><dc:creator>HHJ</dc:creator><description>&lt;p&gt;&lt;span&gt;Thanks bro&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;These data are 242-byte data generated by me, and they are part of the data package I received at the central end. If there is indeed a backlog on the TX end, there are numerous configurations related to the TX end in the settings. Could you please provide me with a few key configurations to resolve the backlog on the TX transmission end? What I use is peripheral_uart, and the API is also bt_nus_send. Regarding the return value, I already have the return value (-12) for data package loss, just as shown in my first picture. Could you inform Nordic about the -12 error value returned by bt_nus_send, and clarify what kind of error this -12 error value is? What is its complete and precise definition? Thank you very much, Edvin.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549777?ContentTypeID=1</link><pubDate>Thu, 25 Sep 2025 08:57:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4d62f51a-ac36-4349-83f8-410fc0a4c1fd</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Where are these numbers coming from? Are these the packets you receive on the central?&amp;nbsp;&lt;/p&gt;
[quote user="HHJ"]If your conclusion is that there is accumulation in the TX (transmitter) side, is there a way for me to expand the capacity of the TX side?[/quote]
&lt;p&gt;That is my theory, but you can confirm this on your end. What API do you use to transmit the data?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Using the peripheral_uart as an example (NCS\nrf\samples\bluetooth\peripheral_uart), this uses the API bt_nus_send() to send data. This again uses&amp;nbsp;bt_gatt_notify_cb() to send the notification. You probably have a similar funtion calling bt_gatt_notify_cb() or bt_gatt_notify()&lt;/p&gt;
&lt;p&gt;This function, bt_gatt_notify_cb() has a return value. It returns 0 on success, and a negative value otherwise. in the peripheral_uart sample, this return value is forwarded to bt_nus_send(), so and this return value is checked after it has been called.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Do you have a similar return value? Does it return 0 on the values that you claim are missing?&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: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549743?ContentTypeID=1</link><pubDate>Thu, 25 Sep 2025 02:48:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ef1fa2ff-e621-4de6-bf5e-c377d6542e5d</guid><dc:creator>HHJ</dc:creator><description>&lt;p&gt;Thanks bro&lt;/p&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;I understand what you mean. When the &amp;quot;more data&amp;quot; signal is false, the central device must respond in the next connection interval. However, I believe there is data loss within a single time interval. As shown in my picture, I marked the packet header sequence numbers for the data generated every 3ms, and the result shows discontinuous sequence numbers due to packet loss.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;As indicated in our picture, within the 30ms time interval from 10:26:37.514 to 10:26:37.544, we generated 10 data packets, but the packet sequence numbers from 65 to 74 are discontinuous. If your conclusion is that there is accumulation in the TX (transmitter) side, is there a way for me to expand the capacity of the TX side?&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1758768482420v2.png" alt=" " /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549667?ContentTypeID=1</link><pubDate>Wed, 24 Sep 2025 11:30:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e9148c0-a8b9-40dd-9d7d-8938872d443e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;I am just saying that if you look at the sniffer trace that I should ignore (15ms.pcapng) then no packets have the same timestamp.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But, I see that the packets around 4843 have a more granular timestamp, so never mind.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
[quote user="HHJ"]At 4843 23.404347, Bluetooth sends a data packet to the host computer, which replies at 4854 23.405538 – this 1ms+ interval is normal.[/quote]
&lt;p&gt;I don&amp;#39;t understand:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1758711498941v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Did you mean that the host computer replied in 4844 23.374151? That makes sense.&amp;nbsp;If so, we see that the central started a connection event in 4840. Setting this as a time reference, we can see that 4844 is 15.001ms later.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1758712766737v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
[quote user="HHJ"]The next set is also normal. However, in the following set, Bluetooth sends a data packet to the host computer at 4857 23.407117, but the host computer doesn&amp;#39;t reply until 4854 23.419153, resulting in a 12ms+ interval.[/quote]
&lt;p&gt;Here I assume that you mean packet 4857 and 4858. Let us investigate:&lt;/p&gt;
&lt;p&gt;Setting a time reference at packet 4852, which is the start of the previous connection event. As you can see, all the packets from the peripheral in the 4852 connection event have the &amp;quot;more data&amp;quot; flag set to true, except for in 4857. So this means that 4857 is the 3rd packet from the peripheral in the previous event, and since this takes some time, when this packet is transmitted, there is no longer 15ms until the next connection event, but it is 12.036ms left until the next connection event starts.&lt;/p&gt;
[quote user="HHJ"]This is abnormal because it prevents 4 sets of newly generated data from being sent during those 12ms[/quote]
&lt;p&gt;As I tried to explain in one of my earlier replies, the data was not already queued in the peripheral at the time when packet 4852 was aired. Therefore, from the softdevices perspective, it didn&amp;#39;t have any more data to send after packet 4857, and therefore it set the &amp;quot;more data&amp;quot; flag to false in this packet.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you continue to queue up then these will all be sent in the next connection event.&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: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549650?ContentTypeID=1</link><pubDate>Wed, 24 Sep 2025 09:36:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:975b3fe6-d080-4ec7-ae3e-8bbab240a807</guid><dc:creator>HHJ</dc:creator><description>&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;Thanks bro&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;I haven&amp;#39;t modified the sniffer traces in any way. It&amp;#39;s normal for some data packets to have identical timestamps because the responses occur at the 150&amp;micro;s level. Your sniffer might only be configured to display at the millisecond level, which makes the timestamps appear the same.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;Please ignore 15ms.pcapng as it&amp;#39;s the incorrect file. Instead, focus on 7ms.pcapng and the 15ms_2.pcapng I&amp;#39;ll send later.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;Here&amp;#39;s my transmission logic: The NRF5340 continuously sends data packets to the host computer, which sends a reply upon receipt. Let me explain with a detailed example from 15ms_2.pcapng. At 4843 23.404347, Bluetooth sends a data packet to the host computer, which replies at 4854 23.405538 &amp;ndash; this 1ms+ interval is normal. The next set is also normal. However, in the following set, Bluetooth sends a data packet to the host computer at 4857 23.407117, but the host computer doesn&amp;#39;t reply until 4854 23.419153, resulting in a 12ms+ interval. This is abnormal because it prevents 4 sets of newly generated data from being sent during those 12ms.&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1758706541085v1.png" alt=" " /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549645?ContentTypeID=1</link><pubDate>Wed, 24 Sep 2025 08:52:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2acff5a5-d1c7-4a5f-8e41-26a58b8ace3d</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Did you do something to your sniffer traces before uploading them? There are a lot of packets with the exact same timestamp in both your traces (which is not the case for the first 15ms.pcapng that you uploaded).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
[quote user="HHJ"]regardless of whether the connection interval is 7.5ms or 15ms, Bluetooth will reply in the next connection interval after receiving the second data packet[/quote]
&lt;p&gt;What do you mean by this? Which device will reply? The one sending (peripheral) or the one receiving (central)?&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549631?ContentTypeID=1</link><pubDate>Wed, 24 Sep 2025 06:38:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30f4b948-6f38-4c40-8a4d-89e8505bd3b3</guid><dc:creator>HHJ</dc:creator><description>&lt;p&gt;&lt;span&gt;I sent the wrong file for the 15ms connection interval earlier. This one is the correct file for the 15ms connection interval.&lt;/span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/7167.15MS_5F00_2.pcapng"&gt;devzone.nordicsemi.com/.../7167.15MS_5F00_2.pcapng&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549622?ContentTypeID=1</link><pubDate>Wed, 24 Sep 2025 03:44:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f0665b81-10c5-492a-9318-78afebbf26c5</guid><dc:creator>HHJ</dc:creator><description>&lt;p&gt;&lt;span&gt;I&amp;#39;m sorry, I think I didn&amp;#39;t express myself clearly earlier. My timer generates and sends a set of data every 3ms. However, regardless of whether the connection interval is 7.5ms or 15ms, Bluetooth will reply in the next connection interval after receiving the second data packet. Especially with the 15ms connection interval, Bluetooth will reply after more than 10ms. I believe this situation is abnormal and does not conform to our Bluetooth logic. Currently, we are not sure where the problem lies. These are the pcapng files captured by nrf niffer for the 7.5ms and 15ms connection intervals respectively. We look forward to your reply.&lt;/span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/15ms.pcapng"&gt;devzone.nordicsemi.com/.../15ms.pcapng&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/7.5ms.pcapng"&gt;devzone.nordicsemi.com/.../7.5ms.pcapng&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549608?ContentTypeID=1</link><pubDate>Tue, 23 Sep 2025 19:57:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4148fda9-44dd-4b1c-9027-6cf1b0560598</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am not sure I understand exactly what you mean, but I&amp;#39;ll try to explain, and please correct me if I misunderstood. Also, if you capture a sniffer trace of the connection, showing these packets being sent, feel free to upload it here, as it may shed some light on what is actually going on. You can use the &lt;a href="https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE"&gt;nRF Sniffer for Bluetooth LE&lt;/a&gt;, and upload the .pcapng file here. Remember to select the advertising device from the drop-down menu on the top before entering the connection, so that the sniffer will follow that peripheral into the connection.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Every connection interval (7.5ms) there is a &lt;strong&gt;connection event&lt;/strong&gt;. At this event, the central will start sending a packet to the peripheral. If it has any data to send, it will send it. If not, it will send an &amp;quot;empty&amp;quot; packet, only containing some headers. This is used for timekeeping between the devices.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The peripheral will then respond to the packet. If it has any data to send, that will be sent, but if not, then it will just be another &amp;quot;empty&amp;quot; packet, being used to keep the connection alive.&lt;/p&gt;
&lt;p&gt;Both of these packets have a bit in it&amp;#39;s headers saying whether or not it has additional data (in addition to the data being sent in that very packet). We call it the &amp;quot;more-data flag&amp;quot;&lt;/p&gt;
&lt;p&gt;Let us say that the&amp;nbsp;central doesn&amp;#39;t have any data to send, but the peripheral has enough data for two packets. This is how it will look on air:&lt;/p&gt;
&lt;p&gt;1: central -&amp;gt; peripheral: empty packet (more data = false)&lt;/p&gt;
&lt;p&gt;2: peripheral -&amp;gt; central: data packet (more data = true)&lt;/p&gt;
&lt;p&gt;3: central -&amp;gt; peripheral: empty packet (more data = false)&lt;/p&gt;
&lt;p&gt;4: peripheral -&amp;gt; central: data packet (more data = false)&lt;/p&gt;
&lt;p&gt;Then there is radio silence until the next &lt;strong&gt;connection event&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If the peripheral now receives more data from one of it&amp;#39;s sensors, it needs to wait for the central to send the next packet in the next connection event. The central&amp;#39;s radio is off until that event.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But what happens if the peripheral receives more data to transmit while the connection event is ongoing, let us say after the first packet is sent from the central, but before the peripheral has sent any data, so that would be between step 1 and 2 above. In this case, the softdevice will&amp;nbsp; schedule this data for the next connection event, as the CPU is busy handling the connection event at this point in time. Therefore, the more-data flag will still be false in packet 4, and instead, it will be added to the first packet from the peripheral to the central in the next connection event.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So even if your connection event length is set to 7.5ms, the same as the connection interval, as soon as the more data flag from the peripheral is set to false, the central&amp;#39;s radio will be turned off until the next connection event. And even if you decide to add the new packet while there is still communication between the two devices, the SoftDevice controller doesn&amp;#39;t have time to change the already scheduled packets before they are aired.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I believe this covers what you are seeing, but if I misunderstood anything, pleaese feel free to correct me.&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: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549519?ContentTypeID=1</link><pubDate>Tue, 23 Sep 2025 09:47:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:54b5984e-9dff-46f2-8ac7-e8a4546ba02c</guid><dc:creator>HHJ</dc:creator><description>&lt;p&gt;Thanks bro&lt;/p&gt;
&lt;p&gt;&lt;span&gt;According to your suggestions, our performance has been improved.&lt;/span&gt;&lt;/p&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;We have set the connection interval to 7.5ms and the transmission timing to 3ms. We found that Bluetooth can send data packets normally within the 7.5ms interval. However, after sending the second data packet, Bluetooth will force the next transmission to wait until the end of the 7.5ms connection interval, which causes blockage on the transmitting end.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;Currently, we have configured the connection event extension with&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;CONFIG_BT_USER_DATA_LEN_UPDATE=y&lt;/code&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;CONFIG_BT_CTLR_DATA_LENGTH_MAX=251&lt;/code&gt;, and the GAP event interval with&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=7500&lt;/code&gt;.&lt;/div&gt;
&lt;div class="auto-hide-last-sibling-br paragraph-pP9ZLC paragraph-element br-paragraph-space"&gt;Are we missing any key configurations such as the &amp;quot;Connection event length extension&amp;quot; in nRF52840, like setting&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;opt.common_opt.conn_evt_evt.enable=true; err_code=sd_ble_opt_set(BLE_COMMON_OPT_CONN_EVT_EVT,&amp;amp;opt);&lt;/code&gt;? Or are there any existing configurations that need to be enabled in the main function?&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1758620719930v1.png" alt=" " /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bluetooth cannot send data packets within the connection interval.</title><link>https://devzone.nordicsemi.com/thread/549431?ContentTypeID=1</link><pubDate>Mon, 22 Sep 2025 12:00:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:356dcec6-0290-4e61-aabb-b95ebd9c12e6</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;So when you are saying that you are seeing packets are being failed to send, you mean that you are not able to queue them properly? If a packet is queued, it will be sent, however many retries it uses. This is according to the Bluetooth specification.&lt;/p&gt;
&lt;p&gt;So you should see it in the API that you are using to send packets. At some point, it should stop returning 0, and it will start returning an error value.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But the root problem here is that the bluetooth connection doesn&amp;#39;t have enough throughput, I guess. You are queuing up packets faster than the device is able to send them, and eventually, you will have packets that are not able to be queued properly.&lt;/p&gt;
&lt;p&gt;I can recommend that you check the sample:&lt;/p&gt;
&lt;p&gt;v3.1.0\nrf\samples\bluetooth\throughput&lt;/p&gt;
&lt;p&gt;Relevant for the nRF5340 are the files:&lt;/p&gt;
&lt;p&gt;boards\nrf5340dk_nrf5340_cpuapp.conf&lt;br /&gt;prj.conf&lt;br /&gt;Kconfig.sysbuild&lt;br /&gt;sysbuild\ipc_radio\prj.conf&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Note that it is in the last file, sysbuild\ipc_radio\prj.conf that the parameters for connection event length and increased MTU is set. All the parameters that belongs to the radio core on the nRF5340.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This is also described in our DevAcademy Bluetooth Low Energy Fundamentals course. Particularly &lt;a href="https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/lessons/lesson-3-bluetooth-le-connections/topic/blefund-lesson-3-exercise-2/"&gt;Lesson 3&lt;/a&gt; is describing how to change the connection parameters.&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></channel></rss>