<?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>How to schedule multilink conect event?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/88980/how-to-schedule-multilink-conect-event</link><description>Hi 
 We are developing a system based on nrf desktop application of nRF Connect SDK 1.90. There are 4 devices in this system: a dongle, a central device and two peripheral devices. Two peripheral devices connect to the central device with BLE, and the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 08 Jul 2022 12:59:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/88980/how-to-schedule-multilink-conect-event" /><item><title>RE: How to schedule multilink conect event?</title><link>https://devzone.nordicsemi.com/thread/376225?ContentTypeID=1</link><pubDate>Fri, 08 Jul 2022 12:59:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1d0ebade-3e5b-47ff-824d-b9d3a3abc494</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;There seems to be some devices not related to the four node setup, in that trace. Are the devices you are interested in the following?&lt;/p&gt;
&lt;p&gt;Nordic_UART_Service x 2&lt;br /&gt;60:BC:AA:3F:C0:6B (Resolvable)&lt;br /&gt;6C:38:90:A0:03:AE (Resolvable)&lt;/p&gt;
&lt;p&gt;And is the connection setup like the following?&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/devices.png" /&gt;&lt;/p&gt;
&lt;p&gt;According to the sniffer trace, the devices seem to have connection intervals of 10 or 20 ms.&lt;/p&gt;
&lt;p&gt;On top of that comes slave latency, which means the peripherals can skip a number of connection events if they do not have any data to send.&lt;/p&gt;
&lt;p&gt;A third aspect is that it is always the central of a connection that decides how to schedule the connection events. The connection interval is linked to the clock of the central, so a device acting as both peripheral and central (or multi-peripheral) will experience that the different connections drift relative to each other. If the connection intervals are the same for the three connections for the Multirole, it is therefore possible that the connection as peripheral drifts so that it overlaps with one or two of the connections as central.&lt;/p&gt;
&lt;p&gt;In order to get better control of the connections, you could consider changing the setup, so that the Multirole is instead Multi-central, and the Central is instead a Peripheral 3. That way, all connection scheduling is done on the Multi-central and on the same clock (so you will not get drifting). With clock drift, you should expect the connections to slide slowly in and out of overlapping. When overlapping you should see some connection events dropped.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to schedule multilink conect event?</title><link>https://devzone.nordicsemi.com/thread/374431?ContentTypeID=1</link><pubDate>Tue, 28 Jun 2022 03:31:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5c21a464-3ad9-4b78-8ecc-d81bd2902166</guid><dc:creator>Lokher</dc:creator><description>&lt;p&gt;Hi tesc,&lt;/p&gt;
&lt;p&gt;I used ellisys sniffer to catch air data, there&amp;nbsp;are&amp;nbsp;empty packets.in same interval, seems like&amp;nbsp; there was no data in the&amp;nbsp;peripherals&amp;#39;s buffer. P&lt;span&gt;eripherals send data in &amp;quot;sent_cb&amp;quot;, is it possible the callback is not invoked in time?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ellisys.btt"&gt;devzone.nordicsemi.com/.../ellisys.btt&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to schedule multilink conect event?</title><link>https://devzone.nordicsemi.com/thread/372777?ContentTypeID=1</link><pubDate>Thu, 16 Jun 2022 10:54:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2d6388ad-b420-4df7-a03a-e95f7cac4f6a</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;An easy way to figure out what is going on over the air, both with connection events, intervals and connection parameter setup, etc., is to do a &lt;a href="https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE"&gt;sniffer trace&lt;/a&gt;. For instance, if you have a non-zero slave latency value then the peripheral can skip that number of connection events.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to schedule multilink conect event?</title><link>https://devzone.nordicsemi.com/thread/372689?ContentTypeID=1</link><pubDate>Thu, 16 Jun 2022 02:46:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b1214118-c9d8-4501-8191-b97fedc6c4ed</guid><dc:creator>Lokher</dc:creator><description>&lt;p&gt;Thanks for reply.&lt;/p&gt;
&lt;p&gt;I know that there&amp;nbsp;is&amp;nbsp;&lt;span&gt;alternating TX and RX&amp;nbsp;in one connection event, the central&amp;nbsp;transmit at first 1.25ms, mostly is a polling packet, and peripheral transmit after it.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The test we did just include the central device and two pheripheral devices, and the central device was in neither advertising nor scanning after two BLE connections were set up.&amp;nbsp; I am curious why same peripheral interval is&amp;nbsp;40ms. Any idea?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to schedule multilink conect event?</title><link>https://devzone.nordicsemi.com/thread/372637?ContentTypeID=1</link><pubDate>Wed, 15 Jun 2022 15:31:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0d156822-7f2f-43da-bf64-113c219d5f9f</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]In our idea, two peripheral devices connect to&amp;nbsp;central device with 7.5ms connect interval, peripheral 1 sends data&amp;nbsp;during first&amp;nbsp;2.5ms of the connect interval,&amp;nbsp;peripheral&amp;nbsp;2 sends data&amp;nbsp;during next&amp;nbsp;2.5ms of the connect interval, and central device sends data during remaining.[/quote]
&lt;p&gt;Based off of your drawing, it looks like there might be a misunderstanding regarding how BLE works. Each connection event, packets can go back and forth between the two connected peers, where one act as central and one act as peripheral. This means, to correct your drawing, the first 2.5 ms there will be alternating TX and RX on Peripheral 1 and on Central, for the communication between those two devices. Then similar for Peripheral 2 and Central the next 2.5 ms. Then TX and RX between Central and Dongle the next 1 ms.&lt;/p&gt;
&lt;p&gt;The connections and connection events themselves are scheduled by the SoftDevice Controller subsystem, according to the documented &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/softdevice_controller/doc/scheduling.html"&gt;Scheduling&lt;/a&gt;. Depending on the connection parameters, certain schedulings may or may not be possible.&lt;/p&gt;
&lt;p&gt;For instance, you may have to consider the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/softdevice_controller/doc/scheduling.html#connection-timing-with-connection-event-length-extension"&gt;connection event length&lt;/a&gt;. Other activity, such as flash access, may lead to skipped connection events due to the CPU stalling during flash operation.&lt;/p&gt;
&lt;p&gt;In general, three connections with 7.5 ms connection interval should be fully possible, at least if the same device act as central for all three connections, the event lengths are short enough, and there is still enough time for successfully scheduling any other timing-activity. (E.g. no concurrent scanning, advertising, etc.)&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>