A DAB/DAB+ Software Radio
C C++ QML Objective-C Java Makefile Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

welle.io

  • Linux (Travis): Travis Build Status
  • Windows (AppVeyor): AppVeyor Build status

This repository contains the implementation of a SDR DAB/DAB+ receiver.
Please see the project website https://www.welle.io for a user oriented documentation. You can also use the forum https://forum.welle.io to get in contact with us.

welle.io is fork from dab-rpi and sdr-j-dab which is now qt-dab https://github.com/JvanKatwijk/qt-dab.

Table of contents

Download

At the moment there is no stable release available. But the releases are tested and working in the most cases. If you discovered an issue use the forum or open a new issue please.

welle.io is under heavy development. You can also try the latest developer builds. But PLEASE BE WARNED the builds are automatically created and untested.

To use it on macOS or on a Raspberry Pi you have to compile welle.io direct from the sources. See below for more information.

Usage

The command line parameter are:

Parameter Description
-h, --help Show help
-v, --version Show version
-d, --device Input device. Possible is: auto (default), airspy, rtl_tcp, rtl_sdr, rawfile, soapysdr
--rtl_tcp-address rtl_tcp server IP address. Only valid for input rtl_tcp
--rtl_tcp-port rtl_tcp server IP port. Only valid for input rtl_tcp
--raw-file I/Q RAW file. Only valid for input rawfile.
--raw-format I/Q RAW format. Possible is:
  • u8 (unsigned int 8 bit, qt-dab RAW files)
  • s8 (signed 8 bit, ODR files)
  • s16le (signed int 16 bit little endian, qt-dab SDR files)
  • s16be (signed int 16 bit big endian, qt-dab SDR files)
  • Default: u8. Only valid for input rawfile.
