Decoding DMR / P25 with the RTL SDR – an update

Setting up  SDR# (or SDRsharp) for use with an RTL dongle is the easiest and cheapest way of listening to most digital voice modes on the VHF and UHF bands, and you don’t need to know talkgroups, colour codes, slot or anything, so it’s much easier than any other method, and it’s also great for general FM, AM and SSB monitoring too, with sensitivity on par with typical purpose made mobile and portable transceivers, though, for analogue listening, i do think the SSB AGC performance on the SDR side needs some improvement, but that may just be my personal preference, and  on the decoding side, there is no DSTAR audio decode built into DSDPlus ‘out of the box’ (on Windows)  but apart from those very minor issues, it’s a great way to go listening nowadays, and it’s not half as fiddly to set up as it was  earlier, so, as interest in decoding digital voice is still on the increase, it seemed like a good time for a refresh.

You will need:
PC  –
anything from the last several years should be fine,  most of us have PCs that are at least dual core by now, so anything runs Vista (remember that nightmare?)  will do. Windows 10 users may be a little out of luck at the moment, as i believe results can be variable.

Of course, You need an RTL SDR dongle.. this blue MK II one (below) was £6 off a well known auction site, and came with the usual TV remote and the pointless UHF magmount, but hey.. i need  fridge magnet, The SDRs’ coaxial connector is probably going to be an MCX, it was on mine, but some dongles do come with the more traditional TV type Belling-Lee or even other connections, but i prefer BNC. On my previous SDR dongle i removed the whole MCX and fitted a BNC flylead. You can use 2 or 3 extension USB cables to get the receiver up and away from the often ‘RF noisy’ computer gear and possibly save a little bit of cable loss too.
RTL SDR dongles also run well under Linux, Linux driver installation here and Mac OS X Mac OSX driver installation here and an old 2012 GQRX SDR receiver complied for Mac (Thanks Elias) it’s GNU Radio based too. Even Raspberry PI’s and other SBCs can run RTL SDRs too. RTL SDR dongles can even run on Android, with drivers available in the App store, and it can even decode digital voice.

Linux can, of course, run digital voice decoding quite well too, in fact the first DSD decoder program ran on Linux only, not Windows, so to decode on Windows you had to run Cygwin and it seemed a bit fiddly, until DSD was be ported to work on Windows natively. There is a great amount of SDR work going on, not least of all on Linux – check your repo and GIT for goodies, Linux can even decode unencrypted TETRA voice, with GNUradio, so Windows and Mac users are out of luck again with that one, i may do an article on that in the future, if anyone’s interested, but it’s not for the beginner or faint-hearted, but is reasonably straight forward if you’ve compiled  software before on Linux.


The MK II RTL SDR – slightly better spec.


and you may want something like this MCX to BNC lead..


The RTL SDR dongles have recently had a bit of a makeover recently, and are now available as the updated R820T2 tuner, and these do seem to have a slightly better receiver compared to my other 2 or 3 year old SDR, it does seem slightly better too.  The chinese sellers have got a little more wise too, and are often selling these with SDR in the description too, so searching for RTL SDR easily brings results, expect about £6 from Chinese sellers.
Before we start, a brief overview might seem appropriate, as using a PC to tune the bands is still an experimental, but maturing technology, and may take a little getting used to, tuning around on a SDR is quite different, no worse, no better, just different, and besides using your mouse wheel as the VFO, you can buy actual hardware VFO type knobs – on USB leads to control software. Electronic musicians have been quick to adopt real hardware controls for software instruments, and they work well too.

The RF signals come in from your dongle to your PC running the SDR program, then (my badly drawn green cable thingy) signal carries the FM audio into the decoder program (DSD Plus) and then out to your speakers. You will need a software version of one of the green cables i have drawn. Yes.. i know my quick drawing below is rubbish !


You can install it now if you like, but it will want to reboot to take effect. Don’t install the other ‘Banana’ or ‘Voiceemeter’ apps, as they’re far too complicated for what we need.

First things first, Windows drivers often come with dozens of CPU chomping addons and crapware, some soundcard drivers can be over 150Mb download, which, frankly, is ridiculous, and they can install unneeded and unwanted software and sys-tray icons which can, in some cases, be a privacy threat and slow down your PC down. The only reason I am bitching about this, is because some audio drivers, by default, run your computer’s audio through some weird surround sound DSP nonsense automatically, which is no good at all if we want to use the soundcard for something genuinely useful, so it’s worthwhile checking your Windows system tray, and  / or Windows control panel to make sure all DSP and sound effects are turned OFF, these effects can occasionally hamper attempts at decoding digital voice.

