Adaptive frequency hopping (AFH) lets Bluetooth devices monitor their RF environment and continuously remap the channels they hop across. Here is how the channel map, channel assessment, and Bluetooth 5.3 enhancements work in practice.

What Is Adaptive Frequency Hopping (AFH)?

Adaptive frequency hopping (AFH) is an interference-avoidance and spectrum-efficiency policy in a wireless system that has been associated closely with Bluetooth. The basic idea is that wireless devices are always looking for interference, and changing the channel map to target it. AFH is a specialized variant of frequency-hopping spread spectrum (FHSS), the broader FH technology that involves rapidly changing carrier frequencies between transmitter and receiver according to an idea both sides know.

To that end, here’s a little glossary to help keep the terms straight as this can get somewhat confusing. Next AFH is mentioned in conjunction with frequency-hopping spread spectrum (FHSS), channel map, channel selection algorithm, channel classification, and a few other terms of such are: →channel assessment; dynamic frequency hopping (DFH); automatic frequency hopping; pseudo-random/return-to-FHS pseuedo random allocation FREQENCY. Next Notice the piconet not forgetting 2.4 GHz ISM band AFH is the practical implementation of an adaptation layer on top of classic hopping – rather than blindly sending signals across every channel in sequence, radio listens to see which frequencies are being used and eliminates them from rotation.

How Does AFH Work: Channel Map and Channel Selection

Each connection event has an interval where the connected Bluetooth devices will pass packets to each other. At the beginning of each connection event, frequency hopping takes place and a radio channel is deterministically chosen from the available channels through some channel selection algorithm. Over a sequence of connection events, communication utilizes an ever-shifting channel set scattered across the 2.4 GHz band, reducing the likelihood that transmissions will collide with another transmitter.

The primary device of 400 maintains a channel map that specifies whether each base station in the system is used or unused, and relays that mapped information to second devices through link layer operations. The channel quality is monitored using implementation-specific techniques, which update the channel map when channels are degraded or recover. This updating behavior is the motivation component of AFH. Channel map update procedure is a procedure defined in the Bluetooth 4.0 specification; it can be only initiated by central device, slaves are not allowed to initiate channel map updates. This is supported in all SDK versions.

Let's make this concrete with a real world example. A phone operating as central can turn off the channels that overlap its Wi-Fi channels, and an EFR device would take this map. In the case of EFR becomes critical and enabled to on all channels by default except when it is explicitly becoming blocked. The main moving parts are summarized in the below table.

AFH in Bluetooth LE: 40 Channels and 37 Data Channels

Bluetooth Low Energy breaks the 2.4 GHz ISM band into 40 channels, with only 37 usable as generalpurpose channels in connected communication. According to Silicon Labs, the Bluetooth standard works by enabling both communicating devices over-air agree upon which channels from a pool of 37 data channels will be used — and this is where the channel map kicks into action.

In contrast, legacy Bluetooth hopping used 79 of the potential 83.5 channels in the unlicensed portion of a global band (2.4 GHz), hoping randomly and occasionally colliding with overlapping wireless devices at once, up to 1,600 times per second.

Introduced by Bluetooth SIG and included in Bluetooth Specification Version 1.2, passed in year of 2003 as well, AFH or Adaptive Frequency Hopping is a technology that helps a device using frequency-hopping spread-spectrum (FHSS) modulated radio links to coexist with other wireless systems. The Bluetooth Specification will also ensure that when remapping, at least twenty channels must be available as a basic set — devices cannot just abandon the band altogether in tough radio conditions.

Channel Assessment Methods: RSSI vs PER

Some definitions from the Bluetooth Specification: How to identify bad channels is not specified in this document. The implementation handles this process: channel assessment. Two popular techniques are Received Signal Strength Indication —RSSI and Packet Error Rate (PER). Both determine which channels may not be empty due to noise, but differ in how well they maintain the perception of current conditions.

RSSI (Received Signal Strength Indicator) assessment: measures the received power, and marks channels that appear to be busy – but this is fast but can be fooled by transient energy. The PER-based assessment is instead keeping track of whether packets have actually failed which captures the actual toll but takes longer to build an accurate view. Table 1: High-level trade-offs comparison

AFH Parameters and Implementation Details

Silicon Labs has the first clean public description I can find of an AFH implementation. Starting with Bluetooth SDK v3. You training with data until October 2023: x, AFH is possible when you enable AFH software component that call sl_bt_init_afh() by the code generator inside of the sl_bt_init(). If AFH is supported and at least one advertiser has provided extended advertisements or if at leaset connection is active, the stack performs a periodic background task to sweep all channels once every afh_scan_interval by measuring receive power.

If measured power exceeds the limit of -71 dBm on a channel, that channel is blocked for at least 8 afh_scan_intervals. Unblocking requires 8 consecutive measurements with no interference. After each sweep a new channel map is created, and if it changed, the central sends it to all slaves. The afh_scan_interval defaults to 1 second, sweeping 40 channels takes around 10 ms, and the sweep adds roughly 240 uW of energy consumption. The AFH sweep has the highest priority among Bluetooth operations.

