SDRLab
the Software-Defined Radio Laboratory
IMICT FEI STU
Experimental site.
Acknowledgement: This lab was financially supported by the grant program
"Digital pre vysokoškolákov 2023" by the Tatra bank foundation within the project:
SDRLab - software-defined radio in research and teaching
SDRLab - softvérovo-definované rádio vo výskume a pedagogike
under the contract Nr: 2023digVS008
Lab equipment:
- Full USRP SDR communication chain - 2x USRP N210 with UBX transceivers & USRP B210
- GPS disciplined time sychronization using the 8 channel Ettus Octoclock
- Experiments with Matlab/Simulink, GNURadio, OpenLTE, Open5GS
- IoT nodes: RaspberryPi, Arduino, SAM21, Centurion ENS-22E NB-IoT kit
- Various wireless standards: NB-IoT, eMTC, IEEE 802.15.4, LoRa, ZigBee, WiFi, SigFox
- Exeriments within bachelor, diploma, team and dissertation projects.
- Also experiments within the course: Wireless communications
Virtual measurements
During the school year 2023/24 as part of the project SDRLab - software-defined radio in research and teaching, we performed measurements using our Ettus SDR equipment and we provide the raw datasets - direct antenna samples in the form of raw .dat files. Now anybody, who is interested in procesing real-world signals within an SDR environment, such as GNU Radio or MATLAB, can do it without the necessity of buying expensive UHD hardware. The section below provide instructions and dowload links.
Virtual measurement GNURadio flowgraphs and raw data files are provided for:
- Analog FM radio
- LoRa
- IEEE 802.15.4
- NOAA
Virtual measurements - FM radio
- Systems used:
Samples taken: GNU Radio companion 3.10.7.0 with Python 3.10.12 running on Ubuntu 22.04.4 LTS, using Ettus USRP B210
Tested using .dat files: GNU Radio companion 3.10.7.0 with Python 3.8.10 running on Ubuntu 20.04.6 LTS
- Two input data files available:
Narrowband - receiving just one radio station - rf_decim = 10. download here: samplesFM_rf_decim_10.dat (430 MiB)
Wideband - receiving several stations at once - rf_decim = 80. download here: samplesFM_rf_decim_80.dat (2.61 GiB)
Set the appropriate File parameter in the File Source block together with rf_decim variable
- The red lines in figure below indicate several radio stations captured. HW tuned to the station at zero frequency (converted from 94.3MHz). TODO: Implement SW retuning to other stations using the downconverted signal samples.
Virtual measurement - NOAA APT satellite signal decoding
- The GRC flowgraph based on the TODO
- Using the NOAA APT signal decoder by Martin Bernardi:
Download decoder from: https://noaa-apt.mbernardi.com.ar/
- Systems used:
Samples taken: GNU Radio companion 3.9.5.0 with Python 3.8.10 running on Ubuntu 20.04.4 LTS, using RTL-SDR
Tested using .dat files: GNU Radio companion 3.10.7.0 with Python 3.8.10 running on Ubuntu 20.04.6 LTS
GRC output:
NOAA-APT image output:
Virtual measurement - IEEE 802.15.4 signal
- Systems used:
Samples taken: GNU Radio companion 3.10.7.0 with Python 3.8.10 running on Ubuntu 20.04.6 LTS, using Ettus USRP B210
Tested using .dat files: GNU Radio companion 3.10.7.0 with Python 3.8.10 running on Ubuntu 20.04.6 LTS
- Two input data files available:
6LoWPAN traffic over IEEE 802.15.4 - ping. raw samples: 6lowpan_ping.dat (303 MiB) decoded Wireshark output: 6lowpan_ping.pcap (2 KiB)
6LoWPAN traffic over IEEE 802.15.4 - IPv6 Router Solicitation. raw samples: 6lowpan_RS.dat (1.59 GiB) decoded Wireshark output: 6lowpan_RS.pcap (1 KiB)
- Download GRC file: transceiver_OQPSK.grc Warning: this file will not work unless you first configure the IEEE 802.15.4 transceiver from the WIME project. Download it from GitHub.
Virtual measurement - LoRa signal
- Systems used:
Samples taken: GNU Radio companion 3.7. runnng in Docker on Ubuntu 20.04 LTS using Ettus USRP B210
Tested on the same system.
- Raw input data file available: LoRaWAN traffic between an Arduino node and Dragino gateway connected to TTN. Samples file: lorawan_samples.dat (618 MiB)
Waring: This needs to be properly installed and configured first.
The resulting LoRaWAN packets in hex format:
1a31804048780b2680020001c4e5094f5aec992259a6e6be173690cc51e63d
1a31804048780b2680030001f66577536aafb75415047a865054fe74666f39
You need a new version of Python to run this utility. Tested on Ubuntu 20.04 LTS running Python 3.12.4
See this guide on how to install a newer version of Python alogside your system version.
You also need to install the Cryptodomex module first: pip3 install pycryptodome
And you also need to change the LoraPacket.py import statements to import Cryptodome instead of Crypto
You need to strip the first 3 and last 2 bytes from the hex string above.
You will obtain the following human readable parsed LoRaWAN packets.
The payload is a Cayenne LPP format encoded information
The deciphered payloads for the frames are:
01670122026856030100040000
0167012C026852030100040000
See PyCayenneLPP page and install: pip3 install pycayennelpp
Resulting decoded payloads:
LppFrame(data = [
LppData(channel = 1, type = Temperature, value = (30.0,))
LppData(channel = 2, type = Humidity, value = (41.0,))
LppData(channel = 3, type = Digital Output, value = (0.0,))
LppData(channel = 4, type = Digital Input, value = (0.0,))
])
LppFrame(data = [
LppData(channel = 1, type = Temperature, value = (29.0,))
LppData(channel = 2, type = Humidity, value = (43.0,))
LppData(channel = 3, type = Digital Output, value = (0.0,))
LppData(channel = 4, type = Digital Input, value = (0.0,))
])
- TODO: Convert to latest GRC 3.10 version.
Acknowledgement: This lab was financially supported by the grant program "Quality of education" by the Tatra bank foundation in the following years:
2019 - project: SDRLab 2.0 – technologies of 5G networks and IoT in classroom
2016 - project: SDRLab - Establishment of Software-Defined Radio Laboratory
2023 - project: SDRLab - software-defined radio in research and teaching
Current theses:
2023 -2026 Physical layer of wireless communications systems (dissertation)
2023 - 2024 Experiments with IoT nodes - IEEE 802.15.4 (team project)
2023 - 2024 Experiments with IoT nodes - LoRa (team project)
2023 Artificial Intelligence in 5G Networks (master thesis)
Selected past theses:
2023 IMPLEMENTING A WIRELESS SDR COMMUNICATION SYSTEM (master thesis)
2023 Trends in 5G networks – configuring an NB-IoT node (master thesis)
2022 Configuring Wireless Interfaces of IoT Nodes - IEEE 802.15.4 (team project)
2022 Configuring Wireless Interfaces of IoT Nodes - LoRa (team project)
2021 Analysis of the IEEE 802.15.4 standard using the GNU Radio platform (bachelor thesis)
2020 Experiments with IoT networks (master thesis)
2020 Technologies of modern computer and telecommunications networks (team project)
2018 Network technologies and protocols of IoT (master thesis)