Skip to content

gemesa/stm32-rf-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • Build the SW from command line with make and arm-none-eabi-gcc:
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:

  • Arm Limited under Apache license 2.0 (Copyright (c) 2009-2018 Arm Limited. All rights reserved.)
  • Liviu Ionescu under MIT license (Copyright (c) 2014 Liviu Ionescu)

The configuration files generated by STM32CubeMX are licensed by:

  • ST under BSD 3-Clause license (Copyright (c) 2020 STMicroelectronics. All rights reserved.)

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

  • András Gémes under GNU GPLv3 license (Copyright (c) 2024 András Gémes. All rights reserved.)