This is an interface for the Realtek "RTKDAB.dll". It provides the DLL functiona via a MessagePack TCP API.
"RTKDAB.dll" is a SDR library which demodulates a DAB signal from raw ADC samples. It works much better with weak signals compared to SDR-J or dab2eti. To goal is to use this library together with open source DAB software and RTL2832U dongles. Since it is a binary MS Windows DLL a interface is necessary which also runs in wine.
Why is "RTKDAB.dll" better?
Maybe because it is based on the "Fraunhofer DAB/DRM MultimediaPlayer" where a lot of Fraunhofer IIS engineers and researches work on this library.
"RTKDAB_Interface" uses the program "rtl_tcp" to read data from the RTL2832U dongles. You have to install "rtl_tcp" first and to start it. For Ubuntu you can do:
# sudo apt-get install rtl-sdr
# rtl_tcp
How-to obtain "RTKDAB.dll"
Because of license problems it is not possible to provide "RTKDAB.dll". But it is included in the program "NOXON DAB MediaPlayer".
- Download "NOXON DAB MediaPlayer" http://ftp.noxonradio.de/NOXON/NOXON_DAB_Stick/Updates/NOXON_DAB_Stick_DAB_MediaPlayer_Setup_4.1.0.exe
- Install it (also working in wine)
- Navigate to the folder e.g."C:\Program Files\NOXON Media\NOXON DAB MediaPlayer"
- Copy "RTKDAB.dll" and place it where "RTKDAB_Interface.exe" is located
Now you can run "RTKDAB_Interface.exe"
How-to run "RTKDAB_Interface.exe" in wine
- Basically the same like MS Windows
- Make sure that you have the Microsoft Visual C++ Redistributable Package 2012 installed. For the installation see here
- Tested with wine 1.7.50 and Ubuntu 14.04
RTKDAB_Interface has two MessagePack TCP interfaces. A MessagePack client to transmit the FIC and MSC data ("RTKDAB.dll" callback) and a MessagePack server to provide the "RTKDAB.dll" API.
MessagePack client methods
"RTKDAB_Interface" will connect to a MessagePack TCP server and call the following methods.
Method | Parameters | Return | Description |
---|---|---|---|
MSCData | bin DataArray, int MSC data size, int SCID | None | Transmits the MSC data to a given sub-channel |
FICData | bin DataArray, int FIC data size, int Mode | None | Transmits the FIC data to a given channel |
StreamData | N/A | N/A | Not implemented |
PacketData | N/A | N/A | Not implemented |
MWFICData | N/A | N/A | Not implemented |
MessagePack server methods
"RTKDAB_Interface" provides the following methods. A MessagePack TCP client can call it.
Method | Parameters | Return | Description |
---|---|---|---|
AddServiceCom | int ParaMode, int ID, int StartCU, int U_E, int Index, int EEPIdx, int CUNum, int PacketAddr, int FEC | None | Adda a service componente |
DelServiceCom | int ParaMode, int ID, int PacketAddr | None | Deletes a service componente |
SetFreq | int Frequency in kHz | None | Sets the tuner to a mid frequeny |
OpenDevice | N/A | N/A | Not implemented |
CloseDevice | N/A | N/A | Not implemented |
Start | N/A | N/A | Not implemented |
Stop | N/A | N/A | Not implemented |
ChangeSCOrg | N/A | N/A | Not implemented |
GetFreqAndBW | N/A | N/A | Not implemented |
GetSignalQuality | N/A | N/A | Not implemented |
GetSignalLock | N/A | N/A | Not implemented |
GetSignalPresent | N/A | N/A | Not implemented |
GetSignalStrength | N/A | N/A | Not implemented |
- Microsoft Visual Studio Community 2015 with platform toolset Visual Studio 2012
Forked into this repository
- rtltcpaccess: https://github.com/steve-m/rtltcpaccess
- DAB Specification: https://www.worlddab.org/technology-rollout/standards/technical-specifications-list
- EN 300 401 "Radio Broadcasting Systems; Digital Audio Broadcasting (DAB) to mobile, portable and fixed receivers"
- TS 102 563 "Digital Audio Broadcasting (DAB); Transport of Advanced Audio Coding (AAC) audio"