<?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>nRF52 AFH</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/47862/nrf52-afh</link><description>Hello, 
 Would like to understand more on Adaptive Frequency Hopping(AFH) behavior. We understand that AFH comes into play when lower layers detect noisy channels, blacklists them and accordingly updates the channel list in use. 
 What is the criteria</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 03 Jun 2019 06:53:22 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/47862/nrf52-afh" /><item><title>RE: nRF52 AFH</title><link>https://devzone.nordicsemi.com/thread/190417?ContentTypeID=1</link><pubDate>Mon, 03 Jun 2019 06:53:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2fc6bb3f-f81a-4fbc-9d5a-4f3c20665fef</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Belenie,&amp;nbsp;&lt;/p&gt;
[quote user="Belenie"]As far as I know &lt;strong&gt;most BLE stacks running on embedded devices do perform channel monitoring (his?)&lt;/strong&gt; as it adds on complexity as well as increase the current consumption. The performance of using the default channel map is usually good enough for most cases[/quote]
&lt;p&gt;&amp;nbsp;You are correct, there is a typo. It should be:&amp;nbsp;As far as I know&amp;nbsp;most BLE stacks running on embedded devices do &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; perform channel monitoring [...]&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Bjørn&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 AFH</title><link>https://devzone.nordicsemi.com/thread/190344?ContentTypeID=1</link><pubDate>Fri, 31 May 2019 20:50:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c3c20d2-e711-4b21-9cdf-42e45e64e0f4</guid><dc:creator>Belenie</dc:creator><description>&lt;p&gt;Hi Bjorn,&lt;/p&gt;
&lt;p&gt;Thanks for the response, I just want clarification on the last paragraph of your reply:&lt;/p&gt;
&lt;p&gt;Did you mean to say Do perform channel monitoring and we do not?&lt;/p&gt;
&lt;p&gt;Pasted below for quick review.&lt;/p&gt;
&lt;p style="background:white;line-height:18.0pt;margin:0in 0in 7.8pt 0in;"&gt;&lt;span style="color:#11171a;font-family:&amp;#39;GT Eesti&amp;#39;;font-size:10.5pt;"&gt;As far as I know &lt;strong&gt;most BLE stacks running on embedded devices do perform channel monitoring (his?)&lt;/strong&gt; as it adds on complexity as well as increase the current consumption. The performance of using the default channel map is usually good enough for most cases.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="background:white;line-height:18.0pt;margin:0in 0in 7.8pt 0in;"&gt;&lt;span style="color:#11171a;font-family:&amp;#39;GT Eesti&amp;#39;;font-size:10.5pt;"&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p style="background:white;line-height:18.0pt;margin:0in 0in 7.8pt 0in;"&gt;&lt;span style="color:#11171a;font-family:&amp;#39;GT Eesti&amp;#39;;font-size:10.5pt;"&gt;Belenie&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 AFH</title><link>https://devzone.nordicsemi.com/thread/190306?ContentTypeID=1</link><pubDate>Fri, 31 May 2019 13:35:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ca27828-c39d-418d-b18a-24088c29cbaa</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;You are correct that the channel map used in&amp;nbsp; BLE link can be updated by the Link master (i.e&amp;nbsp; BLE Central). From my understanding this is mostly used&amp;nbsp;by devices that use both BLE and WiFi to remove the&amp;nbsp;BLE channels that overlap with the WiFi channel used from the Bluetooth channel map.&lt;/p&gt;
&lt;p&gt;However, to be truly adaptive the device would have to sweep all the used channels periodically and monitor the received power level and/or&amp;nbsp;&lt;span&gt;keep track of the number of lost packets/ re-transmissions per channel.&amp;nbsp;The BLE protocol stacks from Nordic do not monitor&amp;nbsp;the link performance and hence do not blacklist or whitelist channels.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As far as I know most BLE stacks running on embedded devices do perform channel monitoring his as it adds on complexity as well as increase the current consumption. The performance of using the default channel map is usually good enough for most cases.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Bjørn&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 AFH</title><link>https://devzone.nordicsemi.com/thread/189967?ContentTypeID=1</link><pubDate>Wed, 29 May 2019 15:55:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c023c352-2a63-4095-8edc-427485ba82f1</guid><dc:creator>Belenie</dc:creator><description>&lt;p&gt;Hi Bjorn,&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The information provided is completely counter to everything I&amp;rsquo;ve been told about BLE, according to every source I can find it uses Adaptive Frequency Hopping, this is why the Client sends out a Channel Map and why the Channel Map gets updated/changed.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.eecs.umich.edu/courses/eecs589/papers/06215496.pdf"&gt;https://www.eecs.umich.edu/courses/eecs589/papers/06215496.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Excerpt from the BT5 Core Spec:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7.2 ADAPTIVE FREQUENCY HOPPING&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Adaptive Frequency Hopping (AFH) allows Bluetooth devices to improve their&lt;/p&gt;
&lt;p&gt;immunity to interference from and avoid causing interference to other devices&lt;/p&gt;
&lt;p&gt;in the 2.4 GHz ISM band. The basic principle is that Bluetooth channels are&lt;/p&gt;
&lt;p&gt;classified into two categories, &lt;em&gt;used &lt;/em&gt;and &lt;em&gt;unused&lt;/em&gt;, where used channels are part&lt;/p&gt;
&lt;p&gt;of the hopping sequence and unused channels are replaced in the hopping&lt;/p&gt;
&lt;p&gt;sequence by used channels in a pseudo-random way. This classification&lt;/p&gt;
&lt;p&gt;mechanism allows for the Bluetooth device to use either all or fewer than the&lt;/p&gt;
&lt;p&gt;79 channels required in the Core Specification v1.1. The minimum number of&lt;/p&gt;
&lt;p&gt;channels allowed by the Bluetooth specification is 20.&lt;/p&gt;
&lt;p&gt;The Core Specification defines the aspects of AFH necessary to ensure&lt;/p&gt;
&lt;p&gt;interoperability, including the hopping kernel, Baseband behavior, Link&lt;/p&gt;
&lt;p&gt;Manager Protocol (LMP) commands, and Host Controller Interface (HCI)&lt;/p&gt;
&lt;p&gt;commands and events required to change and configure hopping sequences.&lt;/p&gt;
&lt;p&gt;The Bluetooth Specification also defines a mechanism that allows for a slave to&lt;/p&gt;
&lt;p&gt;report channel classification information to the master.&lt;/p&gt;
&lt;p&gt;Adaptive Frequency Hopping utilizes metrics obtained through many sources.&lt;/p&gt;
&lt;p&gt;These metrics are analyzed and then the resulting &lt;em&gt;Channel_Map &lt;/em&gt;is used by&lt;/p&gt;
&lt;p&gt;the adaptive frequency hopping kernel. The metrics may come from over-theair&lt;/p&gt;
&lt;p&gt;measurements, data supplied by the Host (via the&lt;/p&gt;
&lt;p&gt;HCI_set_AFH_Channel_Classification command), or reports by the slave or&lt;/p&gt;
&lt;p&gt;from other hardware coexistence interfaces.&lt;/p&gt;
&lt;p&gt;While AFH is a critical element in coexistence, it is not enough in some&lt;/p&gt;
&lt;p&gt;circumstances.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is a section from the spec that specifically talks about BLE in relation to Adaptive Frequency Hopping:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;4.2.2.6 Connected Mode&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After a successful connection procedure, the devices are physically connected&lt;/p&gt;
&lt;p&gt;to each other within a piconet. This means that there is a piconet physical&lt;/p&gt;
&lt;p&gt;channel to which they are both connected, there is a physical link between the&lt;/p&gt;
&lt;p&gt;devices, and there are default LE-C and LE-U logical links. When in the&lt;/p&gt;
&lt;p&gt;connected mode it is possible to change the properties of the physical and&lt;/p&gt;
&lt;p&gt;logical links while remaining connected to the piconet physical channel, such&lt;/p&gt;
&lt;p&gt;as changing the adaptive frequency hopping sequence or changing the length&lt;/p&gt;
&lt;p&gt;of data packets. It is also possible for the device to carry out advertising,&lt;/p&gt;
&lt;p&gt;scanning or discovery procedures without needing to disconnect from the&lt;/p&gt;
&lt;p&gt;original piconet physical channel.&lt;/p&gt;
&lt;p&gt;Additional logical links are created using the Link Manager that exchanges LL&lt;/p&gt;
&lt;p&gt;Protocol messages with the remote Bluetooth device to negotiate the creation&lt;/p&gt;
&lt;p&gt;and settings for these links. One of these links (LE-C) transports the LL control&lt;/p&gt;
&lt;p&gt;protocol and is invisible to the layers above the Link Manager. The other link&lt;/p&gt;
&lt;p&gt;(LE-U) transports the L2CAP signaling protocol and any multiplexed L2CAP&lt;/p&gt;
&lt;p&gt;best-effort channels. It is common to refer to a default LE ACL logical transport,&lt;/p&gt;
&lt;p&gt;which can be resolved by context, but typically refers to the default LE-U logical&lt;/p&gt;
&lt;p&gt;link. Also note that these two logical links share a logical transport.&lt;/p&gt;
&lt;p&gt;During the time that a slave device is actively connected to a piconet there is&lt;/p&gt;
&lt;p&gt;always a default LE ACL logical transport between the slave and the master&lt;/p&gt;
&lt;p&gt;device. The method of deleting the default LE ACL logical transport is to detach&lt;/p&gt;
&lt;p&gt;the device from the piconet physical channel, at which time the entire hierarchy&lt;/p&gt;
&lt;p&gt;of L2CAP channels, logical links, and logical transports between the devices is&lt;/p&gt;
&lt;p&gt;deleted.&lt;/p&gt;
&lt;p&gt;*****Please note new email address*****&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 AFH</title><link>https://devzone.nordicsemi.com/thread/189857?ContentTypeID=1</link><pubDate>Wed, 29 May 2019 11:37:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cd9bb55d-1517-46fa-ba20-c6845fe9cb82</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Belenie,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;is this related to Bluetooth Low Energy or 802.15.4 protocols(i.e. Zigbee or Thread)?&lt;/p&gt;
&lt;p&gt;Bluetooth Low Energy uses Frequency hopping, but it is not adaptive, i.e. the channels are not monitored and hence not whitelisted/blacklisted.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thread and Zigbee uses the CSMA-CA (Carrier Sense Multiple Access with Collision Avoidance) protocol. The nRF52840 or the nRF52811 can perform&amp;nbsp;&lt;span&gt;&lt;a title="Energy detection (ED)" href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/radio.html?cp=3_0_0_5_19_11_2#ieee802154_ed"&gt;Energy detection (ED)&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;a title="Clear channel assessment (CCA)" href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/radio.html?cp=3_0_0_5_19_11_3#concept_vqc_53j_4r"&gt;Clear channel assessment (CCA)&lt;/a&gt;&amp;nbsp;to check if a channel is in use and if its free, respectively. This is configurable through the 802.15.4 Radio driver which is used by both the Zigbee and Thread stacks on our devices, see&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a title="CCA configuration management" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.thread_zigbee.v2.0.0/group__nrf__802154__cca.html?cp=5_7_0_3_1_12"&gt;CCA configuration management&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a title="CSMA-CA procedure" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.thread_zigbee.v2.0.0/group__nrf__802154__csma.html?cp=5_7_0_3_1_13"&gt;CSMA-CA procedure&lt;/a&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Best regards&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Bjørn&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>