f0fyf

f0fyf

mardi 9 octobre 2018

Décodeur AFSK1200 sous linux (2)


J'avais parlé, il y a quelques temps déjà, de Qtmm, plus connu sous le nom d' "AFSK1200 decoder". Quelques om sont revenus récement vers ce billet et m'ont fait remarquer que malheureusement, la compilation ne fonctionnait pas, que certaines librairies de QT faisait défaut. J'ai donc pris le temps de revoir tout cela et de faire quelques modifications sur 4 fichiers allant servir à la compilation ( main.cpp / mainwindow.cpp / Makefile / qtmm.pro ).

!!! Cette méthode fonctionne uniquement avec Qt 5.0 et supérieur !!! 

samedi 25 août 2018

SDR# sous linux



Un ancien adpete de windows, habitué à SDR Sharp et n'arrivant pas à utiliser correctement Gqrx m'a demandé comment installer ce "gros" soft SDR pour son linux. La manipulation n'est guère compliqué mais pour ma part, je vous conseille quand même l'utilisation de Gqrx car avec Sdr#, j'ai remarqué pas mal de latence et les plugins tetra ou dsd ne fonctionnent pas vraiment comme il devraient. Mais vouloir faire travailler un soft sous un OS qui ne lui soit pas dédié ne promet pas toujours de bons résultats ..

dimanche 24 juin 2018

Script Pocsag vers fichier texte

Malgré le manque de temps en ce moment et comme le pocsag revient au goût du jour, avec le dapnet notamment, je me suis fait un petit script en python qui pourra devenir évolutif avec le temps. Pour l'instant, il récupère les données via la clé rtl-sdr puis place le tout dans un fichier en prenant soin de ne garder que l'essentiel. 
J'ai commencé par les pocsag des pompiers en VHF basse, à savoir le 85.955 Mhz mais en allant modifier la fréquence et le ppm de la clé, il est possible de décoder le réseau E-message sur 466 ou autre.
Les indispensables : 
Python  => 2.7 : https://www.python.org/

Voici donc le script en question :
#!/usr/bin/python
#coding: utf-8

import os
import sys, getopt
import subprocess
import collections
import time

print "***********************************"
print "*                                 *"
print "* Décodage pocsag Sapeur-Pompiers *"
print "*                                 *"
print "***********************************"

# creation d'une variable qui va stocker tous les messages identiques
ident = collections.deque(maxlen=10)
#on efface l'écran
os.system("clear")
# on lance le programme multimon ( on converti au bon format pour multimon via sox )
flux = "rtl_fm -f 85.955e6 -M fm -s 200000 -r 48000 -p 66 - | sox -traw -r48000 -es -b16 -c1 -v1 - -traw -es -b16 -c1 -r 22050 - | multimon-ng -a POCSAG512 -f alpha -t raw /dev/stdin -"
# on affiche la commande du programme
print flux
# on lance le traitement du programme
mm  = subprocess.Popen(flux,shell=True,stdout=subprocess.PIPE)
# dès qu'un message est reçu, il est traité
while mm.poll() is None:
  msg = mm.stdout.readline()
# si le message ne contient aucun texte, rien ne se passe
  if "Alpha: " not in msg:
   continue  
# sinon on continue la procédure
# on enlève tous les messages contenant des NUL ou vides
  msg = msg.replace("<NUL>", "")
# on récupère le message seul situé après la balise Alpha
  msg = msg.split("Alpha:",1)[1]
# on supprime l'espace devant le message
  msg = msg.strip()
# Si le message fait moins de 3 caractères, rien ne se passe
  if len(msg)<3:
   continue
# sinon on continue
# on vérifie que le message n'est pas déjà passé en comparant les 15 derniers caratères à notre variable ident
  if msg[-15:] in ident:
# si les caractères sont déjà présent, rien ne se passe
   continue
# sinon
# on va stocker les 15 derniers caractères du message dans notre variable
  ident.append(msg[-15:])
# on affiche notre message
  print msg
# on ouvre notre fichier poc.txt en mode ajout de texte
  fichier = open("poc.txt", "a")
# on écrit le message reçu
  fichier.write(msg+"\n")
# on referme notre fichier
  fichier.close() 
# et on revient au début du traitement 
Avant toute chose, il est important de créer dans le répertoire ou le script sera sauvegardé, un fichier vide nommé poc.txt . En rouge dans le script, se trouve la fréquence d'écoute et le ppm de la clé, à modifier à votre convenance.

En considérant que le script est sauvegardé sous le nom de pager.py , pour le lancer, on ouvre un terminal et l'on va entrer la commande :
> python pager.py
Le fichier poc.txt se remplira alors par le décodage effectué par multimon-ng

