RTL-SDR Tutorial: Decoding Digital Voice (P25, DMR, NXDN, D-STAR) with DSD

The RTL-SDR software defined radio combined with SDRSharp and a program called “digital speech decoder” (DSD) can be used as a radio scanner to easily and cheaply listen to unencrypted digital radio voice conversations.

Digital radio voice communications are becoming more commonly used in the radio spectrum. This is due to the various improvements offered over traditional analogue voice radio systems. Unfortunately for radio scanner hobbyists, digital radio is difficult to receive, as special radio scanners which can be expensive are required to decode the digital signal. Additionally, digital radio systems can be encrypted making it impossible for communications to be decoded by a hobbyist. However, most users of digital radio do not bother to encrypt their systems as it can introduce lag, monetary expense and extra battery drain in portable radios.

The most common digital speech codec is APCO P25, which DSD is able to decode. DSD is also capable of decoding other common digital codecs such as DMR/MOTOTRBO, NXDN, D-STAR and ProVoice.

Super cheap software defined radios such as the RTL-SDR can be used to decode these digital voice communication signals instead of expensive radio scanners. While this tutorial is aimed at the RTL-SDR, other software radios such as the Funcube dongle, Airspy, HackRF and BladeRF will also work. Hardware radios with discriminator taps connected to a PC may also work.

Examples of DSD Decoding Digital Voice with RTL-SDR as a Radio Scanner

YouTube user Geoff Wolf shows a video where he uses RTL-SDR as a police scanner to listen to public safety P25 digital radio using DSD, SDRSharp and virtual audio cable.

RTL-SDR: Decoding P25 Phase I QPSK with DSD and SDR#

YouTube user Superphish uses RTL-SDR as a radio scanner to decode MOTOTRBO digital voice of a taxi company, using DSD, SDRSharp and virtual audio cable.

Digital Voice Decoding with RTL SDR (RTL2832), DSD and SDR Sharp

Here YouTube use Superphish uses the RTL-SDR to decode D-STAR conversations using DSD 1.7, HDSDR and virtual audio cable.

Decoding D-STAR Voice Audio with RTL SDR (RTL2832) and DSD 1.7

Tutorial – Decoding Digital Voice using SDRSharp, DSD and RTL-SDR (For Windows)

It is assumed you have an RTL-SDR dongle set up and working with SDRSharp. If not, see the Buy RTL-SDR, and Quickstart pages first before attempting this tutorial.

There are two different version of DSD that need to be mentioned. There is DSD 1.7 which is open source software that is under active development and there is DSD+ which is closed source software. DSD+ has vastly superior decoding especially for weak signals but it cannot yet decode D-STAR. DSD 1.7 has poorer decoding, but it is capable of decoding D-STAR. To download each version of DSD see the links below. Once downloaded extract the contents zip file to a folder on your PC.

  • Compilation instructions and a binary download of DSD 1.7 can be found on this post. Note that the binary download is at the end of the post.
  • Downloads of the latest DSD+ version can be obtained from dsdplus.com. To install it download both the latest DSDPlus and DSDPlus DLL zip files. Extract both zip files into the same folder.

Next you will need an audio piping utility such as the paid version of Virtual Audio Cable or the free VB-Cable.  Also ensure virtual audio cable or VB-cable is set as the default recording audio device in windows sound properties as DSD will use the default sound device.

If you are unfamiliar with what a digital voice signal may look like, two waterfall examples are shown below, with audio examples recorded in NFM mode.

P25P25 Waterfall Example





Now to decode the digital voice signals follow these instructions.

  1. Open SDRSharp and set the audio output to Virtual Audio Cable or VB-cable.
  1. Set the receive mode to NFM, with a bandwidth of about 12.5 kHz.
  1. Tune to a digital voice signal frequency. You will need to Google for these frequencies by your location. The radioreference databases may be a good place to start looking for these frequencies. Most digital voice frequencies for many countries will be around 460 MHz or 850 – 900 MHz. D-STAR frequencies are usually at around 145.670 MHz.
  1. To use DSD 1.7 for D-STAR: Open a command prompt from Start->All Programs->Accessories->Command Prompt, and navigate to the folder where DSD 1.7 is located. For those who are not familiar with the command prompt, use the “cd” command to change directories within command prompt. For example, if your DSD 1.7 folder is located in c:\Radio\dsd-1.7, you would type in command prompt “cd c:\Radio\dsd-1.7”.
  1. Now type into the command prompt the command “dsd -i /dev/dsp -o /dev/dsp -fd” to begin decoding. This will use the default sound device set in Windows sound recording properties
  1. To use DSD+: Simply double click on the DSDPlus.exe executable and the GUI will open up.