Software List:


VB Cable

Airspy SDRsharp receiver  and  here’s the Airspy wiki   (it’s actually quite good)

DSD Plus (digital voice decoder)  and it’s associated homepage  HERE

When you plug in you RTL SDR – Windows will prompt you to install some drivers – don’t bother – but if it does try to download dtivers, let it finish, as you’ll be replacing them in a few minutes anyway.
You’ll may need to install the Microsoft .net framework too, depending on what version of Windows you are using, but you probably have it installed already.

You will have unzipped SDRsharp into a folder then, the file is still called sdrsharp.exe, and you might need to move the whole folder somewhere else, other than the downloads directory where it probably extracted to, You could make a shortcut if you like, to sdrsharp.exe, and also unzip the you downloaded too, and you could create a shortcut to DSDPlus.exe for convenience. I dragged these two shortcut icons into the start menu for ease of use.

Now it’s time to test it.
start SDRsharp and you should see something like this below:


First thing, check at the top left where it says “Source” and open the drop down menu and select RTL SDR (USB) …. if you dont see RTL SDR listed and the dongle is plugged in, either navigate to the SDRsharp folder and run Zadig  and follow the instructions below, if Zadig,exe is not in your SDRsharp folder already, d/load it here and run it as Administrator, Windows will prompt you for permission.
In the running SDR screenshot above, DSDPlus displays Radio ID, group ID (talkgroup) colour code, and slot.

Running ZADIG (if you need to)
select Options – then List All devices and then from the drop-down, select “Bulk In Interface 0” In the drop down box, choose Bulk-In, Interface (Interface 0) thoughit might also show up as something like  ‘RTL 28320’ or something similar, and that’s ok.
Just make sure that ‘WinUSB’ is selected as the target driver, and then click on ‘Replace Driver’.. you may have to reboot, but next time you start SDRsharp, your RTL SDR should now be in the list of available devices, select it.

Setting it up.

Under the left hand RADIO tab (see the above screenshot) set the mode to NFM, i generally set the filter bandwidth about 12500 for DMR decoding, that’s fine for most normal comms FM listening too, and on NFM i set the steps to 12.5 kc.

These USB devices are cheap and mass produced, the things are not calibrated too accurately, and so we need to fine tune the SDR so they both agree on freq.  (if you’re adventurous and run Linux, try Kalibrate which uses GSM, but it’s really overkill) and you *can* fit a much more accurate crystal.. but i’ll leave that up to you to decide.

Start SDRsharp and click the cog on the SDRsharp toolbar, you will see your device listed, now click both the AGC tickboxes to maximise RF gain, note the frequency correction adjustment there too, we need to find a known signal on air and tune the SDR to the correct freq readout, then, whilst listening, tweak the frequency correction to get it spot on. CW or SSB mode is good as you can more or less find zero beat, as you see, this one is set at +68


Now you’re up and running with SDRsharp, you may want to try to decode digital, check the screenshot, and notice the ‘filter audio’ needs to be unticked for decoding: same for Pocsag etc. squelch off/ open.


also make sure to send the SDR’s audio to the DSDPlus decoder program – select Output to ‘VB Cable input‘ and you should see the ‘scope display on the DSDPlus program jumping about wildly.  If you dont see DSDPlus’ scope displaying activity (even on random FM noise) it could be that audio routing may need one slight tweak, here on my old Windows7 craptop here, i had to go into the control panel, then sounds then check in and output devices as you see below, then it worked. note the audio bargraph level meters reading, your soundcard will probably be named something different.


Get tuning !   if the signals you see are good, but garbled or no audio, they may be using privacy or encryption, or have interference, or it may be data or GPS (LRRP) and all kinds of stuff going back and forwards, still getting problems, check your audio levels, RX bandwidth, make sure your fine tune is correct,  that filter audio is OFF and you are indeed on NFM with no squelch. Remember there is no windows binary widely availble for dstar audio yet (that i have seen) and encryption is used alot.

In case anyone is wondering, clear / unencrypted TETRA isn’t able to be decoded on anything other than Linux at the moment, and it will probably never appear on Windows anyway, On Linux it’s only done with GNURadio as a base, GNUradio companion has the most horrible interface i have ever seen (but it works very well indeed) and there’s not much unencrypted TETRA about anyway, but after all the hours of compiling and patching stuff, it’s a lot of  fun learning about it.

