Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gemesa/stm32-rf-scanner
STM32 and nRF24L01+ based 2.4GHz RF scanner
https://github.com/gemesa/stm32-rf-scanner
blue-pill c eclipse hal hardware-abstraction-layer nrf24 nrf24l01plus stm32 stm32cubemx stm32f1 stm32f103 stm32f103c8t6 stm32hal
Last synced: 3 days ago
JSON representation
STM32 and nRF24L01+ based 2.4GHz RF scanner
- Host: GitHub
- URL: https://github.com/gemesa/stm32-rf-scanner
- Owner: gemesa
- License: gpl-3.0
- Created: 2020-01-14T18:54:03.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-01-06T09:50:25.000Z (10 months ago)
- Last Synced: 2024-07-02T09:19:27.556Z (4 months ago)
- Topics: blue-pill, c, eclipse, hal, hardware-abstraction-layer, nrf24, nrf24l01plus, stm32, stm32cubemx, stm32f1, stm32f103, stm32f103c8t6, stm32hal
- Language: C
- Homepage: https://gemesa.dev/
- Size: 877 KB
- Stars: 12
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 2.4GHz RF scanner
This 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.
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] |
|
VThe 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
- [Eclipse](https://www.eclipse.org/),
- [STM32Fx project templates](https://eclipse-embed-cdt.github.io/templates/stm32f/),
- [STM32CubeMX](https://www.st.com/en/development-tools/stm32cubemx.html),
- [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).A detailed description can be found in [docs/project_description.md](docs/project_description.md).
A similar, Arduino libraries based design by **cpixip** can be found at [forum.arduino.cc](https://forum.arduino.cc/index.php?topic=54795.0).
## 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 \stm32-rf-scanner\src\Debug
make all
```- Connect the configured pins (SWD, SPI and UART). Refer to [docs/project_description.md#pin-description](docs/project_description.md#pin-description).
- Download the binary to the Blue Pill with [STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html).
- Run the SW and plot the UART output using an USB-UART adapter and a serial port terminal.Note: the SW can be built from Eclipse also. `.project` is stored in [src](src).
## Results
Measurement results are stored in the [meas](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.)