<?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>What is the most efficient method to share data with piconet slaves?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/59748/what-is-the-most-efficient-method-to-share-data-with-piconet-slaves</link><description>Hi all, 
 In our application we have a piconet master (acting as GATT client) and several piconet slaves (acting as GATT servers). We have only limited time on the channel and therefore want this data sharing to be as time consuming as possible. We came</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 03 Apr 2020 13:41:22 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/59748/what-is-the-most-efficient-method-to-share-data-with-piconet-slaves" /><item><title>RE: What is the most efficient method to share data with piconet slaves?</title><link>https://devzone.nordicsemi.com/thread/243417?ContentTypeID=1</link><pubDate>Fri, 03 Apr 2020 13:41:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:db77aa17-45e4-45a0-b75c-4ebdfae8f68d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Remi,&amp;nbsp;&lt;br /&gt;Hope it&amp;#39;s clear now.&amp;nbsp;&lt;br /&gt;There is one correction I would need to make. One to many communication actually possible&amp;nbsp;with latest Bluetooth version; v5.2 but it&amp;#39;s pretty new and&amp;nbsp;mainly applied for the new LE Audio. We don&amp;#39;t have the implementation for that yet.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most efficient method to share data with piconet slaves?</title><link>https://devzone.nordicsemi.com/thread/243173?ContentTypeID=1</link><pubDate>Thu, 02 Apr 2020 11:57:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e2b64d9-47ae-4066-b396-3ed666bee061</guid><dc:creator>youti</dc:creator><description>&lt;p&gt;Hi Hung,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks, that&amp;#39;s a clear answer. We have already tested with a concurrent protocol, but the product requirements prohibit this.&lt;/p&gt;
&lt;p&gt;Thanks again for your time!&lt;/p&gt;
&lt;p&gt;Remi&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most efficient method to share data with piconet slaves?</title><link>https://devzone.nordicsemi.com/thread/243168?ContentTypeID=1</link><pubDate>Thu, 02 Apr 2020 11:51:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8d838683-d0c2-4b66-bed5-8c87b90ee78f</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Remi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There is no concept of broadcasting data when in a connection in BLE. There is no multicast one-to-many packet except for advertising packets (which we don&amp;#39;t cover here).&amp;nbsp;&lt;br /&gt;Note that in 7.5ms you have at least one packet from the GATT client (I assume you mean the Central) and one packet from the GATT server (Peripheral). And if the peer wants to send more it can send more packets. Depends on the size of the packets, you can have up to 6 pairs of packets (or even more) in one 7.5ms connection event. I don&amp;#39;t see a reason why the GATT client can&amp;#39;t send a time stamp to the GATT server when the server sending a notification.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;There is no concept of &amp;quot;connection interval update&amp;quot; (I assume you don&amp;#39;t talk about connection parameters update which is something else). There can be empty packet send from the Central to the Peripheral on each connection event. But that only happens when there is no data from the central to the peripheral.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Time synchronization has always be a challenge in BLE, especially since it&amp;#39;s a reliable protocol. A message can be retransmitted multiple times before it reaches the destination. And you can&amp;#39;t send one packet to all your peripherals at once.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I would suggest to have a look at this blog:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/nordic/short-range-guides/b/bluetooth-low-energy/posts/wireless-timer-synchronization-among-nrf5-devices"&gt;https://devzone.nordicsemi.com/nordic/short-range-guides/b/bluetooth-low-energy/posts/wireless-timer-synchronization-among-nrf5-devices&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The use of an external protocol concurently would be able to help you to have a very accurate time synchronization.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most efficient method to share data with piconet slaves?</title><link>https://devzone.nordicsemi.com/thread/243103?ContentTypeID=1</link><pubDate>Thu, 02 Apr 2020 08:00:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1243edc7-53e1-4549-a002-5dee5c14aeb8</guid><dc:creator>youti</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;It seems like part of the message was deleted when I made an edit. It should say &amp;#39;data sharing should be as &lt;strong&gt;little&lt;/strong&gt; time consuming as possible&amp;#39;. Besides, it is timestamp data we want to send from the GATT client to all GATT servers with the same GATT profile. Since all clients require the same timestamp (characteristic), we dislike the idea of sending separate write commands to different slaves, since it&amp;nbsp;is time consuming and inefficient.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In our setup we have up to 6 GATT servers with notifications enabled at 45ms intervals. The connection interval is set at 7.5ms. Each server requires 7.5ms to send its data as a notification to the client. Thus in case we have all 6 GATT servers up and running, there is no time left on the channel to write randomly to the clients to update their timestamp (this has been tested already). For this&amp;nbsp;reason we came up with the two solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We want the GATT client to send a timestamp update as a replacement for the connection interval update (as you already interpreted correctly). This way, we hope the GATT server will respond with its notification data. The main problem with this method is we have to send this before the automatic connection interval update, and thus requires a timer. In addition, this method still requires distinct write commands to all clients;&lt;/li&gt;
&lt;li&gt;As for the broadcasting, broadcast the timestamp data every 45ms from client to all slaves;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I continued my investigation and&amp;nbsp;the first option seems possible although I have only tested it with one GATT server currently. The second option is still unknown, but I would still like to know whether broadcasting from client to server is possible at all.&lt;/p&gt;
&lt;p&gt;I hope this clarifies your questions.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Remi&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most efficient method to share data with piconet slaves?</title><link>https://devzone.nordicsemi.com/thread/242982?ContentTypeID=1</link><pubDate>Wed, 01 Apr 2020 13:27:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:610e65c0-9d7b-40da-8a1e-948dbcd4ccd5</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Remi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It&amp;#39;s not really clear for me on what your requirements and your plans are.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What do you mean by&amp;nbsp; &amp;quot;&lt;span&gt;We have only limited time on the channel and therefore want this data sharing to be as time consuming as possible&amp;quot; ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Why do you want to use &amp;quot;Write Without Response&amp;quot; to ensure connection remains alive ? Do you plan to send any data in the write command ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Could you please elaborate more ?&amp;nbsp;&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></channel></rss>