At this point, text should be scrolling through the command prompt window when a digital signal is broadcasting. Whenever someone speaks into the radio you should see the words “voice” in the window and hear voice.

DSD Command Prompt
DSD Command Prompt
DSD+ GUI Windows

DSD+ can also be used to decode LRRP signals from Motorola (MOTOTRBO/DMR) radio signals. Some Motorola radio broadcast GPS coordinates every few minutes or on request. This is useful for tracking a fleet of vehicles for instance. To show decoded LRRP coordinates on a map when using DSD+, simply open LRRP.exe. Note that many LRRP radio users use a third party GPS software system which cannot be decoded by DSD+. If you do not see any coordinates in the DSD+ event log when an LRRP event occurs this may be the case.

To get good decodes (for most sound cards), the volume settings in SDRSharp and Windows should be played with until decoding begins to improve.

To stop DSD, simply press “ctrl + c” at the command prompt while it is running.

Some Tips

  • If you don’t know what P25, MOTOTRBO, ProVoice or any digital voice signals sound like, this page has some more example audio files.
  • You can simply manually scan through various signals, and see if DSD starts scrolling text to see if a signal is supported. DSD will start attempting to decode immediately. Note however that DSD will also scroll text on trunking channels, but will not be able to decode them. See the next section for information on decoding trunking channels.
  • A strong signal is required for DSD to decode audio well. Ensure you are using a good antenna and have set the RTL-SDR gain correctly.
  • DSD will listen to the default windows sound recording device. Make sure virtual audio cable or VB-cable is set as the default device. No text will be scrolling within DSD if the wrong audio device is used.
  • Stereo mix can be used, but you will be hearing both the digital signal as well as the decoded voice at the same time. Also, the decoded voice audio will be pumped back into DSD causing a detrimental feedback loop.
  • DSD is software in development and may not perform as well as a commercial digital radio.

More Advanced Digital Radio Scanning

We can set up a digital trunking radio scanner using these tools, two RTL-SDR dongles and another piece of software called Unitrunker. See our Unitrunker Trunking tutorial for information on setting this up.

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.

Notify of

Inline Feedbacks
View all comments

I am having trouble decoding Voice channels on a DMR Tier III system that is not encrypted. I am decoding the Control Channel with no issue, but Im not hearing any audio. Any recommendations ?



Dave Pickering

It does work, you have to be patient and also know where and what to decode. If it its encrypted, all you will see are the frames. For example, if you are trying to listen to Emergency services, in Europe and UK the transmissions are encrypted and for a very good reason too.
I recommend you firstly identify what you want to listen to or decode, secondly, bearing in mind encryption of certain signals, find what frequency they may be on. Next, confirm you can actually “see” the signal on Airspy. When I say “see” you actually need to have a good SNR or signal to noise ratio, a good rule of thumb would be 18-20dB above noise. Then following what you have learned from tutorial, experiment with the settings to decode the said signal(s).
None of this will work if you haven’t set up VB-Cable to redirect audio to the DSD decoder. If you don’t know how this works, I recommend you follow tutorials and get that part right first.
I recommend you look at https://www.sigidwiki.com/wiki/Signal_Identification_Guide where you can actually hear samples of signals which will help you identify what you may be receiving.
Best of luck.


Dave, it’s probably just a spammer.
I for one will be definitely using these guides to build a P25 scanner for my job, as we partially maintain a system.

William McLaughlin

I read the tutorial and watched a video on Youtube but I’m not clear on the installation of VB-Cable in Windows 10. I can’t find anything on how to set it as the default recording device. Apparently earlier versions of Windows went about it differently (e.g. no recording tab like those in the videos on Youtube). Can anyone explain it to me step by step? (I tell ya, it ain’t easy being stupid!)


If you right click on the speaker icon in the toolbar, it should open an options window that will let you click ‘Open Sound Settings’, you can adjust default settings there.

