{"id":18302538,"url":"https://github.com/gemesa/stm32-rf-scanner","last_synced_at":"2025-09-01T16:34:57.972Z","repository":{"id":152395558,"uuid":"233912729","full_name":"gemesa/stm32-rf-scanner","owner":"gemesa","description":"STM32 and nRF24L01+ based 2.4GHz RF scanner","archived":false,"fork":false,"pushed_at":"2024-01-06T09:50:25.000Z","size":898,"stargazers_count":14,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-21T06:03:28.397Z","etag":null,"topics":["blue-pill","c","eclipse","hal","hardware-abstraction-layer","nrf24","nrf24l01plus","stm32","stm32cubemx","stm32f1","stm32f103","stm32f103c8t6","stm32hal"],"latest_commit_sha":null,"homepage":"https://shadowshell.io/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gemesa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-01-14T18:54:03.000Z","updated_at":"2025-01-21T15:30:06.000Z","dependencies_parsed_at":"2024-01-16T03:45:41.292Z","dependency_job_id":"768ada58-cc77-4ca6-a4f3-f5bf1f477951","html_url":"https://github.com/gemesa/stm32-rf-scanner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemesa%2Fstm32-rf-scanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemesa%2Fstm32-rf-scanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemesa%2Fstm32-rf-scanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemesa%2Fstm32-rf-scanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gemesa","download_url":"https://codeload.github.com/gemesa/stm32-rf-scanner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247352641,"owners_count":20925309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blue-pill","c","eclipse","hal","hardware-abstraction-layer","nrf24","nrf24l01plus","stm32","stm32cubemx","stm32f1","stm32f103","stm32f103c8t6","stm32hal"],"created_at":"2024-11-05T15:20:22.255Z","updated_at":"2025-04-05T14:31:32.362Z","avatar_url":"https://github.com/gemesa.png","language":"C","funding_links":[],"categories":["MCU programming"],"sub_categories":["STM32"],"readme":"# 2.4GHz RF scanner\n\nThis project contains the source code of an [nRF24L01+](https://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss_Preliminary_Product_Specification_v1_0.pdf) and [Blue Pill (STM32F103C8T6)](https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill.html) 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.\n\nThis is what the UART output looks like (explained below):\n\n    |------------------------------------------------------------------------------------------------------|-----|-----|\n    |Frequency layout [GHz]                                                                                |Ref. |Max. |\n    |2.4       2.41      2.42      2.43      2.44      2.45      2.46      2.47      2.48      2.49..2.52  |RPD  |RPD  |\n    ||         |         |         |         |         |         |         |         |         |     |     |[pcs]|[pcs]|\n    |------------------------------------------------------------------------------------------------------|-----|-----|\n    |   :-.               ::  ::..%%@%@#%@@@%%%%#@@@                              .-: ::                   |  10 | 180 |\n    |.  ....                 .. . @@#%@@#%@@@%%%%#@@                              ::     .                 |  10 | 180 |\n    |   ....                ...  .%@#%%%%%%%####%##%                            ..  ..:.                   |  16 | 180 |\n    |                     ..  ...:##***###%@%%@@@%#@                            .:::                       |  11 | 180 |\n    | ....                ...:... %%%%@%%%%%#***%#%%                                                       |  16 | 180 |\n    |:.    .              : .:. ..-###%%@###%##%##=:                              ...:.  :                 |  11 | 180 |\n    |..  ..                .:....: %%%%%%%%%%%@@%%#                             ::...                      |  12 | 180 |\n    |.... ...               ..   ..@%%@@%%%@%%%%%%%                                 ..  ..                 |  18 | 180 |\n    |                     .  .::.  @%#%%%#########*                             .                          |  11 | 180 |\n    |..  ..                      ::%%%%@%%%%@%%@@@%                                  .:..:                 |  12 | 180 |\n    |..::::                ..    . @#**#%***##*#%##                             ..   .-:.                  |  10 | 180 |\n    | ... ..                 ...   @%%%%@%%@%%##%%*                              .. ...  .                 |  13 | 180 |\n    |   .. .                 ..   :*%*%%%%%@%%%%@@%                             ....... ..                 |  14 | 180 |\n    |..                    ....   .-:::--::------::              .+@@@*           .......                  |  57 | 180 |\n    |...                    .. ....::.:............             -#@@@#.         .       ..                 |  72 | 180 |\n    |  ..  .              ..  ..   ................             :*@@@#     ...  ..                         |  73 | 180 |\n    |                      ..  ....:...............             -+@@@#           ..                        |  73 | 180 |\n    |  ......             ...    ..................            .##@@%#          .....   ..                 |  74 | 180 |\n    |   ....                .......:...............             #@@%%=            ..    ..                 |  75 | 180 |\n    |. ...                 . ....  ::::::::::::::::             *#@@%*                                     |  38 | 180 |\n    |:....                ..     ..@#**##**%**+****                               ... ...                  |  14 | 180 |\n    |...   .                  ...  %**%%%%@%%##%#*#                              ..    ..                  |  16 | 180 |\n    |      .               ..  ....##*#%###*%%#%@##                                 .....:                 |  14 | 180 |\n\n    Unknown sig.       Unknown sig. Wi-Fi (WLAN 6)          Microwave oven     Unknown sig.\n\nThe axes:\n\n            f[GHz]\n        -------------\u003e\n        |\n     t  |\n    [s] |\n        |\n        V\n\nThe 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.\n\nThe code of this project has been implemented using\n\n- [Eclipse](https://www.eclipse.org/),\n- [STM32Fx project templates](https://eclipse-embed-cdt.github.io/templates/stm32f/),\n- [STM32CubeMX](https://www.st.com/en/development-tools/stm32cubemx.html),\n- [STM32 HAL](https://www.st.com/content/ccc/resource/technical/document/user_manual/72/52/cc/53/05/e3/4c/98/DM00154093.pdf/files/DM00154093.pdf/jcr:content/translations/en.DM00154093.pdf).\n\nA detailed description can be found in [docs/project_description.md](docs/project_description.md).\n\nA similar, Arduino libraries based design by **cpixip** can be found at [forum.arduino.cc](https://forum.arduino.cc/index.php?topic=54795.0).\n\n## Deployment\n\n**Important: the project has been developed and tested on Windows only.**\n\nQuick deployment process:\n- Build the SW from command line with `make` and `arm-none-eabi-gcc`:\n\n```\ncd \u003cpath\u003e\\stm32-rf-scanner\\src\\Debug\nmake all\n```\n\n- Connect the configured pins (SWD, SPI and UART). Refer to [docs/project_description.md#pin-description](docs/project_description.md#pin-description).\n- Download the binary to the Blue Pill with [STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html).\n- Run the SW and plot the UART output using an USB-UART adapter and a serial port terminal.\n\nNote: the SW can be built from Eclipse also. `.project` is stored in [src](src).\n\n## Results\n\nMeasurement results are stored in the [meas](meas) folder.\n\n## License\n\nThis project contains files from multiple sources with different licenses. The relevant license is added to every source file.\n\nThe configuration files generated by Eclipse using the ARM Cortex-M C/C++ Project template are licensed (depending on the file) by:\n- Arm Limited under Apache license 2.0 (Copyright (c) 2009-2018 Arm Limited. All rights reserved.)\n- Liviu Ionescu under MIT license (Copyright (c) 2014 Liviu Ionescu)\n\nThe configuration files generated by STM32CubeMX are licensed by:\n- ST under BSD 3-Clause license (Copyright (c) 2020 STMicroelectronics. All rights reserved.)\n\nThe files implementing the logic of the scanner functionality are licensed by:\n- András Gémes under GNU GPLv3 license (Copyright (c) 2024 András Gémes. All rights reserved.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemesa%2Fstm32-rf-scanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgemesa%2Fstm32-rf-scanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemesa%2Fstm32-rf-scanner/lists"}