RTL-SDR Tutorial: POCSAG Pager Decoding

The rtl-sdr combined with SDRSharp, and a POCSAG/Flex capable decoding application can be used to decode pager messages. With this setup you can receive pager messages from all pager users on the system.

If you don’t know what a pager is, since they are now uncommon, here is a brief explanation from Wikipedia:

A pager is a wireless telecommunications device that receives and displays numeric or text messages, or receives and announces voice messages.

Not many people use pagers these days with mobile phone text messaging being used more, but pagers are still popular with doctors, some fire and ambulance agencies and various service companies, as they tend to be more reliable and have greater coverage.

In most countries it is perfectly legal to receive these messages, as they are plain text unencrypted, but it is illegal to act on the information received. Please respect your local laws.

Examples

Here YouTube user Superphish shows 5 minutes of pager decoding using HDSDR, PDW and an rtl-sdr.

5 Minutes of Pager Traffic with RTL-SDR (RTL2832), PDW and HDSDR

Here YouTube user nerdymark shows 18 minutes of pager decoding using SDRSharp, PDW and an rtl-sdr.

18 Minutes of Pager Traffic 2012 July 12 San Jose rtlsdr sdr# pdw flex

Tutorial

While directed at the rtl-sdr, this tutorial may also be useful for use with other software defined radios such as the Funcube dongle and HackRF, or even traditional hardware radios with a discriminator tap.

POCSAG Waterfall Image

Since pager signals are usually transmitted at a very strong power, usually almost any antenna will work to receive them, even the stock antenna that comes with the dongle. Pager frequencies differ among different countries. Usually they will be anywhere from 137 – 160 MHz, around ~450 MHz, or around 900 MHz. Check radioreference.com or Google for frequencies in your area.

Pagers use POCSAG or Flex encoding, and the signals waterfall will look something like the signal on the left. They also have a distinctive sound on NFM, and a sound sample is also shown below.

For this tutorial, you will need to have an rtl-sdr dongle set up and working with SDRSharp. We will assume you have this much done already. If you do not, visit the Buy RTL-SDR page, and then the Quickstart guide.

You will also need to have an audio piping method installed and set up. Audio piping will allow the audio from SDRSharp to be passed to a decoding program. You can use either windows stereo mixVB-cable (free) or virtual audio cable (paid with trial version).

The sampling rate of your audio piping method must be set to at least 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. In Windows XP this setting may not be available, but it should be okay without setting it.

Sound Properties

Also, in your SDRSharp folder, open SDRSharp.exe.Config in a text editor such as Notepad, and ensure the key minOutputSampleRate has a value of 48000 such that the line reads as <add key=”minOutputSampleRate” value=”48000″ />.

Set SDRSharp Sample Rate

Now, to decode the POCSAG or Flex signals, you need need to download and install a free program called PDW, which can be downloaded from this page, then follow these steps.

  1. Open SDRSharp and set the audio piping method to the one you will use under the Audio Output drop down box, and then press Play.
  1. Tune to a pager POCSAG/Flex signal. Set the receive mode to NFM, filter bandwidth to 12500 Hz, filter order to 10, and turn squelch OFF, and filter audio OFF. Adjust the RF gain settings under the Configure menu until good reception is achieved.
  1. Open PDW. You may initially receive some errors, but they can be safely ignored. Go to Options -> Options, and Click Enable Pocsag Decoding, and ensure the 512, 1200 and 2400 boxes are all checked. Also, ensure Enable Flex Decoding is enabled and that the 1600, 3200 and 6400 boxes are all checked. Press OK.

PDW Enable POCSAG

  1. Go to Interface -> Setup. Enable the Soundcard checkbox, set the Configuration to Custom, and choose your audio piping method in the Soundcard drop down box. If you only have one audio piping method enabled in the Windows recording properties, it will automatically choose that method. Press OK.

PDW Soundcard Interface Setup

  1. Go to Monitor, and ensure POCSAG/FLEX is ticked.
  1. Now, if everything is set up correctly, the pager audio from SDRSharp should be being sent to PDW. In the top right hand corner of PDW, there should be a volume gauge. You will need to adjust the AF gain volume settings in SDRSharp, and/or the Windows volume settings so that the volume meter goes up when a pager signal is sent.

PDW Decoding

Other Decoding Software

MultimonNG is a Linux based decoder which is lightweight enough to run on a Raspberry Pi using rtl_fm.

Some Tips

  • Pager signals are generally very strong, and so almost any antenna can pick them up. However, if you live far away from the transmitter a better antenna matched to the pager frequency you want to monitor may be required.
  • If reception is very poor, you may get some garbled messages in the PDW window.
  • Since pagers can be so strong, you may actually need to reduce the RF gain to clearly discern between a real pager and an image. Reducing the gain may also help decoding.