David Pickering

This may be a very late reply, I had a go at this procedure in 2017 using a W10x64 Lenovo laptop, NESDR Smart dongle, VBCable and found: No audio on MotoTRBO DMR decoding, I turned up the volume with an external amplifier but had to then install another 3rd Party App (Viper for Windows) to add more amplification. After that it worked a treat.
It is a shame that real-time decryption of basic MotoTRBO cannot be made since I do know the key as it is my system. I wonder if this is a possibility at sometime? Saves me having to use a TRBOnet client and licenses or a donor radio.

Just a Raccoon

4. To use DSD 1.7 for D-STAR: Open a command prompt from Start->All Programs->Accessories->Command Prompt, and navigate to the folder where DSD 1.7 is located. For those who are not familiar with the command prompt, use the “cd” command to change directories within command prompt. For example, if your DSD 1.7 folder is located in c:\Radio\dsd-1.7, you would type in command prompt “cd c:\Radio\dsd-1.7”.

5. Now type into the command prompt the command “dsd -i /dev/dsp -o /dev/dsp -fd” to begin decoding. This will use the default sound device set in Windows sound recording properties

Better yet:

4. To use DSD 1.7 for D-STAR: Navigate to the folder where you unzipped your DSD files. Create a New Text Document and open it Notepad, then copy and paste this line into the file, “dsd -i /dev/dsp -o /dev/dsp -fd” (without quotes). Then save the file as DSTAR.cmd and double-click to run it.


Hi everyone I am focusing on the demodulation of c4fm modulation which is actually a Continuous Phase 4 Frequency Shift Keying (CP4FSK). The demodulation method of mine works perfectly if time synchronization is done beforehand. By the way I have no Idea how the synchronization is carried out in DMR signals. There is a sync pattern in the document which has 48 bits (or equivalently 24 symbols) by which we can correlate to find the sync signal. But no correlation is found in my synchronization , and no peak is detected.
Would you mind helping with me if you have any experience in the synchronization of DMR ? With regards, Amator Radio Research


Using Unitrunker and DSDPlus on Windows 10, with two dongles. Unitrunker tracks the P25 system with no trouble, but the audio coming out of DSDPlus is a combination of voice and control channel. Any ideas on fixing this? Thanks


Select “mute” on the VCO tab for the Unitrunker dongle that is decoding the signal channel.


Have done that, and I am also having the same issue with I use SDR# to monitor a P25 conventional frequency. It has me stumped.

johan visagie

SDR sharp program does not see the RTL SDR USB dongle . What do i need to do so the program can see the RTL ?

johan visagie

Under Device it shows E4000 only .


Hi mate, I think I had this error too. Try running the .bat files (I think it was the install one) again and after that, try re-installing the drivers on the dongle with Zadig. It stopped my “no device” error.


hey all, I am a newbie to this dsd+ software and im having issues with audio. I have win 7 running rtl sdr and dsd+ audio on sdrsharp is set for output mme cable, my settings are in sound are as follows..recording, disabled, stereo mix , disabled, cable set default. playback is speakers, default comm device, realtek mix disable, cable default device…this is what I had working with no problem last night. today I set just this way again and no decoded P25 audio to speakers. Im set with 16 bit dvd sound on both input outputs, volumes are according, its definitely P25 voice decoding as its showing voice. I dnt get it. I thought I wrote it down write lol..thinking im gonna write this dwn so I can get this going again…nope…can anyone help thanks


Hello, HELP….

I have a little problem with “dsd+” and rtlsharp …
Here, I’m in a big city of southern France, and in the qra i receive mostly, the tetra scrambled and utility stations DMR in clair, with some, very interesting to listen to me. I only have one problem reception dmr, I have only one right reception channel stereo that works, not other. The reception is hatched on the left channel, and the right is normal according to the called channel. how to forcing please, the two channels in Mono reception on dsd + please? or my problem is in my setup configuration?

example: “TG=36” “Ch=3”, I have a voice clear at right, and nothing on the left

“TG = 39” “Ch =4”, I have a voice with cuts with one word out of two on the left and nothing on the right channel.


salut c’est normal car sur un canal il peut y’avoir plusieurs conversation


Does anyone have a decryption board for scrambled when they do encryption ?


