Multimode SDR transceiver for GNU radio
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Adrian Musceac 4f6cee0440 Symbol sync loop bw adjustments 1 week ago
.github/workflows Add code to build AppImage 1 year ago
ci Add code to build AppImage 1 year ago
debian Release 0.8.6-2 2 months ago
docs Add more detail to op manual 2 months ago
src Symbol sync loop bw adjustments 1 week ago
.gitignore update gitignore 2 years ago
AUTHORS Forgot file licenses and contributor list updates 2 months ago
CONTRIBUTING.md Create CONTRIBUTING.md 2 years ago
COPYRIGHT Replace Led images with my own artwork 1 year ago
LICENSE Initial commit 5 years ago
LICENSE.LGPL3 Add relevant licenses and attempt to enumerate copyrights 1 year ago
LICENSE.MIT Add relevant licenses and attempt to enumerate copyrights 1 year ago
README.md Update README.md 2 months ago
build_debian.sh Update rules and readme for new code path 1 year ago
qradiolink.desktop Update Travis to build appimage 2 years ago
qradiolink.pro Add GMSK modem 2 months ago

README.md

README

About

QRadioLink is a VOIP (radio over IP) GNU/Linux SDR (software defined radio) transceiver application using Internet protocols for communication, built on top of GNU radio, which allows experimenting with some software defined radio hardware devices.

User interface

DQPSK example with Codec2 and Opus

Mailing list for discussions: https://groups.io/g/qradiolink

Supported hardware

Requirements

  • Since release 0.8.5, GNU radio version 3.8 is necessary and Qt 5.14 is used for the graphical interface.
  • Also since release 0.8.5 the video mode requires gstreamer and libgstreamer-plugins-bad1.0-0
  • Build dependencies on Debian 11 with Qt5 and GNU radio 3.8:
$ sudo apt-get install gnuradio-dev protobuf-compiler gr-osmosdr gnuradio libvolk2-dev libvolk2-bin libprotobuf23 libprotobuf-dev libopus0 libopus-dev libspeexdsp1 libspeexdsp-dev libpulse0 libpulse-dev liblog4cpp5v5 libcodec2-0.9 libcodec2-dev libasound2 libasound2-dev libjpeg62-turbo libjpeg62-turbo-dev libconfig++9v5 libconfig++-dev qt5-qmake qtbase5-dev libqt5core5a libqt5gui5 libqt5network5 libqt5sql5 qtmultimedia5-dev libqt5multimediawidgets5 libqt5multimedia5-plugins libqt5multimedia5 libftdi-dev libftdi1 libsndfile1-dev libsndfile1 qtgstreamer-plugins-qt5 libgstreamer-plugins-bad1.0-0 liblimesuite-dev liblimesuite20.10-1
  • Qt >= 5.14 and Qt5 development packages (older versions of Qt5 >= 5.11 might work as well)
  • qmake
  • Pulseaudio or Alsa or Jack
  • Gnuradio >= 3.8 built with UHD, SoapySDR support and FreeDV/Codec2 support. Please verify that the following was printed before you (or your distribution's packager) built gnuradio:
--   * gr-vocoder
--   * * codec2
--   * * freedv

In #67 it was reported that it may be necessary to set some cmake options In order for codec2 and it's freedv support to be detected properly.

  • Boost and boost-devel
  • libgnuradio-osmosdr (gr-osmosdr) built with UHD, RTL-SDR, SoapySDR, HackRF, RedPitaya or BladeRF support
  • libprotobuf, libopus, libspeexdsp, libpulse-simple, libpulse, libasound, libcodec2, libsqlite3, libjpeg, libconfig++, libvolk, libftdi, libsndfile1, qtmultimedia5-dev, libqt5multimediawidgets5, libqt5multimedia5, libqt5multimedia5 (gstreamer1.0-plugins-bad for Qt video)
  • protoc compiler (libprotoc 2.6.1 or greater, depending on which version of libprotobuf is used)
  • SoapySDR and SoapyPlutoSDR, SoapyLMS7 are recommended as Soapy has support for many devices
  • LimeSuite: liblimesuite-dev liblimesuite20.10-1 used for LimeRFE control

In order to build on Ubuntu 17.10 you have to install the following packages, assuming a full GNU Radio development environment is already installed. Please note these instructions are for a very old version and are not guaranteed to work with newer versions. It is recommended to follow the Debian install guide and adjust for Ubuntu differences.

$ sudo apt install libconfig++-dev libprotobuf-dev libopus-dev libpulse-dev libasound2-dev libcodec2-dev libsqlite3-dev libjpeg-dev libprotoc-dev libsndfile1 libftdi protobuf-compiler

On Ubuntu 18.04 LTS, replace libjpeg62-turbo and libjpeg62-turbo-dev with libjpeg-turbo8-dev and libjpeg-dev

$ sudo apt install libjpeg-turbo8-dev libjpeg-dev

Debian 11 Bullseye x86_64 packages are provided via automated builds. An AppImage for running the application on other Linux distributions with glibc >= 2.27 without installing it is also provided. The AppImage is based on Debian 11 Bullseye packages. Please see the Github releases page for binary downloads.

Opensuse packages are available from Opensuse build server thanks to Martin Hauke.

Building the software from source

  • Clone the Github repository into a directory of your choice
  • Change directory to where you have cloned or unzipped the code
  • Execute build_debian.sh
$ git clone https://github.com/qradiolink/qradiolink
$ cd qradiolink/
$ git checkout master
$ sh ./build_debian.sh

Or alternatively:

  • Clone the Github repository into a directory of your choice
  • Compile the protobuf sources for your system
  • Run qmake to generate the Makefile
  • Run make (with the optional -j flag)
git clone https://github.com/qradiolink/qradiolink
cd qradiolink/
git checkout master
mkdir -p build
cd src/ext/
protoc --cpp_out=. Mumble.proto
protoc --cpp_out=. QRadioLink.proto
cd ../../build/
qmake ..
make
./qradiolink

You can add custom library search paths, custom includes paths and specify a different install directory using these variables with qmake:

qmake .. INSTALL_PREFIX=/usr/local/bin LIBDIR=/opt/lib INCDIR=/opt/include

Operation

  • See docs/OPERATION.md

Known issues

  • When tuning rapidly for a prolonged time (for example by dragging the filter box across the screen), the audio may experience slowdowns and other glitches. As a workaround, click at the desired location on the waterfall instead of dragging.
  • Due to an issue in libvolk / GNU radio 3.8, digital modes are broken unless the workaround documented in docs/OPERATION.md is applied.
  • The program is released under the GNU General Public License version 3. Please see the COPYRIGHT and AUTHORS files for details.
  • Parts of the code are licensed under the MIT license.
  • Parts of the code are licensed under the BSD license.
  • Some graphical resources are licensed under LGPLv3
  • Sounds used by this project are copyright © 2020 w2sjw.com

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.