How to use RTL-SDR with GNU Radio or Gqrx and Dream to decode Digital Radio Mondiale (DRM) broadcasts.
DRM (Digital Radio Mondiale) is the universal, openly standardised digital broadcasting system for all broadcasting frequencies, including the AM bands, as well as VHF Bands. The great flexibility of DRM supports all types of coverage needs – from local, regional, nation-wide to international. If you want to listen to DRM broadcasts, you need a dedicated receiver or a software radio. This post will focus on the cheaper method, the software defined radio (SDR).
SDR performs demodulation in software. The RF signal is sampled by a high speed ADC (analog-digital converter) and sent to a computer which does the filtering, amplification, demodulation and decoding of the signal. The cheapest hardware for SDR is the popular RTL2832U based DVB-T stick.
Most DRM broadcast can be found in SW bands. Here comes an important issue. The tuner from the DVB-T stick can't receive this band. One of the solution is to add a frequency downconverter. Or you can simply disable the tuner and feed RF straight to the ADC. I wrote about RTL2832U direct sampling in this post. This method has some limitations, but nevertheless it should provide satisfactory results.
Dream decoding a DRM broadcast |
There are a few options regarding software. But, as this post focuses on Linux operating system, Gqrx SDR will be used to configure and tune the SDR hardware and Dream will decode DRM broadcasts piped from Gqrx.
You must have these installed on your Linux distro. Gqrx can be found in repositories, but Dream needs to be compiled from source. I have a script for you. To install Gqrx, you can use the version from distro repositories or the custom repositories. Here are the commands for APT distros (Ubuntu):
sudo add-apt-repository -y ppa:bladerf/bladerf sudo add-apt-repository -y ppa:ettusresearch/uhd sudo add-apt-repository -y ppa:myriadrf/drivers sudo add-apt-repository -y ppa:myriadrf/gnuradio sudo add-apt-repository -y ppa:gqrx/gqrx-sdr sudo apt update sudo apt install gqrx-sdr sudo apt install libvolk1-bin volk_profile
Gqrx uses GNU Radio as a backend. I found it simpler to use Gqrx than GNU Radio.
Audio from Gqrx will be piped to Dream. To do this, you need a virtual audio cable. The Pulseaudio virtual sink is the right choice here. If you got al these up and running, you're almost ready to listen to DRM.
There are various DRM broadcasts during the day. I recommend HFCC Interactive Schedule to find on air stations. Pan and drag the map, then click to set your location. Then check Digital (DRM) only and click Show Broadcasts. If the results page doesn't look right, try adjusting browser window width. The site is not optimized for wide screens. You will be interested in green (live) stations.
Launch Gqrx and open configuration dialog. Select the RTL-SDR device. Then, if you use the device in direct sampling mode, add the direct_samp argument. Use 2 for Q input (if you connected the antenna to the unused Q pins of a R820T dongle), or 1 for I input. Select the Virtual Sink as audio device. Click OK and start.
If Gqrx doesn't start (after clicking Play, you don't see noise on the waterfall), restart it. You can tune to a DRM frequency. This is how the signal appears:
If you're looking for a specific frequency, tune 5 kHz below it (a half of bandwidth below). Once you located the signal, change the Receiver Mode to USB (upper side band) and adjust signal width by dragging on the Pandapter display (top half, above waterfall). Make sure you include all the width of the signal. Usually, the bandwidth of a DRM broadcast is 10 kHz. DRM does not use SSB modulation, but this is the right way of piping the filtered signal from Gqrx to Dream.
Now, launch Dream. Make sure signal input is set to Monitor of Virtual Sink and output is set to your real soundcard output (i.e. the one that is connected to headphones/speakers). It is very important not to leave the output to default device. It may cause Dream to loop output its own audio to the Virtual Sink (which is its input).
If the signal level is sufficient (adjust audio levels in Gqrx so that Dream indicator in main window stays green), decoding will begin and you will start to hear decoded audio. You can see more information about the signal quality in the Evaluation Dialog of Dream (from the View menu).
If you failed to receive DRM, tell us what happened in a comment. If you want to improve the quality of the signal, you can go further and add an amplifier to the antenna and make a metal case for the RTL controller to reduce RF noise. If you want to receive DRM on Windows, there are many tutorials on the internet, making use of SDRSharp and Dream.
Audio from Gqrx will be piped to Dream. To do this, you need a virtual audio cable. The Pulseaudio virtual sink is the right choice here. If you got al these up and running, you're almost ready to listen to DRM.
There are various DRM broadcasts during the day. I recommend HFCC Interactive Schedule to find on air stations. Pan and drag the map, then click to set your location. Then check Digital (DRM) only and click Show Broadcasts. If the results page doesn't look right, try adjusting browser window width. The site is not optimized for wide screens. You will be interested in green (live) stations.
HFCC Interactive Schedule |
Configure Gqrx source and audio device |
DRM signal displayed by Gqrx |
Now, launch Dream. Make sure signal input is set to Monitor of Virtual Sink and output is set to your real soundcard output (i.e. the one that is connected to headphones/speakers). It is very important not to leave the output to default device. It may cause Dream to loop output its own audio to the Virtual Sink (which is its input).
If the signal level is sufficient (adjust audio levels in Gqrx so that Dream indicator in main window stays green), decoding will begin and you will start to hear decoded audio. You can see more information about the signal quality in the Evaluation Dialog of Dream (from the View menu).
Dream signal evaluation |
I have installed Dream subversion 1021 on my 8-year old Acer laptop running Ubuntu Mate 18.04 LTS Linux (64-bit) together with pulseaudio Virtual Sink, following your on-line guide I have just received Radio Kuwait on 15110 @ 1300GMT with near perfect decoding ( 20dB s/n ratio ). I use Dream together with the GQRX Linux SDR App and an Airspy Mini dongle. The antenna is a RA0SMS Miniwhip (e-bay kit) mounted 5 metres above my garden shed at my location 12 miles north of Bournemouth in Southern England.
ReplyDeleteI'm having trouble finding a Dream download for Ubuntu 18.04. All references found in my search are quite deprecated. I'm planning to use it with GQRX 2.11.5 and RTL=SDR v3. Can anyone point me in the right direction?
ReplyDeleteI just found precompiled binaries available at https://sourceforge.net/projects/drm/files/dream/2.2/ . Have you tried to install all those deb packages?
DeleteI was in Sourceforge, but the links all just looped back to each other. I found no compilations. I'll try your URL. Thanks, very much.
ReplyDeleteYour link worked perfectly. Thanks again, and be blessed today.
ReplyDeleteIt's unfortunate that this project appears to have been hacked - the listed home page on Sourceforge goes to a wiki that has spammy links. I would browse through the source code CAREFULLY if you do even consider going with this software!
ReplyDelete