RTL-SDR Tutorial: Decoding DRM Radio

Digital Radio Monodial (DRM) radio is a type of digital shortwave radio signal that is used by international shortwave radio broadcasters. It provides superior audio quality compared to AM signals by using digital audio encoding. With an upconverter, good antenna, and decoding software the RTL-SDR software defined radio can receive and decode DRM signals. This tutorial is also applicable to other software defined radios that can receive HF with or without an upconverter, such as the HackRF, Airspy, Softrock and Funcube dongle.

Examples of DRM Decoding

YouTube user Superphish shows DRM reception with his Ham-it-up upconverter, and rtl-sdr.

DRM REE Noblejas Radio with RTL SDR (RTL2832), Nooelec Ham It Up Upconverter, SDR Sharp and DREAM


Tutorial: How to Receive and Decode DRM Signals

To receive DRM with RTL-SDR, you will need the following:

  1. An RTL-SDR dongle working with SDR#. (Or a more advanced SDR such an Airspy)
  2. An HF upconverter such as the recommended SpyVerter or ham-it-up, or a dongle modded for direct sampling (such as our already modded V3 dongle), or SDR# modded to use the experimental Oliver Jowett HF driver for regular RTL-SDR dongles.
  3. The DREAM DRM decoding software with AAC decoder.
  4. Virtual Audio Cable or VB-Cable.
DRM Signal Example
Left: DRM Signal, Right: Analogue AM Signal

A DRM signal looks like this (left) on the waterfall, placed next to a normal shortwave AM signal (right).

We will assume that you already have an HF capable SDR, such as the RTL-SDR V3 or an HF upconverter, and have set it up with SDR#. We also assume you already have an audio piping utility such as Virtual Audio Cable or VB-Cable set up on your system which allows the audio to be passed from SDRSharp to the decoding software. If you don't have and not set these up, check out the Buy RTL-SDR and Quickstart pages, and head to the virtual audio cable download page (trial), or the VB-Cable download page (free).

  1. The sampling rate of your audio piping method must be set to 48000 samples/sec. To set this in Windows, right click your device in the Windows sound recording tab, go to properties and under the advanced tab, set the sample rate to 48000 Hz. Do the same to the same device under the Playback tab as well.
     
    Sound Properties
  2. Now, head to the DREAM download page, download DREAM and extract the zip file into a folder. DREAM is a free opensource DRM decoder.
     
  3. Due to software licence reasons the required audio decoder can not be shipped with the DREAM binary file. You can follow the instructions on the download page to compile your own faad2_drm.dll decoder, but as not everyone has compilation experience, a precompiled faad2_drm.dll download for windows can be found at this megaupload link. Note that using this file in some countries may not be legal due to patent laws. Place the faad2_drm.dll file into your DREAM folder.
     
  4. Now you can open SDRSharp, set virtual audio cable as the output audio device, and then tune to a DRM signal. DRM signals use upper side band (USB), and have a bandwidth of 10 kHz, so apply these settings to SDRSharp as well.
     
  5. Carefully align the left red line with the start of the signal. AGC can be left on, but it may need to be experimented with in order to get the best decoding performance.
     
  6. Now, open DREAM and then go to Settings -> Sound Card -> Signal Input -> Device and set Virtual Audio Cable or VB-Cable as the input device. Also, ensure that Settings -> Sound Card -> Signal Input -> Sample Rate is set to 48000 Hz.
     
    DREAM Audio Settings
  7. Try to get the green "Level [dB]" bar in DREAM to be near the center by adjusting the volume settings in SDRSharp. If everything is set up correctly, you should see three green bars underneath the volume meter and start seeing information about the DRM radio station you are tuned to in the window, and also begin to hear some audio.
     
    DREAM

Some Tips:

  • To receive DRM signals you will need a good HF antenna, placed up high. A simple long wire strung across your attic may work well. Look up "random wire antenna". Also a magnetic loop antenna may be a good choice.
  • RTL-SDR tends to place imaged broadcast AM signals into some DRM signals. This can cause decoding to completely fail. We suggest trying a HF filter that blocks the AM broadcast band.
  • If you hear no audio when decoding, check that you have placed faad2_drm.dll into the DREAM folder correctly.
  • DRM is a digital signal, so it will either work and play audio or it will not work at all. Poor reception may cause the audio to constantly drop out.
If you enjoyed this tutorial you may like our ebook available on Amazon.

The Hobbyist's Guide to the RTL-SDR: Really Cheap Software Defined radio.

Subscribe
Notify of
guest

26 Comments
Inline Feedbacks
View all comments
Anonymous

V2.2 gives errors, citing that so many DLLs are missing on Windows 7, where as V2.1.1 works on Windows 7 without any problem.

ZQ.Fan

I come from China, I have compiled 2.2.1 version Dream complete software that it can ok work on Win10 and support xHE-AAC, and also I have 2.1.1 version Dream complete software with“ faad2_drm.dll”,I can sent them to you by Email,please contact my Email [email protected]

Zoot Suit

I’m stuck. All of the compile instructions for Windows are wrong, or the source is broken, or both.
1>—— Build started: Project: Dream, Configuration: Release Win32 ——
1>Moc’ing ..\src\GUI-QT\MultimediaDlg.h…
1>moc: ..\src\GUI-QT\MultimediaDlg.h: No such file
1>Moc’ing ..\src\GUI-QT\qt2\DRMPlot.h…
1>moc: ..\src\GUI-QT\qt2\DRMPlot.h: No such file
1>Moc’ing ..\src\GUI-QT\Rig.h…
1>moc: ..\src\GUI-QT\Rig.h: No such file
1>Moc’ing ..\src\GUI-QT\systemevalDlg.h…
1>moc: ..\src\GUI-QT\systemevalDlg.h: No such file
1>Moc’ing ..\src\MDI\PacketSocketQT.h…
1>moc: ..\src\MDI\PacketSocketQT.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\AboutDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\AboutDlgbase.ui’ is not valid
1>moc: moc\AboutDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\AMSSDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\AMSSDlgbase.ui’ is not valid
1>moc: moc\AMSSDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\AnalogDemDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\AnalogDemDlgbase.ui’ is not valid
1>moc: moc\AnalogDemDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\EPGDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\EPGDlgbase.ui’ is not valid
1>moc: moc\EPGDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\fdrmdialogbase.ui…
1>File ‘..\src\GUI-QT\qt2\fdrmdialogbase.ui’ is not valid
1>moc: moc\fdrmdialogbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\fmdialogbase.ui…
1>File ‘..\src\GUI-QT\qt2\fmdialogbase.ui’ is not valid
1>moc: moc\fmdialogbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\GeneralSettingsDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\GeneralSettingsDlgbase.ui’ is not valid
1>moc: moc\GeneralSettingsDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\LiveScheduleDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\LiveScheduleDlgbase.ui’ is not valid
1>moc: moc\LiveScheduleDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\MultimediaDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\MultimediaDlgbase.ui’ is not valid
1>moc: moc\MultimediaDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\MultSettingsDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\MultSettingsDlgbase.ui’ is not valid
1>moc: moc\MultSettingsDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\StationsDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\StationsDlgbase.ui’ is not valid
1>moc: moc\StationsDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\systemevalDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\systemevalDlgbase.ui’ is not valid
1>moc: moc\systemevalDlgbase.h: No such file
1>Uic’ing ..\src\GUI-QT\qt2\TransmDlgbase.ui…
1>File ‘..\src\GUI-QT\qt2\TransmDlgbase.ui’ is not valid
1>moc: moc\TransmDlgbase.h: No such file
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(231,5): error MSB6006: “cmd.exe” exited with code 1.
1>Done building project “Dream.vcxproj” — FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

David Pickering

