Home

Awesome

2.4GHz RF scanner

This project contains the source code of an nRF24L01+ and Blue Pill (STM32F103C8T6) based RF scanner. The Blue Pill scans frequencies from 2.400GHz to 2.525GHz (1MHz resolution) with nRF24L01+ and plots the activity on each frequency through UART.

This is what the UART output looks like (explained below):

|------------------------------------------------------------------------------------------------------|-----|-----|
|Frequency layout [GHz]                                                                                |Ref. |Max. |
|2.4       2.41      2.42      2.43      2.44      2.45      2.46      2.47      2.48      2.49..2.52  |RPD  |RPD  |
||         |         |         |         |         |         |         |         |         |     |     |[pcs]|[pcs]|
|------------------------------------------------------------------------------------------------------|-----|-----|
|   :-.               ::  ::..%%@%@#%@@@%%%%#@@@                              .-: ::                   |  10 | 180 |
|.  ....                 .. . @@#%@@#%@@@%%%%#@@                              ::     .                 |  10 | 180 |
|   ....                ...  .%@#%%%%%%%####%##%                            ..  ..:.                   |  16 | 180 |
|                     ..  ...:##***###%@%%@@@%#@                            .:::                       |  11 | 180 |
| ....                ...:... %%%%@%%%%%#***%#%%                                                       |  16 | 180 |
|:.    .              : .:. ..-###%%@###%##%##=:                              ...:.  :                 |  11 | 180 |
|..  ..                .:....: %%%%%%%%%%%@@%%#                             ::...                      |  12 | 180 |
|.... ...               ..   ..@%%@@%%%@%%%%%%%                                 ..  ..                 |  18 | 180 |
|                     .  .::.  @%#%%%#########*                             .                          |  11 | 180 |
|..  ..                      ::%%%%@%%%%@%%@@@%                                  .:..:                 |  12 | 180 |
|..::::                ..    . @#**#%***##*#%##                             ..   .-:.                  |  10 | 180 |
| ... ..                 ...   @%%%%@%%@%%##%%*                              .. ...  .                 |  13 | 180 |
|   .. .                 ..   :*%*%%%%%@%%%%@@%                             ....... ..                 |  14 | 180 |
|..                    ....   .-:::--::------::              .+@@@*           .......                  |  57 | 180 |
|...                    .. ....::.:............             -#@@@#.         .       ..                 |  72 | 180 |
|  ..  .              ..  ..   ................             :*@@@#     ...  ..                         |  73 | 180 |
|                      ..  ....:...............             -+@@@#           ..                        |  73 | 180 |
|  ......             ...    ..................            .##@@%#          .....   ..                 |  74 | 180 |
|   ....                .......:...............             #@@%%=            ..    ..                 |  75 | 180 |
|. ...                 . ....  ::::::::::::::::             *#@@%*                                     |  38 | 180 |
|:....                ..     ..@#**##**%**+****                               ... ...                  |  14 | 180 |
|...   .                  ...  %**%%%%@%%##%#*#                              ..    ..                  |  16 | 180 |
|      .               ..  ....##*#%###*%%#%@##                                 .....:                 |  14 | 180 |

Unknown sig.       Unknown sig. Wi-Fi (WLAN 6)          Microwave oven     Unknown sig.

The axes:

        f[GHz]
    ------------->
    |
 t  |
[s] |
    |
    V

The time difference between each line is ~4s. The greyscale characters represent the signal strengths relative to each other. The signal classification has been added manually.

The code of this project has been implemented using

A detailed description can be found in docs/project_description.md.

A similar, Arduino libraries based design by cpixip can be found at forum.arduino.cc.

Deployment

Important: the project has been developed and tested on Windows only.

Quick deployment process:

cd <path>\stm32-rf-scanner\src\Debug
make all

Note: the SW can be built from Eclipse also. .project is stored in src.

Results

Measurement results are stored in the meas folder.

License

This project contains files from multiple sources with different licenses. The relevant license is added to every source file.

The configuration files generated by Eclipse using the ARM Cortex-M C/C++ Project template are licensed (depending on the file) by:

The configuration files generated by STM32CubeMX are licensed by:

The files implementing the logic of the scanner functionality are licensed by: