sdr-modem
sdr-modem copied to clipboard
Modem based on software defined radios.
sdr-modem
Modem based on software defined radios.
Design
Features
- TCP-based
- Custom binary protocol based on protobuf messages.
- Supported modulation/demodulation:
- GMSK
- Supported SDRs:
- sdr-server
- plutosdr
- file
- Misc:
- Doppler's correction for satellites using SGP4 model
- Save intermittent data onto disk for future analysis/replay
API
Configuration
Sample configuration with reasonable defaults:
https://github.com/dernasherbrezon/sdr-modem/blob/main/src/resources/config.conf
Dependencies
sdr-modem depends on several libraries:
-
libvolk. It is recommended to use the latest version (Currently it is 2.x). After libvolk installed or built, it needs to detect optimal kernels. Run the command
volk_profile
to generate and save profile. - libconfig
- libprotobuf-c
- libz. Should be installed in every operational system
- libm. Same
- libiio for plutosdr SDR (Optional)
- libcheck for tests (Optional)
All dependencies can be easily installed from r2cloud APT repository:
sudo apt-get install dirmngr lsb-release
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A5A70917
sudo bash -c "echo \"deb http://apt.leosatdata.com $(lsb_release --codename --short) main\" > /etc/apt/sources.list.d/r2cloud.list"
sudo bash -c "echo \"deb http://apt.leosatdata.com/cpu-generic $(lsb_release --codename --short) main\" > /etc/apt/sources.list.d/r2cloud-generic.list"
sudo apt-get update
sudo apt-get install libvolk2-dev libprotobuf-c-dev libconfig-dev check libiio
Build
mkdir build
cd build
cmake ..
make