I had missing Winpcap, then missing faad2_ something, then missing QT platform. What a load of cr4p this is. Why oh why can whoever it was post complete installation package and on Linux but not on Windoze? I spent all damn night downloading QT form qt.io only to find its the wrong package and no one will tell me which one I need. Not even QT.io who are faceless wonders, (yet another unprofessional bunch of half-wits who hide behind webforms) can answer my question. I posted my answers after looking through the discussions on Dream’s site and seeing other folk have same problem and no one answering except some “clever” chap who spouts lots of rubbish about re-compiling. The idea of this app in this context was I believe, to allow the demodulation of DRM on HF for listeners using a RTL-SDR. NOT to start many year-long courses on learning how to code! I will be dead by the time I manage to find out how to make this work! So please, this is a strong, polite message to you exceptionally gifted programmers making these lovely apps, please compile them with ALL the extra files we need or at least maintain links to them and instructions on how to make it work. Remember, you may have to ask me if you want to know how to design an aerial and I’ll tell you but I won’t make you suffer wondering where I got that special metal bracket from and that it needs a degree at NASA to go in a rocket to the moon.

Donnie

I keep getting the missing wpcap.dll.

radioguy

Does anyone have a way to find the MacOS libfaad2_drm.dylib file necessary for audio decoding?
I’ve got the version for MacOS10.5 but that won’t work with more ‘modern’ OSes ….. is it available?

ZQ.Fan

I don’t know about it, I just know use dream software with WINDOWS

Jackie(come from china)

All India Radio DRM transmission service has been terminated in 2016. My DRM reception was started in July 2017, So I never had a chance to receive it in china. But my friend sent me a medium frequency recording file, then I used the Dream software to decoding it, and found that it had two channels of audio transmission, one channel to transmission the news, another channel to transmission music,that’s interesting.

Jackie(come from china)

Notice: The dream software need add “faad2_drm.dll” file to root directory , it is a AAC+ audio decoder, If there is no it, Will not output sound. If you don’t have “faad2_drm.dll” file, I can sent it to you by Email,I have the correct DRM schedule-B17.xlsx on my hand,if you need it, I can sent it to you by Email,If you need any help, please contact me.My Email is 13580968044 mike.dost.com

/
Jackie

Hello!
I come from China,I have Successfully received DRM Radio, The Sound quality is very good! I can’t attach picture at this web site, If you need help or need to communicate with me ,Please contact me by my Email is 13580968044 mike.dost.com

warsztat

Are these stations still working? I built up-converter, i received only one program (sdrsharp+dream) 7-8PM. That’s all ?

Giftmacher
Mark B.

You have the audio output looped into the input and mixed with the signal, corrupting it.
Your audio loop settings are not correct.

Nagasai.B

Hi! I am trying to receive in Trichy in which the transmission is done in simulcast mode. I modified an existing receiver by Sony, model name is sony ICF-F10 which recieves AM. The IF filter they used is LTP455B and has a bandwidth of 9.5 (+/-) 3 KHz. Is this bandwidth enough for DRM reception? Coz i am not able to decode DRM but i am able to decode AM using the DRM software. Also please suggest any better filters for better selectivity and at the same time that can incorporate DRM

Jackie

Hi, I come from Chinese, I very expect to receive DRM radio, I used a Digital TV Broadcasting with RTL2832U and SDRsharp and dream software, but let me feel is disappointed , I use SDRSharp scanning signal that not found the DRM, who can give me a DRM radio frequency table? My email is 3343834289@ qq.com or m13580968044 mike.dost.com and I hope you can give me help, thank you!

Javed Shams

AIR is transmitting DRM in Tricky. The correct frequency is 945 kHz with 9 kHz bandwidth in 16 QAM modulation. To receive it on any modified SDR, full 9 kHz bandwidth is required digital processing. So the filter quality is very important.

Anonymous

Curious if a DRM modulator is available for testing on bench a pirate fun.

Andrew

Is there a software for transmitting DRM through GNURadio?

Megaletdown

that creepy megaupload link is probably outdated and they won”t let me in with my browser. how insane is it that i normal non computer savvy people are supposed to compile a program to get some freeware running??

Daryl

Just downloaded it and absolutely NO problems……

Daryl

Let me have your email and I’ll send it to you……….

Dean

You do NOT want to use that Megaupload site. It will attempt to put about 50 MB of crap on your computer if you consent to the download.

Maik

Ignore this warning and allow it. You will download only the .dll

Anurah

I have posted a Wiki Article on DRM reception using RTLSDR

http://sourceforge.net/apps/mediawiki/drm/index.php?title=RTL2832U_Guidance