<?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>BLE Multi-link high throughput / lowest latency</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/44762/ble-multi-link-high-throughput-lowest-latency</link><description>Hi, 
 
 We are looking at the nRF52840 and would like to have 5 such devices in their own piconet, 1 Central device and 4 Peripherals, with a 2 Mbit PHY, 
 and want to achieve relatively high data throughput (roughly 1.2 Mbits / second total payload Peripherals</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 15 Mar 2019 08:28:33 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/44762/ble-multi-link-high-throughput-lowest-latency" /><item><title>RE: BLE Multi-link high throughput / lowest latency</title><link>https://devzone.nordicsemi.com/thread/176341?ContentTypeID=1</link><pubDate>Fri, 15 Mar 2019 08:28:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f9968f12-80f7-4f4e-b173-0f7ab35edb7c</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Some bad news from the developers unfortunately: The minimum event time for one connection is 2.5ms, not 1.25ms. This means that with a connection interval of 7.5ms you only have room for 3 connections.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you need 4 connections you need to increase the connection interval to 10ms.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regarding sending without waiting for the poll, keep in mind that these radios are half duplex systems. They can&amp;#39;t send and receive at the same time, so when the central is set up to poll the peripheral it can&amp;#39;t receive anything from the peripheral. A BLE link follows a very strict scheme of the central polling the peripheral at exact intervals to ensure that the average current consumption is as small as possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;TLDR: The peripheral will always have to wait for the poll from the central, and send any queued notifications or writes on the response to the poll.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In the case where the peripheral has more data to send the central will have to send a new packet for every packet from the peripheral. Neither the central nor the peripheral can send multiple packets in a row, they will always send one packet after the other.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Any delays caused by starting crystals and similar are planned ahead of time to make sure the radio is ready when the connection event occurs.The spec allows for a small amount of leeway in timing, to counter the fact that the clocks in the peripheral and central running the timing will never be 100% accurate, but the allowed leeway is in the microsecond range, not milliseconds.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Multi-link high throughput / lowest latency</title><link>https://devzone.nordicsemi.com/thread/176288?ContentTypeID=1</link><pubDate>Thu, 14 Mar 2019 16:58:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e3140a61-ebfa-45b6-b33d-26b3027ffa8c</guid><dc:creator>Thomas_E</dc:creator><description>&lt;p&gt;Thanks a lot Torbj&amp;oslash;rn, for your reply.&amp;nbsp; If I read your answer correctly, then within a single 7.5 msec block of time, it is possible for up to 6 connections (with the parameters described above) to each get serviced for a portion of that 7.5 msec .&lt;/p&gt;
&lt;p&gt;I have a couple more questions please, if I may, related more to maximizing throughput:&lt;/p&gt;
&lt;p&gt;- At the beginning of a given connection event: if the peripheral is set up for notifications or write without response, is the central still required to 1st poll the peripheral, or can the peripheral just start sending data to the central?&lt;/p&gt;
&lt;p&gt;- And if the peripheral has more than 1 data packet to send within a connection event, does the central have to 1st poll the peripheral before every data packet that the peripheral wants to send?&lt;/p&gt;
&lt;p&gt;- In your Online Power Profiler, there is time allotted at the beginning of a connection interval for &amp;ldquo;Pre-Processing&amp;rdquo;, &amp;ldquo;Crystal Ramp-up&amp;rdquo;, and &amp;ldquo;Standby&amp;rdquo;, in some cases up to 1.5 msec combined total.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Do those kinds of factors delay data transmission at the start of a connection interval and thereby limit total throughput?&amp;nbsp; I understand the Inter-Frame Space between packet transmission but are there any additional built-in delays incurred at the start (or end) of a connection interval?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;Tommy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Multi-link high throughput / lowest latency</title><link>https://devzone.nordicsemi.com/thread/176118?ContentTypeID=1</link><pubDate>Thu, 14 Mar 2019 09:39:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3961a5b5-8171-40b5-a698-07227b3437bd</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;It should be possible to have up to 6 connections running at a 7.5ms connection interval if you set the event length to 1.25ms, that is correct.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am not sure if we have tested this, but I will&amp;nbsp;check this with the developers and get back to you.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The way BLE works the central device will poll each peripheral on every connection event, and with a connection interval of 7.5ms the connection events will be spaced 7.5ms apart.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the event length is set to 1.25ms the central device will schedule the different connections 1.25ms apart, so that it services one after the other. In other words the 4 connections won&amp;#39;t start at the same time, they will&amp;nbsp;all start 1.25ms &amp;#39;out of phase&amp;#39;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;After a connection event ends it can&amp;#39;t be started again until the next period starts, but it can be extended. This means that the last of the four connections could potentially send data for more than 1.25ms, since the central device should have some time left over when only running 4 links.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The four connections will&amp;nbsp;change channels independently of each other, there is no link between them in this regard.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>