Skip to content
POCSAG Multichannel Realtime Decoder
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


POCSAG Multichannel Realtime Decoder

Copyright (c) 2012 iZsh - izsh at

License Information

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see


The usage should be self-expanatory.

You can either read the samples from a file or from an GrOsmoSDR compatible device (USRP, FunCube dongle, RTL-based devices etc.)

If you read the sample from a RTL-sdr device, make sure you offset your center frequency from the channel frequencies you read (to prevent from the "DC effect").

In the GUI:

  • you can enter multiple channel frequencies to simultaneously decode them.
  • to visualize a given channel using the QT sinks you just select it from the list.
  • you can remove a given channel by selecting it and pressing the backspace key
  • you can adjust the center frequency at any time

When starting the software from the command line, you can specify many default arguments. One of particular interest is the '-C/--channelsfile' option: it enables you to pre-load at startup, one frequency per line (engineering notation accepted), a list of channel frequencies to monitor.


The application was tested with gnuradio 3.6.2 but a lower version might work. It also (mainly) depends on:

It tries to use as much as possible the "new" features (e.g. message passing and gnuradio blocks are implemented entirely in Python) to ease the prototyping and developement and to show that C++ is not always a mandatory evil with gnuradio.

A special note for MacOS X users/developers: to compile gnuradio without hitting the annoying python "mismatched version" crash (when running gnuradio-company for instance), use the following command line (assuming you are using macports for most dependencies):

% mkdir build
% cd build
% cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/local -DPYTHON_INCLUDE_DIR=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Headers -DPYTHON_LIBRARY=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib ..


POCSAG Multichannel Realtime Decoder -- iZsh (izsh at
usage: [-h] [-i INPUT_FILE] [-l] [-o OUTPUT_FILE] [-c FREQCORR]
                     [-f CENTERFREQ] [-r SAMPLERATE] [-s SYMRATE]
                     [-C CHANNELS_FILE]

optional arguments:
  -h, --help            show this help message and exit
                        read the samples from a file (default: None)
  -l, --loop            when reading from a file, loop the samples (default:
                        save the samples to a file (default: None)
  -c FREQCORR, --freqcorr FREQCORR
                        set the frequency correction (ppm) (default: 0.0)
                        set the center frequency (default: 0.0)
  -r SAMPLERATE, --samplerate SAMPLERATE
                        set the samplerate (default: 1000000.0)
  -s SYMRATE, --symrate SYMRATE
                        set the symbol rate (default: 1200)
                        read an initial channels list from a file (default:


You can’t perform that action at this time.