This week we used our SDRs and gqrx to listen to different frequencies. There’s some playing around required with squelch and gain before you can actually listen to something. I looked at radio reference to find radio frequencies used for communications in NYC. These communications happen on narrow FM. If you type in the frequency and then move the red receiver bar around, you can listen in on some usually mundane but sometimes funny or interesting stuff. I wondered whether the “hardware freq,” which shows up under “receiver options” and changes when you match the red receiver bar up with where you see information on the waterfall, was supposed to match up with the publicly available frequency? Are these just separate channels?
I found a number of organizations’ communications frequencies are publicly available, but often the “mode” they use is P25 “a digital voice specification used by first responders worldwide” according to this person on youtube. Tuning in to the frequencies posted publicly, it was clear the transmissions I was hearing sounded like those demonstrated in the youtube video, which made me hopeful that I had at least identified them correctly.
After doing some research I found that there’s and open source software project, OP25, that can demodulate these communications.
Going to try and get OP25 working in VirtualBox so we can play with OP25 even on a Windoze system. Here’s the general plan:
1. Install Ubuntu on Virtual Box
2. Install GNU Radio
3. Install OP25
4. Plug in my RTL SDR dongle, configure OP25 accordingly and see if it works.
From the radio reference forum.
I tried downloading OP25 using their installation instructions, but I couldn’t launch gnuradio by typing gnuradio into terminal which had be stumped for a while. I tried downloading gnuradio from their site, which was perhaps unnecessary, before coming to the understanding that gnuradio doesn’t have a gui interface–to open something resembling the gui interface I had seen the videos/tutorials I actually had to enter: $ gnuradio-companion. This seems like a non-trivial point! It’s important to know what a thing is, not just that you “need” it:
It’s extremely useful. However, there are ways to use GNU Radio without being able to code. First, there’s the GNU Radio Companion, a graphical user interface similar to Simulink. It allows you to create signal processing applications by drag-and-drop. Also, GNU Radio comes with a set of ready-to-use tools and utility programs. These serve to manage the most basic operations, such as recording RF signals and performing spectrum analysis. If this has sparked your interest, perhaps have a look at the beginner’s guide how to use GNU Radio.
If you want to extend GNU Radio (i.e., add new functionality), however, then you must write code. For creating applications that are too complex for the GNU Radio Companion, Python is the easiest way to go. For performance-critical code, you should write C++ code.
From the GNU Radio wiki
Once opened, I realized I had to write a “flow”/program and got stuck. There are tutorials so perhaps I will be able to write a functional program soon.
After all of this and ubuntu yelling at me because I only had 200mb of memory left on my virtual box, I realized rtl-sdr.com also has a tutorial on decoding digital voice, which was very helpful in understanding more broadly what P25 effectively is, and the different ways of listening to any “unencrypted digital radio voice conversations.” The tools they suggest are: RTL-SDR software defined radio combined with SDRSharp and a program called “digital speech decoder” (DSD). They also note “The most common digital speech codec is APCO P25, which DSD is able to decode,” and, regarding encryption: “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.”
I’m not sure if this second method is a better solution?