Décodage POCSAG via Gqrx ( Linux )

Depuis quelques temps, je cherchais un moyen de décoder les trames Pocsag utilisées par E-Message pour son service de messagerie sur ‘pagers’ personnels. tout en ayant une vue sur le spectre avoisinant, le tout, avec ma petite clé rtl.
Les fréquences sont généralement :
  • 466.025 Mhz
  • 466.050 Mhz
  • 466.075 Mhz
  • 466.175 Mhz
  • 466.20625 Mhz
  • 466.23125 Mhz
La méthode la plus facile consiste à entrer une ligne de code dans une fenêtre « terminal » afin de décoder plusieurs fréquences à la fois, et éventuellement d’avoir la possibilité disposer d’une vue « scope » afin de bien étudier les variations du signal reçu. Pour cela, il faut disposer, en plus des utilitaires de gestion du rtl, du logiciel multimon que l’on peut trouver à cette adresse : https://github.com/EliasOenal/multimon-ng . Un fois, téléchargé, on extrait le contenu puis on l’installe avec ces quelques lignes de commande :
>cd multimon-ng
>mkdir build && cd build
>qmake ../multimon-ng.pro
>make
>sudo make install
Le logiciel multimon est maintenant installé. Pour l’utiliser directement, il faudra ouvrir un terminal et entrer la ligne de code suivante ( pour décoder du pocsag par exemple ) :
>rtl_fm -f 466.050e6 -s 200000 -r 48000 -p XXX | multimon-ng -a POCSAG1200 -f alpha -t raw /dev/stdin
XXX correspond au décalage ( en ppm ) de votre clé .. que vous pouvez trouver facilement à l’aide de Kalibrate
Au bout de quelques instants, vous devriez commencer à décoder quelques trames. Pour ma part, cette méthode me donnait de piètre résultat car je devais, soit être sur une fréquence décalée, soit sur une fréquence peu utilisée. C’est pourquoi, j’ai décidé d’utiliser Gqrx afin de voir où était les trames et de jouer avec le gain du rtl.
Pour installer, Gqrx, vous aurez besoin de beaucoup de dépendances mais si gnu-radio et les librairies rtl-sdr d’osmoSDR sont sur votre machine, tout devrait fonctionner. Ouvrez un terminal et entrez ces commandes :
>git clone https://github.com/csete/gqrx.git gqrx.git
>cd gqrx.git
>mkdir build && cd build
>qmake ..
>make
Pour lancer Gqrx, dans une fenêtre terminal, lancez simplement la commande gqrx.
Vous devrez configurer votre rtl ( généralement, tout est mis par défaut ) dans le premier écran. Afin de limiter la gourmandise du logiciel en ram, ne mettez pas une bande passante trop importante .. limitez à 2Mhz
Si tout est bien configuré, lancez la réception en cliquant sur le bouton marche/arrêt en haut à gauche  :

Vous devriez alors voir apparaître le signal reçu avec en dessous, le waterfall des 2Mhz de bande passante :

Il va falloir maintenant récupérer le son de Gqrx et le réinjecter à multimon. Pour cela, juste en dessous de la barre de gain ( à droite ) se trouve un petit icône avec 2 petits ordinateurs dessus. Il faudra cliquer dessus pour activer l’envoi du son vers le port UDP localhost ( 7355 par défaut ), réglages que l’on retrouve en cliquant sur l’icône tout à droite, avec des outils dessus et en allant dans l’onglet Network :

Tout en gardant Gqrx ouvert, lancez une seconde fenêtre terminal pour exécuter multimon en tapant la commande un peu barbare suivante :

>nc -l -u 7355 | sox -t raw -esigned-integer -b16 -r 48000 – -esigned-integer -b16 -r 22050 -t raw – | multimon-ng -t raw -a SCOPE -a POCSAG512 -a POCSAG1200 –a POCSAG2400 -f alpha –

Bien tenir compte des majuscules, espaces, tirets … En fait, cette commande va par l’intermédiaire de sox, transformer ce qui arrive en localhost en signal reconnaissable par multimon afin d’être décodé soit en pocsag 512, soit en pocsag 1200 ou 2400. Au bout de quelques instants, vous devriez déjà recevoir des données du genre :
multimon-ng  (C) 1996/1997 by Tom Sailer HB9JNX/AE4WA
(C) 2012-2014 by Elias Oenal
available demodulators: POCSAG512 POCSAG1200 POCSAG2400 FLEX EAS UFSK1200 CLIPFSK FMSFSK AFSK1200 AFSK2400 AFSK2400_2 AFSK2400_3 HAPN4800 FSK9600 DTMF ZVEI1 ZVEI2 ZVEI3 DZVEI PZVEI EEA EIA CCIR MORSE_CW DUMPCSV SCOPE
Enabled demodulators: POCSAG512 POCSAG1200 POCSAG2400 SCOPE
POCSAG1200: Address: 1008831  Function: 3
POCSAG1200: Address: 1008831  Function: 3
POCSAG1200: Address: 1008831  Function: 3
POCSAG1200: Address: 1008831  Function: 3
POCSAG1200: Address: 1008831  Function: 3
POCSAG1200: Address: 1008831  Function: 3
POCSAG1200: Address: 1008831  Function: 3
POCSAG1200: Address:   34940  Function: 3  Alpha:   MERCI DE RAPPELER LE STANDARD
POCSAG1200: Address: 1008831  Function: 3
POCSAG1200: Address: 1008831  Function: 3 
Pas de panique si rien ne se passe au début, il faudra peut-être aller jouer avec le filtre au dessus du mode de réception de Gqrx et lui donner une valeur plus large ( user )

La suite de l’artcle à lire  Décodage POCSAG via Gqrx ( Linux )