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.
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.
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: |
--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
The following SDR devices are supported
- airspy (http://airspy.com/)
- rtl_sdr (http://osmocom.org/projects/sdr/wiki/rtl-sdr)
- rtl_tcp (http://osmocom.org/projects/sdr/wiki/rtl-sdr#rtl_tcp)
- I/Q RAW file (https://www.welle.io/devices/rawfile)
- All SDR-devices that are supported by SoapySDR, gr-osmosdr and uhd. These are too many devices to list them all. To see if your SDR is supported, have a look at the lists at SoapySDR and SoapyOsmo.
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.
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".
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
This sections shows how to compile welle.io on Ubuntu 16.04 LTS.
-
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/
-
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
- (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
- Clone welle.io
# git clone https://github.com/AlbrechtL/welle.io.git
- Start QT Creator and open the project file "welle.io.pro" inside the folder "welle.io".
- Build welle.io
- Run welle.io and enjoy it
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.
- 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/
- Clone welle.io https://github.com/AlbrechtL/welle.io.git e.g. by using TortoiseGit.
- Clone the welle.io Windows libraries https://github.com/AlbrechtL/welle.io-win-libs.git.
- Start QT Creator and open the project file "welle.io.pro" inside the folder "welle.io".
- Build welle.io
- Run welle.io and enjoy it
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.
Assuming that you have Homebrew installed, execute the following steps:
- Use the welle.io repository as a "tap" (alternative package repository):
# brew tap AlbrechtL/welle_io https://github.com/AlbrechtL/welle.io
- Install welle.io (and dependencies):
# brew install AlbrechtL/welle_io/welle.io
You need to install the dependencies with MacPorts first, assuming you have MacPorts installed:
# sudo port install fftw-3-single faad2 rtl-sdr libusb
- Install Qt 5.9 with Qt Creator directly from Qt website, not through MacPorts.
- Clone welle.io
# git clone https://github.com/AlbrechtL/welle.io.git
- Open welle.io.pro with QT Creator.
- Make sure in Qt Creator, "Projects, Build&Run, Run" that the checkbox "Add build library path to DYLD..." is off.
- Build and run.
As an alternative to Qt Creator, CMake can be used for building welle.io after installing dependencies and cloning the repository:
- Create a build directory inside the repository and change into it
# mkdir build
# cd build
- 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
- Run make (or use the created project file depending on the selected generator)
# make
- Run welle.io and enjoy it
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.
- 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/
- Follow the side https://doc.qt.io/qt-5/androidgs.html to install the Android build enviroment
- Clone welle.io https://github.com/AlbrechtL/welle.io.git
# git clone https://github.com/AlbrechtL/welle.io.git
- Start QT Creator and open the project file "welle.io.pro" inside the folder "welle.io".
- Build welle.io
- Run welle.io and enjoy it
To build and run welle.io on a Raspberry Pi 2 and 3 with GPU acceleration, please read this guide.
- Windows 8 and older are not offically supported
You can join the welle.io development. Please visit the wiki to find more information.