(112DEPART) VSAV 01 / CHUTE D'UNE PERSONNE DE - 3 M(112DEPART) DECLENCHEMENT SYSTEMATIQUE DEPART : VSAV 01 - CHUTE D'UNE PERSONNE DE - 3 M (ANNECY - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
(800DEPART) VLM 02 / DIFFICULTE RESPIRATOIRE SEVERE
(198DEPART) VTU HR 01
(800DEPART) DECLENCHEMENT SYSTEMATIQUE DEPART : VLM 02
(198DEPART) 282DEPART
(198DEPART) DECLENCHEMENT SYSTEMATIQUE DEPART : VSAV 01
(112DEPART) VSAV 01 / MALADIE
(112DEPART) DECLENCHEMENT SYSTEMATIQUE DEPART : VSAV 01 - MALADIE (EPAGNY METZ-TESSY - ***************************** ) 

les adresses sont volontairement enlevées 

On pourra très bien envisagé par la suite, l'envoi des données, non pas vers un fichier mais ver un téléphone via un sms (via la commande urllib.urlopen ) ou vers une adresse mail ...

Petit rappel, gardez les décodages pour vous et ne les divulguez pas  :)  

 

lundi 7 mai 2018

PLSDR, récepteur SDR simplissime

Dans la même lignée que CubicSDR ou GQRX, voici un petit récepteur SDR vraiment très simple crée par Paul Lutus https://arachnoid.com/PLSDR/index.html basé sur une architecture Python. Son site est d'ailleurs gorgé d'infos diverses toutes aussi interressantes et reprends un minimum à savoir sur les ondes et les modes .. à visiter sans modération .. 
Concernant PLSDR, celui-ci fonctionne sous Linux mais également sous windows et reprends presque tous les types de SDR disponibles.

On commence par installer les pré-requis :

$ sudo apt-get install gnuradio gr-osmosdr python-pyqt5

Puis on récupère les sources :

$ git clone https://github.com/lutusp/PLSDR.git

Ensuite, on installe l'icône du programme :

$ cd PLSDR/scripts/
$ sudo sh create_linux_desktop_icon.sh 
 

Et voilà, Il ne restera plus qu'à lancer le programme en cliquant sur l'icône crée sur le bureau et vous devriez alors voir apparaître cette fenêtre :


Avant tout, une petite configuration de base s'impose pour que tout fonctionne bien :
  • Dans l'onglet Control
Device : votre type de sdr
LNA Gain : au minimum à moitié
IF Bandwidth : Mettre sur M ( médium ) pour commencer
  • Dans l'onglet Configure  
Core PPM : la valeur du ppm de votre SDR
Sample Rate : 2 Mhz pour un petit stick rtl classique
Audio Rate : Celui de votre carte audio
Audio Device : votre carte son


Vous pouvez maintenant cliquer sur Start/Stop pour démarrer votre SDR et rélger l'AF Gain à votre convenance.
Pour le traitement des signaux ( CW/AfskDstar ...etc ...) il faudra passer par un pont de la carte audio sur le logiciel de décodage car il n'existe pas pour l'instant de transfert udp mais comme PLSDR en est à ses début, il ne peut que s'améliorer avec le temps !


Edit : Une personne a fait remarquer que cela ne fonctionnait pas, que les sources n'étaient pas à jour, que cela fait 10 ans que ce monsieur est sous linux .. etc .. 
Ma version de Python est la 3.6.5 sous Xubuntu 18.04 Lts
Petite capture vidéo de la méthode ci-dessus ( sauf pour la création de l'icone ) pour montrer à ce monsieur que tout fonctionne :

 

dimanche 8 avril 2018

Un peu de FT8

Depuis quelques jours, j'ai mis en place sous les combles, un petit rapsberry-pi avec MSHV installé dessus raccordé à un petit récepteur 2m USB câlé sur 144.175 Mhz, le tout relié à un simple doublet vhf et connecté à PskReporter. Je ne pensais pas avoir de si bons résultats...  





Comme je vais avoir besoin de mon rspi pour d'autres utilisations, le système ne sera pas en place 24/24 mais vous pouvez toujours m'envoyer un petit mail pour que je mette tout en route afin que vous puissiez faire quelques essais :) 




mardi 3 avril 2018

Réception ISS en SSTV


http://www.ariss-f.org/


Ces deux derniers jours, l'ISS a envoyé des images SSTV et il devrait y en avoir d'autres du 11/04 au 14/04.
J'ai utilisé pour la réception :
  • Yaesu FT897 ( 145.800Mhz - NFM )
  • Groupement 2x4 élements croisés 
  • Gpredict pour le contrôle de l'antenne et du TRX
  • Qsstv pour le décodage ( mode PD120 )

dimanche 25 mars 2018

HamRadioDeluxe et Linux




Des personnes se retrouvent confrontés à de petits désagréments lorsqu'ils choisissent de passer sous Linux en gardant certains soft windows. La gestion des ports com n'a plus rien à voir. HamRadioDeluxe est pour certains, irremplaçable ( alors qu'il y a FLDigi et sa suite ) et la plupart du temps, la reconnaissance du trx est confronté au problème d'accès aux ports.
La manipulation reste pour autant, toute simple ..