<?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>Sending large packets via BLE</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/73100/sending-large-packets-via-ble</link><description>Hi, 
 I want to know a few things about sending large packets via BLE using nRF52 SDK 15.0 and above. 
 I am able to send the packets larger upto 128 Bytes. But i want to know how does the queue system works?? 
 Lets say i send 100 bytes and my connection</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 25 Mar 2021 13:20:43 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/73100/sending-large-packets-via-ble" /><item><title>RE: Sending large packets via BLE</title><link>https://devzone.nordicsemi.com/thread/301918?ContentTypeID=1</link><pubDate>Thu, 25 Mar 2021 13:20:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf1b63ac-4d08-4121-8bfb-4cf717598a88</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Yes, you are correct.&amp;nbsp;&lt;br /&gt;I have made an example for testing through put that you can have a look here.&amp;nbsp;&lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3286.ble_5F00_app_5F00_uart-_2D00_-Througput.zip"&gt;devzone.nordicsemi.com/.../3286.ble_5F00_app_5F00_uart-_2D00_-Througput.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The example based on the ble_app_uart in SDK v17.0.2 . Please check the log to see how to use it&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sending large packets via BLE</title><link>https://devzone.nordicsemi.com/thread/301716?ContentTypeID=1</link><pubDate>Wed, 24 Mar 2021 14:35:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:be64883c-5838-40c5-8e53-44da84334fe6</guid><dc:creator>Jamal</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thank you for the information.&lt;/p&gt;
&lt;p&gt;I could not find exactly the relative information on those links which you sent but still i learned a lot from there.&lt;/p&gt;
&lt;p&gt;So according to your description.&lt;/p&gt;
&lt;p&gt;If i send 240 bytes using&amp;nbsp;ble_nus_data_send(****) function which can send max 247 bytes. Those 240 bytes will be sent all in a single update event??&lt;/p&gt;
&lt;p&gt;If yes, then there is not problem in sending 1KB with in 100ms if the connection interval is 20ms.&lt;/p&gt;
&lt;p&gt;Am i right?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sending large packets via BLE</title><link>https://devzone.nordicsemi.com/thread/301492?ContentTypeID=1</link><pubDate>Tue, 23 Mar 2021 14:59:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:59357215-bf35-432a-ae89-267f0d0a6037</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Jamal,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can&amp;nbsp;read a little bit more about Bluetooth interval and connection event &lt;a href="https://www.novelbits.io/ble-connection-intervals/"&gt;here &lt;/a&gt;and &lt;a href="https://www.novelbits.io/bluetooth-5-speed-maximum-throughput/"&gt;here&lt;/a&gt;.&lt;br /&gt;Basically you can have multiple packets in one connection event (in one interval). So there can be multiple 100 byte packets in one single connection event that occurs every 20ms.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;100 byte of data (without overhead) only need 0.8ms to be transmitted at 1Mbps PHY.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you want to send the data as quick as possible, make sure you queue as much as possible until you receive&amp;nbsp;NRF_ERROR_RESOURCES or&amp;nbsp;NRF_ERROR_NO_MEM meaning the softdevice TX buffer is full. Then try to queue again as soon as there is a packet sent, or when you receive&amp;nbsp;BLE_GATTS_EVT_HVN_TX_COMPLETE or&amp;nbsp;BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;You can send up to 7-8kB per 100ms in theory.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>