f0fyf

f0fyf

mercredi 2 janvier 2019

Mise à jour WSJT-X 2.0 sous Debian Stretch



J'ai finalement remis au placard mon ancienne xubuntu pour péférer une Débian Strech, la dernière version stable. J'en ai donc profité pour faire un peu de tri et remettre à jour tous mes logiciels radio. 
Comme c'est souvent le cas, Wstj-x a encore fait des siennes et la migration vers la nouvelle version avait du mal à passer suite à un problème lié à Hamlib3. Le problème peut être résolu en mettant les mains dans le moteur et en modifiant la version d'hamlib ainsi que les sources et Makefile. C'est la version un peu barbare mais en cherchant bien, j'ai remarqué certaines requêtes qui entrainaient le plantage de la compilation et au final, j'ai réussi à compiler correctement, sans avoir à modifier quoique ce soit. Voici la petite marche à suivre : 

- On récupère les sources ici : https://physics.princeton.edu/pulsar/k1jt/wsjtx.html tout en bas ou en cliquant directement ici : wsjtx-2.0.0.tgz

- On récupère également les prérequis :
sudo apt-get -y install git cmake build-essential subversion asciidoc gfortran-6 qtbase5-dev qtmultimedia5-dev libqt5multimedia5-plugins libqt5serialport5-dev libfftw3-dev libusb-dev libudev-dev libasound2-dev alsa-utils portaudio19-dev libpulse-dev libportaudiocpp0 libtool texinfo asciidoctor

- On décompresse le fichier :
$ tar xvzf wsjtx-2.0.0.tgz

- On réalise la compilation du projet avec ces étapes :
$ cd wsjtx-2.0.0 && mkdir build
$ export FC=gfortran-6
$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

Si tout c'est bien déroulé, wsjtx est maintenant prêt à être lancé.


dimanche 25 novembre 2018

Nouvelle antenne filaire

Depuis quelques semaines, mes réceptions en HF étaient devenues totalement catastrophiques : très mauvaise réception, énormément de parasistes sur toutes les bandes ... bref, pas génial pour les longues soirées d'hiver qui arrivent. J'utilisais jusqu'à présent et depuis maintenant 4 bonnes années, une W3DZZ de fabrication maison, dans les combles de la maison. J'en était pleinement satisfait malgré les creux de fonctionnement sur certaines bandes, en particulier le 18 et 21 Mhz. 

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 :)