SDR and decoding digital voice can be fascinating, cheap, and lots of fun,  thanks to some really smart people out there, and some really cheap hardware. It offers up a new way of visualising the band and is a crossover of radio experimentation and computer tech, and it’s a developing part of the hacker and radio amateur communities too..  and who knows what direction that may lead to ?   and long may it continue.. Have Fun..

If money’s no object, or if you really must have a VFO knob for your SDR, and let’s face it, most mouse-wheels are pretty crummy for making small or accurate incremental adjustments for any length of time, so you might want to treat yourself to something like the Griffin PowerMate controller .. it’s bluetooth, but it’s still hugely overpriced as it’s little more than a rotary encoder, i wouldn’t mind, but such devices have been around for several years already, and the Chinese manufacturers still haven’t got around to making them for a fiver yet, most you see on Ebay are from Japan or the USA, or if you like the idea, you could always make one…  happy SDRing..


All work, text and images © GB7MB

A beginners guide to using the MotoTrbo CPS

Its a fine and long standing tradition amongst Radio Amateurs to convert old military or commercial (PMR or Land Mobile) equipment to get onto the Amateur radio bands, but technology moves on and its time Amateur Radio did too. You’ve bought a DMR transceiver, so lets get the set programmed up.

While not always immediately obvious how to set up a channel  if you’re new to any radio programming software and you’ll be wanting to get started, here we’ll show you a quick and easy way to get started, with screen-grabs and some basic facts.

First things first – select Expert mode, like pictured below, and now save your codeplug – dont write it back to your radio, save it to your PC.  do not forget this step, because If you make an error one day, you may need to revert back to an earlier codeplug, in fact, we suggest that you save most codeplugs’ you make, provided you name and date them – as they take virtually no space up on your PC.
Click on the thumbnails to get full pic / screenshots

expert mode

And before we begin, a few factoids.

1:) You can not swap or use the codeplugs, software or leads on or between Motorola and non Motorola sets.
2:) Do not ask us for Mototrbo software.
3:) Motorola DPxxx program leads are expensive because they have a ‘chip’ in them.
4:) You cant do Dstar or Yaesu digital on them.
5:) Only the Motorola MotoTrbo SL4000 portable has no FM (as far as i’m aware)
6:) Note difference’s between TDMA and FDMA – TDMA is a pulsed system unlike less efficient FDMA Yaesu/D*star
7:) A codeplug is the program data from the radio, most commonly seen, saved as files on your PC
8:) High power DM4600 codeplugs can not be written into standard 25w DM4600 codeplugs
9:) There are likely mistakes in codeplugs, its up to you to check them before use, we will not be held responsible.
10:) There are a few different approaches to programming them, i prefer simplicity.

That said, lets get ‘programming’

Lets create a simplex DMR channel. As you can see the radio ID is already filled in – yours will start with 235 – instead of just 007 here, in the box – just above the Motorola graphic sign. (you can change that too if you get the right size)


For a simplex DMR frequency you need three bits of info, frequency, colour code and numeric talkgroup ID, and for a repeater you obviously need the TX/RX frequencies   **and the slot number used for each talkgroup**

Around Morecambe Bay we use 430.3125 DMR simplex, talkgroup 9, and colour code 1, so lets use that.
First, set up the ‘Digital Contact’ like in the screen-grab below –
first we are going to define which talkgroup (group call) to TX on.

So, in the left-hand side pane, pictured below, navigate to Contacts / Digital – and right click on ‘Digital’ and add a ‘Group call‘ – it will probably be named ‘Call 1’ which will be wrong for most channels, so always rename these to something meaningful – i named this ‘Talkgroup 9’

Then across at the top of the right-hand pane, change the number in ‘Call ID’ to whatever talkgroup ID number you need. in this case, ‘ 9 ‘ it should then look like ours pictured below when you’re done..




Next we need to define which talkgroup(s) to receive on – so, it’s talkgroup 9 again, Yes, you’ve already defined it, but as you can receive up to 16  – you’ll need to specify just which ones in a list, of course we’ll only need to add our single talkgroup – so navigate to RX Group Lists / Digital / and right-click on ‘Digital’ and add  ‘RX Group List’
Strictly speaking, you don’t really need to specify *any* RX grouplist in the RX field, in which case the default TX talkgroup will be used for RX if set to ‘none’



see the ‘Talkgroup 9’ you’ve just made in ‘available’ ?  – so now click  ADD so it appears in ‘Members’  then rename it to ‘Talkgroup 9’  then in the left-hand pane rename ‘List 1’ to ‘Talkgroup 9’ like below ..