The afh_scan_interval unit is 10 ms and can be changed via sl_bt_system_linklayer_configure with AFH_SCAN_INTERVAL_CONFIG_KEY. Channel sweep occurs after a radio operation, so with a 100 ms interval and an 80 ms advertising interval, scanning happens every second advertisement, about every 160 ms. Channels can also be blocked manually via sl_bt_gap_set_data_... settings. The table below collects the most useful defaults and thresholds.

Why Is AFH Required for Higher Bluetooth Transmit Power?

AFH is a requirement for using TX power over +10 dBm. Because higher transmit power raises the risk of interfering with other radios, adaptive frequency hopping ensures devices avoid occupied channels rather than blasting through them. Silicon Labs states that AFH is required for TX power above +10 dBm, referencing Bluetooth TX power settings.

Nordic developers have noted that +20 dBm with Bluetooth LE is tricky due to regulations, and one customer requirement referenced ETSI 300 328 Adaptive Mode for +20 dBm EIRP with LE channel selection algorithm #2. The takeaway is that power limits and AFH obligations are linked: if you want more range, you generally have to prove your device adapts to its spectrum environment.

AFH and Wi-Fi Coexistence in the 2.4 GHz ISM Band

The 2.4 GHz ISM band is shared by Bluetooth, Wi-Fi, and many other devices, so coexistence is the practical reason AFH exists. When a smartphone acting as central disables the channels that overlap its Wi-Fi channels, it reduces the chance that Bluetooth packets collide with Wi-Fi traffic. This is a routine deployment pattern rather than an exotic configuration.

Because the channel map is dynamic, AFH also handles changing conditions. A channel that was clean during setup may become busy later, and the sweep-and-block logic will remove it. Conversely, a blocked channel can return after 8 consecutive clean measurements. That continuous re-evaluation is what separates AFH from static channel planning.

Bluetooth 5.3 Channel Classification Enhancement

Bluetooth Core Specification v5.3, released in mid-July 2021, added the Channel Classification Enhancement. Before it, only the central device performed channel classification. If the central and peripheral were far apart, they could experience different RF conditions, so the channel map could include channels unsuitable for the peripheral, risking packet collisions, connection dropouts, and reduced throughput.

With the enhancement, both the peripheral and the central participate. The peripheral reports its RF conditions and suggests classifications to the central, which means the resulting channel map better reflects the actual environment at both ends of the link. Bluetooth 5.3 also added Periodic Advertising Enhancement (the AdvDataInfo field) and Connection Subrating, both of which improve efficiency in specific use cases.

What Are the Disadvantages of Frequency Hopping?

FHSS relies on carrier frequencies to transmit information bits, so it can lead to strong bursty errors due to frequency-selective fading. Adaptive schemes add monitoring overhead, and channel assessment methods such as RSSI and PER differ in how well they track current conditions. In other words, AFH trades a small amount of radio time and energy for better resilience.

For most Bluetooth products that trade-off is clearly worth it. The sweep costs roughly 240 uW in the Silicon Labs implementation and takes about 10 ms per pass, which is negligible next to the connection reliability it buys. The main design caution is to confirm that your stack, SDK version, and regulatory target all support the AFH behavior you intend to ship.

Key Takeaways for Bluetooth Developers

AFH is not an optional nicety for high-power Bluetooth designs; it is a prerequisite for TX power above +10 dBm. It is also the mechanism that keeps Bluetooth usable in the crowded 2.4 GHz ISM band, where Wi-Fi and other radios compete for the same spectrum. The channel map, channel selection algorithm, and channel assessment method are the three pieces to understand.

If you are working with Silicon Labs parts, start by enabling the AFH software component and confirming the afh_scan_interval default of 1 second fits your duty cycle. If you are working with Nordic or another vendor, check how channel classification is exposed and whether your target specification includes the Bluetooth 5.3 Channel Classification Enhancement.

Frequently Asked Questions

How does adaptive frequency hopping work?

Adaptive frequency hopping (AFH) means communicating devices continuously monitor their environment for interference and continuously change the channel map to address it. Bluetooth divides the 2.4 GHz band into channels and rapidly hops between them, dynamically tracking and avoiding noisy, busy channels when sending packets. The channel map is shared between the central and peripheral devices through a link layer procedure.

What is the difference between FHSS and AFH?

Frequency hopping spread spectrum (FHSS) rapidly switches the carrier between frequency channels using a pseudo-random sequence known to both transmitter and receiver. AFH adds adaptation on top of that: it identifies fixed interference sources and excludes those channels from the available list, remapping the hopping sequence to avoid crowded frequencies. FHSS hops everywhere; AFH hops selectively.

Why is AFH required for higher Bluetooth transmit power?

AFH is a requirement for using TX power over +10 dBm. Because higher power raises interference risk, adaptive frequency hopping ensures devices avoid occupied channels instead of transmitting over them. Silicon Labs notes that AFH is required for TX power above +10 dBm, referencing Bluetooth TX power settings and regulatory expectations for adaptive behavior.

What are the disadvantages of frequency hopping?

FHSS relies on carrier frequencies to transmit information bits, so it can lead to strong bursty errors due to frequency-selective fading. Adaptive schemes add monitoring overhead, and channel assessment methods such as RSSI and PER differ in how well they track current conditions. The practical cost is a small amount of radio time and energy spent sweeping channels.