--soapysdr-driver-args The value depends on the soapySDR driver and is directly passed to it (currently only SoapySDR::Device::make(args)). A typical value for SoapySDR is a string like driver=remote,remote=127.0.0.1,remote:driver=rtlsdr,rtl=0
--soapysdr-antenna The value depends on the soapySDR Hardware, typical values are TX/RX, RX2. Just query it with SoapySDRUtil --probe=driver=uhd
--soapysdr-clock-source The value depends on the soapySDR Hardware, typical values are internal, external, gpsdo. Just query it with SoapySDRUtil --probe=driver=uhd
--dab-mode DAB mode. Possible is: 1,2,3 or 4, Default: 1
--msc-file MSC file name. Records the DAB+ superframes. This file can be used to analyse zu X-PAD data with XPADexpert (https://www.basicmaster.de/xpadxpert).
--mp2-file MP2 file name. Records the DAB MP2 frames. This file can be used to analyse zu X-PAD data with XPADexpert (https://www.basicmaster.de/xpadxpert).
--log-file Log file name. Redirects all log output texts to a file.
--language Sets the GUI language according to the ISO country codes e.g. de_DE
--disable-splash Disables the splash screen

Example usage:

# welle.io -d rtl_tcp --rtl_tcp-address 192.168.1.1 --rtl_tcp-port 1000
# welle.io -d rawfile --raw-file test.sdr --raw-format s16le

Supported Hardware

The following SDR devices are supported

SoapySDR Notes

LimeSDR

Connect the Antenna to the RX1_W port and start welle-io with the options -d soapysdr --soapysdr-antenna LNAW. SoapySDRUtil --probe=driver=lime may show other possible options.

USRP

Start welle-io with -d soapysdr --soapysdr-driver-args driver=uhd --soapysdr-antenna --soapysdr-clock-source . To list possible values for antenna and clock source use the command "SoapySDRUtil --probe=driver=uhd".

Building

General Information

The following libraries and their development files are needed:

  • QT 5.9 (don't use QT 5.8 because of this bug)
  • FFTW3f
  • libfaad
  • librtlsdr
  • libusb

Ubuntu Linux 16.04 LTS

This sections shows how to compile welle.io on Ubuntu 16.04 LTS.

  1. Install QT 5.9 including the QT Charts module by using the the "Qt Online Installer for Linux" https://www.qt.io/download-open-source/

  2. Install the following packages

# sudo apt install libfaad-dev libfftw3-dev librtlsdr-dev libusb-1.0-0-dev mesa-common-dev libglu1-mesa-dev libpulse-dev
  1. (optional) Compile and install the airspy library. For details please see https://github.com/airspy/host/#how-to-build-the-host-software-on-linux.
    If you don't install the airspy library you have to disable the airspy for the welle.io build. Open welle.io.pro and outcomment the following line.
#CONFIG += airspy
  1. Clone welle.io
# git clone https://github.com/AlbrechtL/welle.io.git
  1. Start QT Creator and open the project file "welle.io.pro" inside the folder "welle.io".
  2. Build welle.io
  3. Run welle.io and enjoy it

Windows 10

A compiled version can be found at the release page

This sections shows how to compile welle.io on Windows 10. Windows 7 should also be possible but is not tested.

  1. Install QT 5.9 including the QT Charts and mingw modules by using the the "Qt Online Installer for Windows" https://www.qt.io/download-open-source/
  2. Clone welle.io https://github.com/AlbrechtL/welle.io.git e.g. by using TortoiseGit.
  3. Clone the welle.io Windows libraries https://github.com/AlbrechtL/welle.io-win-libs.git.
  4. Start QT Creator and open the project file "welle.io.pro" inside the folder "welle.io".
  5. Build welle.io
  6. Run welle.io and enjoy it

macOS

To build for macOS, you have have several options: Either you install everything incl. dependencies manually (not covered here and not recommended) or use Homebrew or MacPorts.

Homebrew

Assuming that you have Homebrew installed, execute the following steps:

  1. Use the welle.io repository as a "tap" (alternative package repository):
# brew tap AlbrechtL/welle_io https://github.com/AlbrechtL/welle.io
  1. Install welle.io (and dependencies):
# brew install AlbrechtL/welle_io/welle.io

MacPorts

You need to install the dependencies with MacPorts first, assuming you have MacPorts installed:

# sudo port install fftw-3-single faad2 rtl-sdr libusb
  1. Install Qt 5.9 with Qt Creator directly from Qt website, not through MacPorts.
  2. Clone welle.io
# git clone https://github.com/AlbrechtL/welle.io.git
  1. Open welle.io.pro with QT Creator.
  2. Make sure in Qt Creator, "Projects, Build&Run, Run" that the checkbox "Add build library path to DYLD..." is off.
  3. Build and run.

CMake instead of Qt Creator (Windows, Linux, macOS)

As an alternative to Qt Creator, CMake can be used for building welle.io after installing dependencies and cloning the repository:

  1. Create a build directory inside the repository and change into it
# mkdir build
# cd build
  1. Run CMake. To enable support for RTL-SDR add the flag -DRTLSDR=1 (requires librtlsdr) and for SoapySDR add -DSOAPYSDR=1 (requires SoapySDR compiled with support for each desired hardware like the AirSpy or HackRF)
# cmake ..

or to enable support for both RTL-SDR and Soapy-SDR:

# cmake .. -DRTLSDR=1 -DSOAPYSDR=1
  1. Run make (or use the created project file depending on the selected generator)
# make
  1. Run welle.io and enjoy it

Android

A compiled version of welle.io (APK file) can be found at at the Google Play store or at the release page.

welle.io uses the "RTL2832U driver" from Martin Marinov, to be found at the Google play store or at F-droid. Also see (sources or APK file). Please note that a recent version of this driver is needed (v3.06 or above), otherwise welle.io will not find your stick.

This sections shows how to compile welle.io for Android.

  1. Install QT 5.9 for Android including the QT Charts and QT Remote Objects modules by using the the "Qt Online Installer for Windows" https://www.qt.io/download-open-source/
  2. Follow the side https://doc.qt.io/qt-5/androidgs.html to install the Android build enviroment
  3. Clone welle.io https://github.com/AlbrechtL/welle.io.git
# git clone https://github.com/AlbrechtL/welle.io.git
  1. Start QT Creator and open the project file "welle.io.pro" inside the folder "welle.io".
  2. Build welle.io
  3. Run welle.io and enjoy it

Raspberry Pi 2 and 3

To build and run welle.io on a Raspberry Pi 2 and 3 with GPU acceleration, please read this guide.

Limitations

  • Windows 8 and older are not offically supported

Development

You can join the welle.io development. Please visit the wiki to find more information.