<?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>Question about avoding collision</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/23723/question-about-avoding-collision</link><description>Dear All, 
 I have a question abou basic of BLE technology.
I&amp;#39;m using nRF52832 for our project.
My question is about avoding packet collision.
Please confirm my understanding.
During advertisment, automatically, random delay (0ms to 10ms) is added</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 08 Apr 2020 14:03:12 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/23723/question-about-avoding-collision" /><item><title>RE: Question about avoding collision</title><link>https://devzone.nordicsemi.com/thread/244100?ContentTypeID=1</link><pubDate>Wed, 08 Apr 2020 14:03:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6452bc4c-792b-4762-8895-7d3a97ad44b3</guid><dc:creator>kunaal</dc:creator><description>&lt;p&gt;Dear Jan,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m working on a solution and facing a few difficulties. well, I have more than 100 smartphones (android and iOS) devices in closed proximity were all the devices are logging each other with say duty cycle of 1. so constant scanning is happening.I read somewhere that when the number of devices increases then the probability of scanning the advertisement falls drastically so will that mean that there would be the possibility of more collision. will all the devices will be able to log each other ? will it also depend on how much time these devices are there together in that crowded space? I also read about the Backoff scheme but as you know android and other OS don&amp;#39;t expose that level of control. so what&amp;#39;s the way out to ensure maximum logging? can you please help as the solution is related to the current Covid crisis and a quick reply would be highly appreciated.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Question about avoding collision</title><link>https://devzone.nordicsemi.com/thread/93278?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2017 09:52:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ea3fc123-cfbb-4821-9d53-47051571fbb8</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Glad to help. Marking correct answer and closing the question is good practice, helping other people when they search on the forum for similar topics;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Question about avoding collision</title><link>https://devzone.nordicsemi.com/thread/93277?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2017 09:37:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9f7d1aab-a23f-4985-8fb5-2cfebb447102</guid><dc:creator>Allen</dc:creator><description>&lt;p&gt;Dear Jan,&lt;/p&gt;
&lt;p&gt;Thank you for your quick reply.&lt;/p&gt;
&lt;p&gt;Your advice was very helpful to understand about &amp;quot;collision of BLE&amp;quot;&lt;/p&gt;
&lt;p&gt;Thank you,
Allen.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Question about avoding collision</title><link>https://devzone.nordicsemi.com/thread/93276?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2017 09:25:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:780248b3-bfc2-4a8f-a75e-8838ccbcebe4</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Hi Allen,&lt;/p&gt;
&lt;p&gt;Not all is true. Yes, collisions during Broadcasting/Observing phase is limited by adding mandatory jitter to Adv. interval (so even if two advertisers have temporary collision on one packet and they have the same adv. frequency they should go out of sync very soon). However if you want to do active scanning (SCAN_REQ) or connection (CONNECT_REQ) then you can easily get collisions and DoS situations when too many observers/central devices targets one Broadcaster/Peripheral at the same time. And unfortunately this is real example, just buy 10 Samsung phones and let them scan with maximum duty cycle (Android BLE API) and your one broadcaster will have basically all Rx slots (mandatory to start exactly 150us after end of Tx) occupied by SCAN_REQ packets, there will be collisions and hardly any CONNECT_REQ will get through. But that&amp;#39;s limit case.&lt;/p&gt;
&lt;p&gt;Now to second part (connection link) which you have wrong understanding: frequency hopping is basically fixed. In CONNECT_REQ packet masters says what is initial channel map, where the two devices will meet for the first time (channel number and delta from CONNECT_REQ) and then sequence of hopping is fixed. The only way how to change it is to change channel map or connection request (both can be changed during connection but this procedure is very rare).&lt;/p&gt;
&lt;p&gt;Finally there is no algorithm in Nordic BLE stacks (Soft Devices) or special HW magic on nRF5x chips to detect channel occupancy or collisions. You either do this yourself on higher layer (but hard to say how you could get to low level data and analyze them) or you design and implement your own stack or you use some other HW to solve this. However there is a reason why no one is doing this in nRF5x or similar low power chips today: collisions during connection link are so rare that it&amp;#39;s negligible in real world applications. If you have very noisy environment (in 2.4GHz ISM band;) or application requiring extreme reliability then you have problem BUT then BLE and nRF5x chips are not for you!&lt;/p&gt;
&lt;p&gt;Cheers Jan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>