Listening to Trunked Radios with One RTL-SDR

Usually to listen to trunked radio systems, two RTL-SDR dongles are required. One for decoding the trunking control channel and another for listening to the audio channel. However if the audio channels are within the same chunk of received bandwidth as the control channel it is possible to use just one dongle to follow trunked conservations.

Recently Pawel of pewusoft wrote in to to let us know about a tutorial he uploaded showing how to get trunking to work with just one RTL-SDR dongle. His method uses Unitrunker and SDR# together with the AuxVFO plugin and a new plugin that he wrote for interfacing with Unitrunker.

Although there is already a Unitrunker interface plugin for SDR#, Pawel wrote a new plugin based on serial port commands as he found that the original interface plugin did not work properly for him.

Unitrunker Serial Port Interface SDR# Plugin
Unitrunker Serial Port Interface SDR# Plugin


  1. Brandon

    I’m stuck. I can’t get any sites to pop up in Unitrunker. I was able to do everything exactly as the instructions said except for the VAC sample rate. Whenever I set the sample rate to 96000-96000 I get and unknown exception when I start my RTL dongle in SDR#. The Discriminator in Unitrunker also said “could not sample wave input” when my VAC was set at 96000 either. Everything appears to work without error with VAC at 22050 – 96000, but setting my frequency in Aux never yeilds any sites in Unitrunker. I’m brand new to SDR. What am I doing wrong here?

    • Jsherman

      change only the second one (not the first one) and then set it to 96000 hz in Windows Audio settings. Has to do with how Windows 10 doesn’t want to sample it at 96000 hz via virtual audio cable

  2. unitrunker

    Native support of Realteks with the R820T tuner was added to Unitrunker a while back. Release 31 will support multiple VCOs – for AirSpy and RTL sticks with the R820T tuner.

  3. Emily Taylor

    Cheap SDRs aren’t new anymore but still suck so bad on the software side. Always gotta do stupid clunky stuff. SDR# or some program should just have it all already like uniden scanners do these days.

  4. BTJustice

    This seems to work kind of OK but it is annoying as hell. Under Control, I had to additionally check the boxes for P25, ProVoice, and VSELP. After doing that, this tutorial began to work for me. What is annoying about it is that after a transmission, it parks back on the control channel so you have to listen to the annoying sounds of the control channel when there are no transmissions.

    • BTJustice

      Alright I misread the directions a little. You don’t need to set the control frequency in Unitrunker so instead set it to something quiet. Set the VFO to the control frequency then go to the quiet frequency. As long as the signal frequency is in the range of what is seen, it will tune it.

    • BTJustice

      Maybe I can clarify the directions for others assuming you have SDR# and Unitrunker installed already and both are currently closed…

      1) Open the Virtual Audio Cable Control Panel as Administrator. There is probably one cable already there. A 1 should be at the top left next to Cables. Change this to 2 and click SET to the right. You should now see Cable 2 on the list. Click once on it so it is highlighted. Change the SR values above to both 96000 and click SET on the right side of the window. You can now close VACCP.

      2) Go to the tutorial’s website and download com0com. MAKE SURE to get the proper version (I had to use the Win 8.1 64-bit link for Windows 7 64-bit). Open the file with 7-zip and extract the files within it to a folder you can easily remember the location of (I used “C:\com0com”). Go to that folder and double-click on “setupg.exe”. Allow drivers to be installed if asked. The “Setup for com0com” window will appear. Click the “Add Pair” button. There will be a new pair called “Virtual Port Pair 1”. Left-click once on it and change the ports to COM10 and COM11. Click APPLY then close the window.

      3) Install the AuxVFO and the author’s Serial plugins into SDR#. Open SDR# and verify they are there. Click the Start button. Tune to the Control frequency of the system you want to follow. Under Aux VFO-1, change the output to your Line 2 Virtual Audio Cable, check enable, and click SET. Under SerialController, change the COM port to COM10 then check the enable box. Tune to a frequency close to the control frequency which is quiet and unused. Close SDR#.

      4) Open Unitrunker and click the RECEIVERS tab at the bottom. Hopefully nothing is listed already. Click the + and then click the Signal button. Change Audio Input to Line 2 Virtual Audio Cable. Under Decode, check all the boxes (OpenSky cannot be checked). Close the window and you should see a Signal receiver listed. Click the + again and then click the Control button. Change Model to AR-ONE. Under Control, set Park to your quiet frequency and check the boxes in front of P25, ProVoice, and VSELP. Close the window and now you should see a second receiver listed. Close and reopen Unitrunker. Both receivers should say they are running.

      5) Open SDR# and click Start. Make sure you are tuned to your quiet Park frequency and MAKE SURE it is CENTERED on the Spectrum Analyzer. Under Aux VFO-1, check Enable. You should see a yellow line going through the Control frequency right next to your quiet Park frequency.

      If all is well, you should start seeing the frequency change to whatever the trunk group is using then return back to the Park frequency in the middle of the Spectrum Analyzer when nothing is being broadcasted.

  5. Tiberian

    The one thing that’s frustrated me so far with SDR (mainly RTL-SDR using R820T sticks since I try to do things “on the cheap” instead of paying for some seriously more experience hardware) is trying to monitor trunked communications efficiently. Since modern scanners (actual scanners like the Bearcat models or even the GRE/Whistler units) only have one tuner/VFO in them, obviously they’re capable of following trunked comms without issues – as I understand the technology to work, the control channel info that’s relevant going out to the units in the field is distributed by using sub-channel audio data (the very low frequency signaling audio) to tell those units which frequencies to switch to so they stay on their given talkgroups.

    Apparently it’s either not possible to do this with a single SDR tuner/RTL-SDR stick yet or perhaps no one has figured out how to code such a thing in software just yet. I know that Rick (the author of Unitrunker) has done an absolute ton of work over the years and I applaud him for his efforts just as I do everyone else involved with the booming SDR hobby as it now exists, but I’m still hoping that at some point some talented coding wizard will be able to create a trunk-tracking app that basically takes one SDR/RTL-SDR tuner/stick and turns it into an actual (and very useful) trunk-tracking “scanner” with the ability to hold on talkgroups if so desired and all those other cool things an actual handheld or base/mobile scanning receiver is capable of.

    If I had the money I’d find such a talented person and have ’em write such a thing up… 😉

  6. Dave

    So has anyone tried this, the tuturial is sorta hard for me to understand, maybe I need to research more on what the actual plugins do and what is going on.
    I need some kind of explaination of the process going on, because Im new to all of this I guess, but I can use computers and many types of operating systems.
    Anyone else trying this?
    I currently use two dongles and a splitter on antenna.

    • Jay Moore

      I haven’t done it myself; but I think I understand what’s going on.

      There was recently an AuxVFO plugin released for SDR#, which allows you to basically add a second “tuner” that can operate in the bandwidth being fed from the dongle. This means if your control and audio channels are in the same chunk of spectrum; you can now use a single dongle to do what you previously needed two for (of course; if the control channel and audio channels aren’t in the same chunk of space; you’ll still need two dongles).

      So what this tutorial basically does is have you set a second VFO to the control channel; feeding it’s audio output to virtual audio cable so it can be used by Unitrunker. Unitrunker is then sending serial commands over a virtual com port in to SDR#; which tunes the main VFO to the required audio channel, and feeds that back to unitrunker through another VAC to be decoded. This requires your control channels and audio channels to be in the same 2.8 mhz of space.

      Naturally, if you have two dongles already; you could adapt this process using two running copies; letting unitrunker control one of them.

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>