How can I change the sound output for the dsd it is coming over the main speakers but I want the decoded sound to come over a usb sound card.


Start dsdplus with no radio connected. Look in the black DOS window to see what outputs the app recognises and which one to select. Finally start dsdplus using the -o parameter (e.g. -o1 or -o3) to select your target output route. You can set these values using either a .BAT file to start from the desktop or set them in the config screen of the sdr# plugin. HTH.


Is there anyway to determine what the encoding settings are that are being used so this can be programmed into a digital radio in RX only mode, so it is not tied to a computer?


Hi can anyone help i’ve had a discriminator tap done on my scanner ,i have the cable from the scanner to the mic port on my laptop ,
i have downloaded dsd+ opened the programme all the windows appear but not sure where to go from here


Enter the frequencies that you want to decode into your scanner, turn on your scanner, turn scanner volume right off and turn volume of computer up. Now start DSD on the computer and you should be good to go.


Make sure your source is soundcard


I’ve been looking for someone to tell me if there’s a possibility of decoding encrypted p25 channels? I work for a towing company and listening to traffic police is one way of hearing accidents so it’s important for me to monitor. I’ve asked around a lot as well but have always gotten a ” no it can’t happen ” answer everywhere. But I keep looking and asking so anyone here know if that’s possible yet at all?
Thank you for your time


They were right. If its encrypted forget about it. Unless you can get access to the decryption keys (exceptionally unlikely) and even then there are currently no SDR apps that support decrypting P25.


I have not looked at the encryption used, I don’t know anything about the Encryption used in P25, other than one of the algorithms used is .the Data Encryption Standard, in Block cipher mode, with Output Feedback.
To brute force DES is possible ( https://en.wikipedia.org/wiki/Data_Encryption_Standard#Brute_force_attack ), since the algorithm published in 1977, and its key is only 56 bits long, it is too weak for most uses. The ability to process data has increased by around 2^19 since 1976, while costing about the same. So the keys could be recovered at a rate of ~1 key per day, if you could afford the price of the dedicated hardware required to cycle through all 72,057,594,037,927,936 possible keys.

It is probably still fit for purpose in P25 because recovering a key 24 hours after it was used is probably good enough.


P25 can use a variety of ciphers: RC4, DES, AES as well as a heap of classified ones. Recovering a DES key is not a trivial effort – it takes about a day on a dedicated FPGA setup lke the COPACABANA (a one-off $5000 fee) or 20 years of desktop PC time. The problem with P25 is that the keys are long lived and shared amongst the whole talkgroup (so they change very rarely – my local police force does so annually). So, yes, in theory its possible but rather unlikely that you’ll be breaking their crypto anytome soon.

Bravo 88

Ask the agency that you are towing for if you can have one of their radios when you are on rotation. Let us know what they say.


I pretty much followed the tutorial using DSD+. Problem is I can hear anything because the output is set to the VCable and in play back options in windows VCable is set as the default device. I don’t know what I’m doing wrong.


Assuming Windows 7 or 8, go to the control panel and open “Sound”. Click the Playback tab and choose a device other than the virtual audio cable as the default playback device.


If I select Speakers or headphones in playback devices, DSD+ stops working.


Control panel, sound, recording tab, Propertied of your Cable Output, Listen tab then click checkbox “Listen to this device”



Yep that did it. Thanks. Also found voice meter (does the same thing).


Digital doesn’t work work with SDR#. The software DSD+ they recommend doesn’t work either. To use that that software, would be like trying to start a fire, by rubbing 2 sticks together. If you can quit your full time job, you MIGHT get it to work. It’s flat out, poorly written software, on an drastically out dated format. (Good gosh! The dude that wrote it, hasn’t been out of his mom’s basement since DOS) But it is FREE, and you get what you pay for.


It would be so nice if there was just a single download to make this work. I have been working at this for a week and still can’t get it to work for me. I have no software background experience which I am sure is my problem. I have a hackrf one and sdrsharp. I have followed all the instructions that I can find on the internet and still cannot get this to decode for me.


It doesn’t work with windows 8.1


DSD isn’t a DOS command so “dsd -i /dev/dsp -o /dev/dsp -fd” won’t work, you will get an error. I don’t see how this could work on any version of DOS. It isn’t an internal or external command.


I can help.

Dan P

After almost 2 years of not having time for this I am glad to say i am back at it again. It all works fine except when decoding P25, I get broken audio pieces and on the DOS screen it shows alot of E’s and R’s along with a few lines of “Unrecoverable” messages. I am on the right path, but it may just need some fine tuning. Maybe increase my band with from 25000 to a higher band with? Does anybody have any suggestions or have had the same issues and what did you do to correct it? Thanks. 73


I find the frequencies in digital mode however when running the same DSD can not play the sounds would be some adjustment required thanks.


Hello everyone I am new and inexperience
I’m getting a “Error – The system cannot find the file specified” when I try to start DSD
I downloaded DSD+ and followed the instructions.
I didn’t use cgywin because I read that I didn’t need to download it for DSD+
Can anyone help?


I am not an informatics programmer so all the c++ or cygwin or link with no folder: I waist my time. So please don’t complicate all the information. I want something plug and play.
I thank you in advance for your time.

My setup:
Windows XP
SDRsharp SDR v1.0.0.1317
Audio VOICEMEETER (Virtual Mixing Console)

I want to scan numerique: Apco-25, Edacs, Trunking P25, Seram P25, Renir, ProVoice

If you need to see my setup: http://we.tl/qhqtoBK6ys


Great blog .fantastic.
May I ask a quick question on dsd please ?…
“The data that is displayed when dsd is receiving a signal, does this contain colour codes, groups etc ?
I’m thinking of using scanner/dsd to obtain the data so I can then program my digital handheld directly via its software…I hope that wasnt a dumb question and I aplologise in advance if this is the wrong way to ask your advice”
Thanks again – Kevin

Joe Blogs

Cygwin virus ridden as torjans Win32/Heur & Win32/DH discovered after scans hidden in compressed download & exe file from mirror during installation. Please avoid! Please be careful of mirrors during installation.


How does this work in Estonia? i don’t understand. Police uses Sepura radios and Fire Dept. uses EADS radios..

Anyone help me?


Kui teada saad ütle siis kah:)


