Dynamic Frequency Selection (DFS) is a mechanism that allows a radio device to dynamically select or change the operating frequency to avoid interfering with other systems, such as local weather radar systems. This GNU Radio Companion (GRC) flow graph emulates radar signal patterns for DFS testing using a suitable Software Defined Radio (SDR), such as the HackRF One. You can select the center frequency and type of radar signature.
For more information on DFS in the context of Wi-Fi networks see A Practical Introduction to Dynamic Frequency Selection.
Follow these steps to automatically setup and provision an Ubuntu virtual machine (VM) with the necessary software and libraries to run the flow graph with your HackRF. If you already have an environment setup to use your HackRF, you can skip to step 5.
- Install Vagrant, VirtualBox and the VirtualBox Extension Pack (required to enable USB support in VirtualBox). If you have any of these components already installed, please make sure you're running the latest version.
- Setup and provision the VM automatically using Vagrant:
git clone https://github.com/adriangranados/dfs-pulse-tester.git
cd dfs-pulse-tester
vagrant plugin install vagrant-vbguest
vagrant up
vagrant reload
- Plug in the HackRF and attach it to the VM by clicking the USB icon in the bottom right of the VirtualBox VM window and choosing Great Scott Gadgets HackRF ONE.
- Login to the VM (choose the hackrf user and enter password hackrf).
- Launch the GRC (GNU Radio Companion) application and open the dfs_pulse_tester.grc file (if you're using the VM provisioned using the steps above, the file will be located in /home/hackrf/).
- Play the flow graph, then select the channel, radar signature and start the pulse (Pulse > Start).
If you're using Vagrant, you can stop the VM by typing vagrant halt
. To start the VM again, just type vagrant up
. Make sure you run these commands from the same directory the Vagrantfile is located.
- Adrian Granados - @adriangranados
- Nigel Bowden - @wifinigel
This flow graph is provided for testing purposes only. Check local and federal regulations and obtain permission before using.