Skip to content
forked from tomneda/DABstar

A DAB receiver with a technical focus forked from Qt-DAB

License

Notifications You must be signed in to change notification settings

old-dab/DABstar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DABstar


screenshot.png (Picture from V3.2.0)

Table of Content

Releases

Latest AppImage versions see Linux Release Page.

old-dab provides also Windows versions, see Windows Release Page. The feature-set could be different between Linux and Windows, even with same version number.

Introduction

DABstar was originally forked from Jan van Katwijk's great work of Qt-DAB from commit (tree) from 2023-05-30. Some fixes and adaptions afterwards to Qt-DAB are included.

As there are huge changes and additions (but also reductions) made and there will be bigger changes in the future, I decided to give it the new name DABstar.

I saw that with starting of Qt-DAB 6.x, it uses also new code parts and ideas from here. I am very appreciated about this 😃. This is of course very acknowledged that my work can give something back.

I will try to maintain always a working state on main branch, so use this for building the software for yourself. Please do not try any other branch besides main branch. They are indented for development, backups and tests and will not always work in their current state.

Recommended is to checkout a tag of a released version, these are better tested.

As this README got meanwhile quite long, I cut off the description regarding versions until 1.7.1, but you can still read it here: README.md of V1.7.1

V3.x.y

I and old-dab made big changes on the mainline, including the upgrade from Qt 5 to Qt 6. So, I decided to raise the major version to 3.

Version 2.3.0 and above

Beginning with this version, please look to the Release Page for a more detailed description of the changes.

What is new in 2.2.0

  • A bigger fix replaying files regarding my new service list. There is still the small issue that the channel name does not (necessarily) fit to the file content.
  • There is only one file-reading dialog now. The file type selection happens in the file dialog field. It is selectable whether the QT or native file dialog should be shown.
  • Improve error checking for file handling.
  • Refine the setting management. This causes that the setting file (in ~/.config/dabstar/) got a new filename. So, the settings has to be put-in new.
    Same happens to the service-list database file, so possibly already made favorites got lost. Sorry for that circumstance.
  • Small UI refinements.
  • Many small refinements under the hood.

What is new in 2.1.0

  • Some minor fixes and refinings made.
  • Add status information to the main Widget, see below the MOT picture:
    • Show the ACC decoder input bit rate.
    • Show whether Stereo mode is active.
    • Show whether EPG (Electronic Program Guide) data are available
    • Show whether SBR (Spectrum Band Replication) mode is active
    • Show whether PS (Parameter Stereo) mode is active
    • Show whether an announcement is currently made.

(move over the status elements like SBR or PS to get tooltip information)

What is new in 2.0.0

Buttons are icons now

I replaced all buttons on the main window to quadratic ones with icons on it. Some have animations or change colors or the icon itself after clicking. See the tooltips for further information what each button does.

Service List

The major new thing is the complete new written service selector on the left side of the main window:

The list is stored as a SQlite database in the folder ~/.config/dabstar. The list will be filled when selecting a new channel (with eg. the combobox on the right bottom corner in the picture) or click the "Scan" button to scan all typical DAB channels. While the scan is running the button is animated.

The current selected service is shown with an orange background. With the brown colored entries, you will find other services from the same channel (here 11C). When you click on such services the switching time is quite short.

The services with a gray background are from another channel. Selecting this will take a bit longer time (about 3 seconds) till audio comes up. Note: Not each service entry has audio, especially that with SPI and EPG in its name.

Favorites

You can select a current running service as a favorite by clicking . Click the same button again to deselect the favorite state. On the left side of the service list you will see an active favorite state. The favorites are stored separately with the service list, so a re-scan would not delete them.

Sorting

When you click on the header description you can change the sorting of the columns. Selecting the "Fav" column behaves that way that the favorites always located on the top but the service column will be sorted (ascending oder descending).

Channel Buttons

With the up/down-buttons you can step one service up or down in the list (with wrap-around). Change the sorting of the list if you only want mainly to step within the favorites or within the same channel.

Target Button

If you "lose" the orange current service selection you can click this button . The current service will be shown in the list center (if possible).

Some help for scanning

For a successful reception a good leveling of the device is necessary. Click to open the device widget (it differs for the different devices). The best feedback regarding signal quality can be seen on the Spectrum Scope with . There, many explanations would be necessary for the details. Look at the tool tips for further help there.

For a faster signal check you would see the yellow bar

below the picture on the main window. This bar must reach 100% if the signal is good enough.

Also, the clock on the top of the service list can be used as indicator. Its time is only shown (and the background light up) if the DAB time information can be received.

How to apply TII info