thank you so much for the tutorial and MUCH thanks to the gurus who make it possible!
vy 73 de Frank K2NCC in Oregon



does this sdr rtl works in Europe ?


Please Sir, please add your package to Kali Linux: http://www.kali.org/


I setup everyting as you described and it works in so far that I see DSD output with many = and R and E and I hear audio. But what I hear is cut off pieces, maybe 400 ms long and then about the same time silence. I tried all combinations of -xr and -fr and volume settings but nothing has an effect on this behavior. I’m listening to DB0NJ and DB0TVM repeaters with strong signals. Don’t think they are encrypted as this should not be allowed in HAM radio.

Any ideas?


YES! Solved it myself: my cygwin1.dll was version 1.5.25. Now got version 1.7.27 (from cygwin download) and with that IT WORKS!



Hello. Thank you for this very well written and updated tutorial. I have followed all of the instructions to decode DMR and all I am hearing is this constant tone when I click “Play”. I’ve fiddled around the software a bit and have not been able to get this to go away. Any help would be greatly appreciated!


Disregard folks. I just talked to the dealer who sold the EMS Service the radios and they are encrypted.


Using a laptop and VB-Cable and the software decodes well. However, no sound comes out from the speakers. But what should I do / set? I still do not understand …
Using Windows 7.
Thanks in advance!


I have the same exact issue that Dan P mentioned


except, stereo test mentioned by admin works. (test signal admin put works fine. but not working with live signals)


Hey, i am running dsd, with all the settings, i receive an error: unknown burst 1101 somrthing like that, i can see DMR, filter name, and slot voice, but the voice is too bad!!!
Also, i run a dipole antenna, could you please give some instructions, about length, polarity, etc?
Any other cheap or homemade antennafor dsd decoding? (DMR in my region, runs at 400-430 MHZ)

Dan P

Ok. Now I am getting scrolling of P25 channel, but no voice decode coming out of the speaker. Speaker is set to default so I know that’s not the problem. I can send you a screen shot. How can I get a screen shot to you?

Dan P

