Le POCSAG est un protocole utilisé par les récepteurs de type Alphapage.
Il est utilisé chez les radioamateurs, dans les entreprises privées, et pour les services de secours.
Dans cette article, je décris comment décoder du Pocsag uniquement en ligne de commande sous linux.
La puissance de linux peux nous permettre d’enregistrer l’activité dans un fichier texte et ensuite vous pourrez y ajouter n’importe quel événement suite à la réception d’un mot ou d’un type d’alerte.
Le matériel nécessaire est simple, pour les tests, j’ai utilisé une clef SDR des plus simple et un Raspberry Pi.
J’ai téléchargé la version Bullseye et mis en oeuvre les lignes de commande ci-dessous.
Voici l’ensemble de la documentation afin d’installer et d’utiliser tout cela.
Installation Raspberry Pi Os ( Legacy 64 bit) sans Desktop sur une carte SD.
mise à jour du systeme:
sudo apt-get update
sudo apt-get upgrade
installation de git:
sudo apt install git-all
Do you want to continue? [Y/n] Y
Installation cmake
sudo apt-get -y install cmake
création d’un dossier rtl:
mkdir rtl
cd rtl
Telechargement de multimon:
git clone https://github.com/EliasOenal/multimon-ng.git
cd multimon-ng/
mkdir build
cd build
cmake ..
make
sudo make install
Installation de rtl-sdr:
sudo apt install rtl-sdr
Utiliser la commande sudo rtl_test -p afin d’obtenir la correction ppm à appliquer.
Il existe aussi Kalibrate comme autre solution: https://github.com/steve-m/kalibrate-rtl
sudo rtl_test -p
real sample rate: 2047704 current PPM: -144 cumulative PPM: -144
real sample rate: 2048097 current PPM: 48 cumulative PPM: -48
real sample rate: 2048091 current PPM: 44 cumulative PPM: -17
real sample rate: 2048089 current PPM: 44 cumulative PPM: -2
real sample rate: 2048097 current PPM: 48 cumulative PPM: 8
real sample rate: 2048265 current PPM: 130 cumulative PPM: 28
real sample rate: 2047927 current PPM: -36 cumulative PPM: 19
real sample rate: 2048097 current PPM: 48 cumulative PPM: 23
real sample rate: 2048091 current PPM: 45 cumulative PPM: 25
real sample rate: 2048092 current PPM: 45 cumulative PPM: 27
real sample rate: 2048264 current PPM: 129 cumulative PPM: 36
real sample rate: 2047926 current PPM: -36 cumulative PPM: 30
real sample rate: 2048101 current PPM: 49 cumulative PPM: 32
real sample rate: 2048258 current PPM: 126 cumulative PPM: 39
real sample rate: 2047921 current PPM: -38 cumulative PPM: 33
real sample rate: 2048101 current PPM: 49 cumulative PPM: 35
real sample rate: 2048106 current PPM: 52 cumulative PPM: 36
real sample rate: 2048089 current PPM: 44 cumulative PPM: 36
real sample rate: 2048082 current PPM: 40 cumulative PPM: 36
real sample rate: 2048102 current PPM: 50 cumulative PPM: 37
real sample rate: 2048090 current PPM: 44 cumulative PPM: 37
real sample rate: 2048109 current PPM: 53 cumulative PPM: 38
real sample rate: 2048076 current PPM: 37 cumulative PPM: 38
real sample rate: 2048096 current PPM: 47 cumulative PPM: 38
real sample rate: 2048095 current PPM: 46 cumulative PPM: 39
real sample rate: 2048101 current PPM: 50 cumulative PPM: 39
real sample rate: 2048259 current PPM: 127 cumulative PPM: 42
real sample rate: 2047925 current PPM: -37 cumulative PPM: 39
Au bout d’un certain temps cela se stabilise, nous utiliserons la valeur 40
real sample rate: 2048097 current PPM: 48 cumulative PPM: 40
real sample rate: 2048093 current PPM: 46 cumulative PPM: 40
real sample rate: 2048114 current PPM: 56 cumulative PPM: 40
real sample rate: 2048073 current PPM: 36 cumulative PPM: 40
real sample rate: 2048101 current PPM: 49 cumulative PPM: 40
Voici la commande pour effectuer le test de réception:
sudo rtl_fm -f XXX.XXXM -s 22.05k -p 40 – | multimon-ng -a POCSAG1200 -f alpha -t raw /dev/stdin
Commande pour decoder vers un fichier /home/pocsag/pocsag.txt avec horodatage:
sudo rtl_fm -f XXX.XXXM -s 22.05k -p 40 – | multimon-ng -a POCSAG1200 -f alpha -t raw /dev/stdin | while IFS= read -r line; do echo “$(date ‘+%Y-%m-%d %H:%M:%S’) : $line”; done | tee -a /home/pocsag/pocsag.txt
remplacer XXX.XXX par la fréquence, ajuster p 40 par la valeur que vous aurez obtenu avec la calibration..
En option vous pouvez installer un lien vers une page web.
Installation serveur web:
sudo apt install apache2 -y
Création d’un lien virtuel:
sudo ln -s /home/pocsag/pocsag.txt /var/www/html/pocsag.txt
En tapant l’adresse <IP du Raspberry>/pocsag.txt vous pourrez accéder aux informations
ex: http://192.168.1.33/pocsag.txt
Pour aller plus loin avec le pocsag, stocker les messages, nommer les capcodes, filtrer etc, le tout sur un raspberry ” pagermon” que j’utilise depuis au moins 5 ans…
Il est possible d’utiliser plusieurs clefs et par exemple une en VHF, l’autre en UHF ( et même en scannant plusieurs canaux par exemple, multimon le permet)
https://github.com/pagermon/pagermon
Je ne connaissais pas, merci. Si vous souhaitez documenter avec des exemples ou les ligne de commande, j’ajouterai à cette article.