[[Include(wiki:802.11/wlan_exp/app_notes/tutorial_hop_mac/TOC)]] [[TracNav(802.11/TOC)]] = Tutorial: Building a Custom Frequency Hopping MAC with the 802.11 Reference Design = In many communication systems, it is advantageous to "hop" between many different frequencies. These systems, which fall under a broad class of techniques called [https://en.wikipedia.org/wiki/Spread_spectrum spread spectrum], can provide robustness against interference and jamming. In this tutorial, we will modify the Mango 802.11 Reference Design to enable frequency hopping and we will use the [wiki:802.11/wlan_exp WLAN Experiments Framework] to evaluate the changes. Specifically, we will implement the frequency hopping behavior in two different ways: 1. First, we will use [wiki:./slow_hopping Slow Hopping Approach] that remains interoperable with standard Wi-Fi clients. This design uses existing 802.11 management frame parameters to instruct client stations to hop to a new center frequency. However, these management frame parameters were never intended for fast frequency hopping; they were intended for an AP to shift its network to a different frequency over long time scales (e.g., after the detection of a radar system when using [https://en.wikipedia.org/wiki/IEEE_802.11h-2003 Dynamic Frequency Selection]). 2. Alternatively, we can improve the frequency hopping rate significantly by breaking compatibility and interoperability with Wi-Fi devices. In the [wiki:./fast_hopping Fast Hopping Approach], we will employ an 'a priori' known frequency hopping schedule at each WARP v3 node in the network rather than explicitly communicate the intention to hop in a management frame. The key challenge here is ensuring that each device remains synchronized despite sharing no absolute time reference. Both of these approaches to frequency hopping only involve simple C code changes to the design; the existing FPGA hardware remains untouched. This tutorial highlights a fundamental design principle behind the Mango 802.11 Reference Design. Since the design is compliant with the 802.11 standard, we can make some changes to the design and still interoperate with commercial Wi-Fi devices. However, we are not beholden to the existing standard. We can radically change the behavior of the design and implement completely custom schemes.