Hello. Here is a screenshot of DSD160 scrolling, but so sound. All my settings are correct as far as my soundcard settings, etc. Can you tell from this DOS screenshot if anything is out of the ordinary? Frustrating because the software definitely hears the channel and scrolls, but again no sound decoded. [IMG]http://i.imgur.com/qzx6bb9.jpg[/IMG]

Dan P

Nope it’s not a trunking channel. It’s one single channel. 159.150 Mhz in Apco 25. I think I am going to give up though. Spent enough time on this for now. Signal is strong (only 11 miles from the tower), volumes are set correctly and all else is set fine. Thank you for your help anyway.


Hello there!
I am working with E4000 Dongle, Sharp SDR and DSD wich all working perfect. I am receiving some DMR-Channel, wich are decoded very well. but i did not hear any decoded synthezised voice over the speaker.
If i set DSD with option -w to set a wave-file, that wave file will work fine. But i want to hear live. Did i set something wrong? I set input- and output device with VB-Cable to default. I am using Windows7 32bit version. How can i make it possible?


Well, this may be a little off topic, but…

I’m trying to decode a single frequency using a discriminator tap from a Yaesu FT7800 transceiver.

Well, if i run the signal straight to DSD, i do get something. But it is all garbled.
If i run it straight to SDR# i do get something on the waterfall.

But if i run it thru SDR# and THEN to DSD, it appears that DSD can’t read the stuff, because nothing happens at all.


Also, i tried recording audio from LINE 1 (IM using VAC) and the program does get the audio from it.

Dan P

Help! I have SDR Sharp working great, as far as listening to many frequencies goes and it works great, but when I want to switch over the SDR output to VAC so I can decode and listen to P25 frequencies, nothing happens on the DSD screen. I know I have VAC installed correctly, am tuned to a known P25 frequency with a strong signal, but it’s almost like VAC doesn’t hear anything so no scrolling or decoding happens. Any suggestions? Any settings I should look at? Help!!!!

Dan P

Still nothing. In Windows, I set the recording device input as VAC and in SDR I set the device output as VAC. (per instructions above on this website). Stlll nothing. All I get on the Dos screen is : DIGITAL SPEECH DECODER 1.6.0 BETA WITH AUTO P25 & DMR FILTER
and with a flashing curser under that. Nothing is heard. Not sure what is happening. Signal is strong and loud too.

Dan P

VAC is my default device. I also tried VB Cable and both are not giving me results. I am trying to get stereo mix set as default, but that is not an option. All there is for options is REALTEK HD AUDIO INPUT, VB-AUDIO POINT, and VIRTUAL CABLE 1. Remember I have XP so my Audio Properties box looks different than the one in your link. I will fiddle some more and try to get DSD to pick up the P25 sound posted here.

Dan P

Thank you. I will check it out and will let you know my results. Thank you so much.

Dan P

I did what you asked and DSD is not hearing the sound files even after enabling stereo mix. No scrolling. Although when I first started DSD, a quick burst of unknown something showed on the screen. Not sure what because there were no sounds at the time I started it. Frustrated.


I believe I have followed all of the steps correctly, however when I try to run dsd160.exe I get an “application was unable to start correctly” error message (this is on a windows 7 64-bit computer). I also tried “dsd -h” but dsd isn’t recognized. Any suggestions?


That worked. Thanks!

Dan P

When I use SDR Sharp with my dongle to use as a regular scanner, I use the default sound card on my laptop and I hear everything I want. But when I want to use DSD to decode P25 per the instructions I change the input on my sound card to VB Cable and the output on SDR Sharp to VB Cable, I hear nothing. Is that a normal thing. Will I hear something through my computer speakers when the dongle picks up and decodes a channel with digital P25? Is it normal to not hear anything at all on my speakers when the sound settings are like so? Is that the whole purpose of VAC or VB Cable? FYI, I am using XP. Any insight would be a big help. Thanks!

Dan P

Great! Thank you so much for the quick response to a question that has been bugging me for a week! Great. Now I know my sound settings are ok. One other question. I am not sure of any other settings such as filter bandwidth, etc… I left all the settings the way SDR came out of the box. Are there any other settings I should change to tweak everything? So far it all sounds ok. Any insight? I will probably just leave everything like it was when I installed it. Thanks again!

Dan P

Excellent. I will do that. Thank you so much!


Where can I find the Cable output properties dialog (about halfway through the page) under Windows XP?