9 comments

  1. Thatsmy Name

    I tried to do the above, but couldn’t get the results. I purchased a USB dongle radio, the R820T. I installed the drivers on a Win XP computer, using zadig. Then installed and fired up SDRSharp and did all the settings as described above. Then I downloaded and installed the Virtual Audio Cable app (while the latest version is not free, their earlier version, V3 is free and I installed that). Finally, I installed the POCSAG decoder, and set it up as described. So, SDRSharp is running and showing the waterfall, and making the funny noises (just for test, I tried to tune to some local radio stations, but got nothing). I have 3 pagers on 3 different frequencies. I tried all 3 of them and always get similar behaviour. I see some changes on the signal when a page is sent to a pager sitting on my desk. The Virtual Audio Cable app also has some sound level monitoring, and those are also moving up and down. But the POCSAG decoder remains silent. It’s not getting (or not showing) anything. The needle on little sound level monitor icon in the upper right corner is constantly moving (even if SDRSharp is not running, so I think it’s just a fake gag), and nothing ever shows up in PDW. There are many settings to play around with, but I don’t even know where to start. For example, how do I know what’s the good setting for RF gain in SDRSharp? And what’s the good setting for AF Gain? Also, SDRShap doesn’t have a setting under sample-rate for 48000. It shows something like 3.2mps as the highest sample rate. Is that OK? Anywasys, if someone could help me on this here…

    • admin

      In PDW, did you set the soundcard to VAC? The image in the article shows Stereo Mix, but if you use another audio pipe like VAC, you’ll need to set it appropriately. Also, it seems like you’re hearing the pager sounds via your speakers. If you’re using VAC, you shouldn’t hear anything. Make sure the output audio device in SDRSharp is set to VAC.

      For RF gain, you want adjust it so that the pager signal level is high, but the noise floor (the height of the spectrum when there is no signal) is as low as possible. As you increase the gain there will be a point at which the noise floor starts to rise too much, stop before that point. Also, make sure the pager signal isn’t clipping off the top of the spectrum graph, reduce the gain if it is.

      You should be seeing your local radio stations though. If you’re not, either your RF gain was set at zero, your antenna is really bad or you got a bad USB dongle.

      There are two sample rates, one for the audio, and one for the RF signal. The one with MSps is the RF sample rate and should be set to 2.8 MSps or below, usually I use 2 MSps. At 3.2 MSps the dongle starts dropping samples, and might cause your decodes to fail. The 48000 one is for the audio, I show how to set it in notepad in the article, but that step can probably be skipped as it seems the windows sample rate settings take higher priority anyway.

      As for AF gain, you’ll just have to do some trial and error with it. AF gain is just a volume setting, and it depends on your Windows computer volume and your soundcard.

      Finally, you can always test your PDW setup by setting PDW to use stereo mix, and then playing the sample audio on this page. Stereo mix will pass the sample audio to PDW.

      • Thatsmy Name

        Thanks for your help. It’s working now. Being new to the radio part of the technology, I was lacking a lot of knowledge, which you filled me in with your reply. Basically, I was able to properly adjust the RF gain based on what you described. I also noticed that pages were showing up on a different frequency than what’s on the back of the pagers. It’s off by 0.04MHz. I noticed that every time I sent a page, I saw some “wave” activity a little away from where I had my radio tuned. When I tuned to that area, I started seeing stuff showing up. I also changed to virtual audio cable application to the free one (not the V3 of the paid software but another one you mentioned). Between these, I eventually got it working. Thanks for this article and a lot of kudo-s for you :)

        • admin

          Glad to hear you got it working. Yeah, the RTL-SDRs aren’t precision instruments and can be off by a few KHz’s. You can correct that either by tuning manually as you did, or by setting the PPM offset which is under the RF gain.

          • Thats myname

            Now that I have it running for the last 2 days, I see that I still need to figure something out about it. When I tune the radio to a frequency where I start seeing my coworkers messages showing up, I do have specific instances where some pagers messages are not showing up. All the pagers I’m monitoring are on the same frequency in theory, but I can’t seem to tune it so that all pagers’ messages show up. Sometimes I see many but missing some pagers. Then I fiddle with the tuning and now I see the pager I was missing, but now some other pagers’ messages are not showing. Any idea about that? Do I have a low quality antenna maybe? Or is it something in PDW?

            • admin

              Try setting the RF sample rate lower, to maybe 1MSps. You might also try increasing or decreasing the filter bandwidth. Try and get the tuning centered on the pager signals as much as possible by zooming in. Check that the volume level is not too loud such that it clips the maximum, or too quiet by looking at the volume level meter in Windows.

              Are there any RF noise sources showing up near the pager signal that could be causing trouble? Do all the pagers come in with good signal strength?

  2. Pingback: HackRF Lives! | Geoff Nicol
  3. Pingback: VHF/UHF fire dispatch - The RadioReference.com Forums

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=""> <strike> <strong>