Quick and dirty WiFi analyzer

For a while the 2.4Ghz WiFi in the lab did not work at all. Several wireless routers and configurations was tried but nothing seemed to work. Sometimes you could get a brief connection but the connection would carry no bandwidth or quickly disappear.

In frustration I made this quick and dirty spectrum analyzer using a NRF24L01 module, an Arduino and a small OLED display:

The NRF24L01 is not really meant to interact with WiFi signals but its frequency range does cover the 2.4GHz WiFi channels. I wanted something that only looked at the radio signals and did not try to interpret SSID’s and other WiFi related stuff, I just wanted to know if there was activity on the channel or not.  The NRF27L01 does not really have the capability to measure the signal strength of a particular channel but just if the channel is occupied or not. I therefore used a simple histogram method where I quickly scanned through all channels and counted up a number for each channel if it was occupied. These are the numbers that are displayed as a graph on the display:

Since the analyzer was meant to identify channel occupancy I added a feature that would identify the most occupied channel and put a circle around this peak value as well as it’s frequency.

The schematic for the project is really straight forward. all the parts are just connected with wires:

Should you fancy to roll one yourself here is the code for the project (AS IS, no helpsies!). It is written for a standard Arduino UNO but could probably run on other Arduinos too.


Leave a Reply