/csdrx

Some useful extensions for csdr

Primary LanguageC++GNU General Public License v3.0GPL-3.0

csdr extensions

Some extensions for csdr:

  • FileSource: a csdr source that reads from a file, device, pipeline (default: stdin)
  • Pipeline: a quick and easy way to create a receiver using the modules from csdr/csdrx as building blocks; see examples
  • PulseAudioWriter: a csdr writer that sends audio output directly to PulseAudio
  • SDRplaySource: a csdr source that reads I/Q samples from an SDRplay RSP device using SDRplay API directly
  • SoapySource: a csdr source that reads I/Q samples from an SDR using the SoapySDR driver SoapySDR

To build and install all the components:

mkdir build
cd build
cmake ..
make
sudo make install

To build and install only selected components (for instance 'filesource' - multiple components are separated by ';'):

mkdir build
cd build
cmake -DCOMPONENTS=filesource ..
make
sudo make install

Examples

To run the FM BC receiver example reading the I/Q stream from the 'rx_sdr' command from rx_tools:

rx_sdr -d driver=sdrplay -s 2000000 -f 90400000 -a 'Antenna C' -F CF32 - | ./fm_receiver_file_source

To run the D-Star receiver example:

rx_sdr -d driver=sdrplay -s 2000000 -f 146500000 -a 'Antenna C' -F CF32 - | ./dstar_receiver 

To run the DMR receiver example:

rx_sdr -d driver=sdrplay -s 1000000 -f 441900000 -a 'Antenna C' -F CF32 - | ./dmr_receiver 

To run the YSF receiver example:

rx_sdr -d driver=sdrplay -s 2000000 -f 444900000 -a 'Antenna C' -F CF32 - | ./ysf_receiver 

Since the SDRplay and SoapySDR sources connect directly to the SDRs, they are run as follows:

./fm_receiver_sdrplay_source
./fm_receiver_soapy_source

Credits

Many thanks to Franco Spinelli, IW2DHW for testing csdrx, his very useful suggestions and insights, and for providing some of the examples in this repository.

License

GPLv3