That the location, distance and direction to the transmitter can be shown, do following:

  1. Provide your home coordinates with button Coordinates on the "Configuraton and Control" windows.
  2. Copy libtii-lib.so from project sub folder /tii-library to /usr/local/lib/ (you will need sudo rights).
  3. Click one time Load Table on the "Configuraton and Control" window.
  4. If 3) should fail you can unzip the content of /tii-library/tiiFile.zip to your home folder. Restart DABstar. Here you will maybe not have the newest in 3) downloaded version of the data base.

Installing on Linux from current mainline

This is what I needed to install DABstar on a fresh Ubuntu 24.04:

sudo apt-get update
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install build-essential
sudo apt-get install g++
sudo apt-get install libsndfile1-dev
sudo apt-get install libfftw3-dev
sudo apt-get install portaudio19-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libsamplerate0-dev
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install qt6-base-dev

If you want to build with qmake:

sudo apt-get install qmake6

As libfaad had made issues with low rate services I switched over to FDK-AAC. But also the repository version in Ubuntu 24.04 has still flaws with PS (Parametric Stereo) services. So I recommend to build it for your own. I used the latest main version which is v2.0.3.

git clone https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
git checkout v2.0.3
mkdir build
cd build
cmake ..
make
sudo make install

QWT installation / building

It is recommended to build Qwt 6.3.0 (Qwt 6.2.0 will also work) for yourself. The library delivered with Ubuntu is quite old.

Original description

https://qwt.sourceforge.io/qwtinstall.html

QWT short build description

  1. Download QWT 6.3.0: Link.
  2. Unzip downloaded file and go into unzipped folder.
  3. comment out line "QWT_CONFIG += QwtSvg" with a "#" in file qwtconfig.pri if you have problems finding a SVG QT header file.
qmake6 qwt.pro
make
sudo make install`
sudo ldconfig

The install process installed a cmake package file to /usr/local/qwt-6.3.0/lib/pkgconfig/Qt6Qwt6.pc. The path variable PKG_CONFIG_PATH in CMakeLists.txt refers to this path to find the Qwt-Package.

Strangely, this error can still happen:

...
Could not find a package configuration file provided by "Qt6Qwt6" with any
of the following names:

    Qt6Qwt6Config.cmake
    qt6qwt6-config.cmake
...

The package description /usr/local/qwt-6.3.0/lib/pkgconfig/Qt6Qwt6.pc contains this (last) line: Requires: Qt5Widgets Qt5Concurrent Qt5PrintSupport Qt5Svg Qt5OpenGL, what is strange as this Qwt build was built on the base on Qt 6.

As the requirements of Qt 6 are already fulfilled, I could solve the issue with simply commenting out this (last) line with a hash #. So, the last part of the File should look like this:

...
Name: Qwt6
Description: Qt Widgets for Technical Applications
Version: 6.3.0
Libs: -L${libdir} -lqwt
Cflags: -I${includedir}
# Requires: Qt5Widgets Qt5Concurrent Qt5PrintSupport Qt5Svg Qt5OpenGL

Building DABstar

git clone https://github.com/tomneda/DABstar.git
cd DABstar
mkdir build
cd build
cmake .. -DAIRSPY=ON -DSDRPLAY_V2=ON -DSDRPLAY_V3=ON -DHACKRF=ON -DLIMESDR=ON -DRTL_TCP=ON -DPLUTO=ON -DUHD=ON -DRTLSDR_LINUX=ON -DUSE_HBF=OFF -DDATA_STREAMER=OFF -DVITERBI_SSE=ON -DVITERBI_NEON=OFF -DFDK_AAC=ON
make  

Reduce resp. adapt the cmake command line for the devices/features you need.

E.G.: If you have an RTL-SDR stick and work on a desktop PC (I have only tested this on an Intel-PC), this should be the minimum recommendation:

cmake .. -DRTLSDR_LINUX=ON -DVITERBI_SSE=ON

To speed up compilation you can provide -j<n> as argument with <n> number of threads after the make command. E.G. make -j4. Do not choose a too high number (or at my side only providing a -j) the system can hang due to running out memory and needed swapping!

Finally, in the build folder you can find the program file which you can start with

./dabstar

You could try to install the software within your system with

sudo make install
sudo ldconfig

To uninstall DABstar again, do this:

sudo make uninstall

Installing USRP UHD

Best worked for me was building UHD from the repository of Ettus Research.

sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev uhd-host

Licences

Rights of Qt-DAB, AbracaDABra, Qt, Qwt, FFTW, portaudio, FDK-AAC, libfaad, libsamplerate and libsndfile gratefully acknowledged.

Rights of developers of RTLSDR library, SDRplay libraries, AIRspy library and others gratefully acknowledged.

Rights of other contributors gratefully acknowledged.

As I use some icons, I get them from FlatIcon. The work of the icon authors is very acknowledged:

About

A DAB receiver with a technical focus forked from Qt-DAB

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 62.9%
  • C 34.3%
  • CMake 1.2%
  • Other 1.6%