Now its time to add some frequencies !
In a new or existing zone,  right-click the zone you want the new channel in and select ‘add Digital channel’ and rename it to whatever you want the channel display on the radio to say. here ours below are automatically named  ‘Channel 1’ ‘Channel 2’ – the square icon represents a digital channel, the other means analogue FM.

and of course, rename the channel to   430.3125 DMR – or whatever you want to appear on the radio display. Select the channel you’ve defined and fill the channel info like pictured in on the right-hand pane in the screen-grab below


So after the frequencies are in, and you’ve set the colour code above, and the slot (if it its repeater) select your newly made ‘talkgroup 9’ in both the RX section’s ‘Grouplist’ drop-down, (arrowed) and again over in the TX section, in the  ‘contact name’ dropdown. Make sure your transmit timeout is something a bit longer than the default 60 seconds and make sure all the ‘Emergency’ stuff is unticked too, as i need to do in this example here below. again arrowed


You have now made a digital channel for your MotoTrbo set. You can either write it into your MotoTrbo set or carry on programming your set up. The DM4600 codeplug on this site can be downloaded and some of its bits dragged and dropped into your codeplug, but beware, if you drag ‘n’ drop digital channels from another open codeplug in to your codeplug, you will need to set up talkgroups and RX group lists separately, and name them exactly the same too, which is very tedious. You might want to do this too..

And finally – a lot of people new to DMR can’t tell when the person they are listening to has stopped transmitting.  so, back up in ‘General Settings’ click ‘channel free indication tone‘ and it you really hate the ‘chirp’ everytime you press the PTT,  choose  ‘Talk permit tone‘ to ‘None‘ in the drop-down.

All work, text and images © GB7MB

Digital diversity !


Motorola Astro Spectra
Motorola Astro Spectra

Here ’round the Bay area, we don’t just stick with DMR/ MotoTrbo, In fact we’re interested in all commercial digital voice modes. If you’re into getting your ‘hands dirty’ and hacking on old Motorola digital gear for fun, here’s a glimpse of what we play with on dark sunday evenings. It used to be that most PMR conversions were hours of painstaking research, winding coils, doing mathematics, and  actually burning your fingertips with a soldering iron, but now its in mainly  about swapping that soldering iron for a keyboard, so onward with the learning process, and remembering the ‘experimentation in wireless telegraphy’ bit, (remember that ?) and do it just for the hell of it.

Its an Astro Spectra above, one of many different sorts we’ve collected over the last couple of years, nice old sets, 1990s vintage, heavy as a paving stone, no light alloys and thin parts, it really is a solid lump of metal with a radio inside, don’t drop it on your toe. there are portables, more recent versions, but these are just right for hacking on.

The more geekier of you out there may be thinking ‘ oh, p25 ‘ well, its not.

its pure ASTRO – Its what Motorola made before p25 was the standard, its got alot in common, and most Astro Spectra’s ARE p25 – but these are an earlier iteration, and the codec is actually VSELP as opposed to IMBE/p25 sets which most are. We use Astro digital, Astro 25 digital (Motorola’s name for P25) and DMR. for now.

Plenty of these sets are all over Ebay, i got a headless one for a penny,  but they go for about 30 ukp and up.

when buying a Astro Spectra there are several things to think about.

1:) there is a Analogue version just called ‘Motorola Spectra’  avoid unless you want a FM only set.

2:) there are VHF, UHF and 800/900mhz versions and can all have different & software-upgradable features.
3:) the sets are ‘banded’ so a 450-482mhz set needs more work to convert than a 403-440mhz set.
4:) there are 15w-25w  25-40w  and 110w versions, dual head and portable versions (Astro Saber)
5:) there are different front panel versions and they have plenty of channels too.

6:) they are FM and digital, they scan,  have high/low power, are a solid TX, a good sensitive RX.
7:) plenty of well documented information and the community has done much research already
8:) it stops you getting bored with Amateur radio.

9:) professional quality radio and codec, making other ham stuff look like cheap plastic Argos PMR 446 toys.
10:) will make you more attractive to the opposite sex
11:) become an 1337 experimenter again !

 All work, text and images © GB7MB

Get your DMR-MARC ID

If you want to use Amateur DMR-MARC repeaters, you need a ID number, its free, easy and just identifies you to the network,

so go here, agree you wont use AGC (or we’ll send the boys ’round) or ARS, and its upto you what to type when it asks what is your nearest DMR repeater, you can ‘try’ to put GB7MB, but as the repeater isn’t on-air yet its probably better to put  ‘GB7HM’- in N. Wales, (same site as GB3CR up on Hope Mountain) if you get a query, as the DMR-MARC network wont know us yet.

All work, text and images © GB7MB