<?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>Improved Gazell performance and stability</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/116415/improved-gazell-performance-and-stability</link><description>I am an embedded software engineer and have experience developing BLE devices with nRF5SDK, but this is my first time using Zephyr/NCS. 
 
 I am developing a USB dongle (nRF52840) for computers and a controller (nRF52840). 
 As a basic configuration,</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 19 Nov 2024 13:20:28 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/116415/improved-gazell-performance-and-stability" /><item><title>RE: Improved Gazell performance and stability</title><link>https://devzone.nordicsemi.com/thread/511091?ContentTypeID=1</link><pubDate>Tue, 19 Nov 2024 13:20:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3bb0f2dd-67e2-4d04-ae5c-cde0ea33445b</guid><dc:creator>Asbj&amp;#248;rn</dc:creator><description>&lt;p&gt;Dear Kanai,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;happy to help and I hope you find some result you are ok with. Let us know if you have any further questions.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Asbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Improved Gazell performance and stability</title><link>https://devzone.nordicsemi.com/thread/510990?ContentTypeID=1</link><pubDate>Tue, 19 Nov 2024 02:41:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32bb321d-3aed-43d0-9d40-1bd488bce74e</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;&lt;span&gt;Dear&amp;nbsp;Asbj&amp;oslash;rn,&lt;br /&gt;Okay, I&amp;#39;ll implement the application and evaluate it.&lt;br /&gt;&lt;/span&gt;Thank you for answering my question.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Improved Gazell performance and stability</title><link>https://devzone.nordicsemi.com/thread/510927?ContentTypeID=1</link><pubDate>Mon, 18 Nov 2024 15:11:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a43fb6a9-b149-4511-a6f5-e5ee5c70d03a</guid><dc:creator>Asbj&amp;#248;rn</dc:creator><description>&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-align:left;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;Dear Kanai,&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-align:left;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-align:left;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-align:left;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;The short answers is yes, trying to avoid collision is a good strategy, but it can become complicated to maintain as the devices drift a bit in time and they&amp;#39;ll start overlapping. That&amp;#39;s why we have the recommendation to only have one semi-synchronous device connected and the rest as asynchronous. You can of course try with define more as semi.synchronous, but the protocol isn&amp;#39;t built to handle clock drift, so at some point they will become a problem for each other. It&amp;#39;s a trade of between protocol complexity and acceptable package loss and retransmits. I&amp;#39;d suggest you try to define some time slots and try the semi-synchronous mode and compare the performance if you have them all as asynchronous or all but one as asychnronous.&amp;nbsp;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-align:left;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-align:left;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-align:left;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;Best regards&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-align:left;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;Asbjørn&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Improved Gazell performance and stability</title><link>https://devzone.nordicsemi.com/thread/510814?ContentTypeID=1</link><pubDate>Mon, 18 Nov 2024 02:08:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:33fdff93-fd22-4be6-9872-716d5f89344f</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;Dear&amp;nbsp;Asbj&amp;oslash;rn,&lt;br /&gt;Thank you for your answer.&lt;br /&gt;&lt;br /&gt;Is it practical to use asynchronous mode and have the application control the transmission timing to prevent packet collisions?&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Example: If there are 4 controllers,&lt;br /&gt;Controller 1 &amp;rarr; Controller 2 &amp;rarr; Controller 3 &amp;rarr; Controller 4 &amp;rarr; Controller 1....&lt;br /&gt;The data is sent to the dongle in order, and the dongle sends the timing discrepancy to the controller to adjust it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Improved Gazell performance and stability</title><link>https://devzone.nordicsemi.com/thread/510758?ContentTypeID=1</link><pubDate>Fri, 15 Nov 2024 15:36:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fb7d79c3-cbc5-4efe-a685-035bbc42c9ce</guid><dc:creator>Asbj&amp;#248;rn</dc:creator><description>&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;Dear Kanai,&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;Q1:&amp;nbsp; Since you have power available and more dependent on reliability, the semi-synchronous mode would be your way to go. Unfortunately the clock drift will send multiple synchronous devices towards the same and start interfering with each other, so in general we recommend to stick with one device having a synchronous pipe/channel defined and rest set up with asynchronous. There might be some overlap and collisions, but with your update requirement, there should be time for all to get through.&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;Q2: Yes, you can keep track of the addresses used by the controllers. The ACK from the dongle will use that address and you can extract that information on the dongle side and hence know who the source was. Just configure the controls to use different addresses in their configuration.&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;span style="background-color:rgba(255, 255, 255, 1);color:rgba(0, 0, 0, 1);float:none;font-size:14.6667px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0;text-transform:none;white-space:normal;"&gt;Q3: The factor is the round time for a packet to be sent, switch to RX mode and receive the ACK, then switch back to TX and send next one. So with a full payload at 1Mbit/s it&amp;#39;s about 560us to send, switch, receive ACK and switch to TX. With a bit extra overhead it results in about 166Hz.&lt;/span&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;Best regards&lt;/div&gt;
&lt;div style="border:0;color:rgba(0, 0, 0, 1);direction:ltr;font-size:11pt;font-style:normal;font-weight:400;letter-spacing:normal;line-height:inherit;margin:0;padding:0;text-indent:0;text-transform:none;vertical-align:baseline;white-space:normal;"&gt;Asbjørn&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Improved Gazell performance and stability</title><link>https://devzone.nordicsemi.com/thread/510590?ContentTypeID=1</link><pubDate>Fri, 15 Nov 2024 05:03:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:931910af-7cf0-4607-b2b0-1c56b01ac63c</guid><dc:creator>DX_HK</dc:creator><description>&lt;p&gt;I&amp;#39;ll add one more.&lt;br /&gt;Q3&lt;br /&gt;In the sample code (gzll_ack_payload_device/gzll_ack_payload_host), the sending cycle is approximately 166Hz.&lt;br /&gt;According to the code, a new packet is sent immediately after the transmission is completed. Therefore, it seems to be sending at the maximum speed of gazell.&lt;br /&gt;What factors determine this 166Hz transmit cycle?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>