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.
dimanche 25 novembre 2018
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/
Multimon-ng : https://github.com/EliasOenal/multimon-ng
Voici donc le script en question :
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.#!/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
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 :
- Dans l'onglet Control
LNA Gain : au minimum à moitié
IF Bandwidth : Mettre sur M ( médium ) pour commencer
- Dans l'onglet Configure
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
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 ..
dimanche 4 mars 2018
PK232 et linux
J'ai ressorti du placard, mon vieux PK232, histoire de voir comment le faire revivre. Les systèmes d'exploitations ayant évolués depuis le célèbre DOS, il me fallait un petit programme permettant de piloter via usb, un port série. CuteCom, présent dans les dépôts ubuntu fait très bien l'affaire.
$ sudo apt-get install cutecom
mercredi 21 février 2018
Recevoir et décoder PicSat sous Linux
F4GKR, Sylvain a réalisé une petite application sous linux qui permet d'écouter et de décoder la télémétrie envoyée par le nano satellite PicSat .
Il s'agit de PicTalk, qui va écouter la fréquence beacon sur 435.525 Mhz puis décoder les paquets reçus afin de pouvoir les partager avec les concepteurs du satellite. Pour l'instant, le programme utilise les rtlsdr et sdrplay. Les funcubes sont bien pris en charge mais ne fonctionnent pas correctement.
Avant toute chose, il faudra installer les prérequis afin de pouvoir utiliser, c'est à dire :
- Python 3.5
- Spicy
- Numpy
- Request
- Hidapi ( 0.7 minimum )
- ZeroMQ
- Qt5
dimanche 28 janvier 2018
Premiers pas en VDL sous Linux
Auparavant, j'aimais bien faire de la réception d'Acars ( sortes de messages codés envoyés entre un avion et le sol ) en vhf. Depuis peu, je me suis lancé dans la réception VDL, quelque peu semblable à l'acars en général mais techniquement plus pointue car si les acars sont compris dans les données envoyées en VDL, celles-ci sont complétés par d'autres, utiles au sol.
Il existe 3 types de VDL mais le petit programme que je vais présenter décode le VDL 2 basé sur une modulation en D8PSK avec détection de porteuse. Je ne rentrerais pas dans les détails technique de ce mode, le web est fourni d'explications.
Pour écouter le VDL, il faudra caler le récepteur sur des fréquences comprises entre 136.7 et 137 Mhz avec des canaux de 25Khz
Il existe 3 types de VDL mais le petit programme que je vais présenter décode le VDL 2 basé sur une modulation en D8PSK avec détection de porteuse. Je ne rentrerais pas dans les détails technique de ce mode, le web est fourni d'explications.
Pour écouter le VDL, il faudra caler le récepteur sur des fréquences comprises entre 136.7 et 137 Mhz avec des canaux de 25Khz
Les deux fréquences les plus utilisées en Europe sont le 136.775 et 136.875Mhz. Pour les décoder, il faudra donc utiliser le petit soft de Thierry Leconte, vdlm2dec avec soit un petit Rtl soit un Airspy.
On récupère donc les sources :
>git clone https://github.com/TLeconte/vdlm2dec.git
On compile
>./vdlm2dec -r [numéro du dongle, si unique : 0] -p [valeur ppm] fréquence en Mhz
par exemple ./vdlm2dec -r 0 -p 62 136.775 136.875
Vous commencerez alors à voir les trames des avions vous survolant de ce genre :
[#1 (F:136.975 P:-14.6) 28/01/2018 16:03:27.463 --------------------------------
Response from Aircraft: 406ADF to 266677
Frame-S: Nr:1 RR
[#1 (F:136.975 P:-13.7) 28/01/2018 16:03:59.575 --------------------------------
Command from Aircraft: 4B17FE to 1090AA
Frame-I: Ns:1 Nr:3
unknown data
1b ff e1 |................|
[#1 (F:136.975 P:-14.2) 28/01/2018 16:04:03.458 --------------------------------
Command from Aircraft: 4073D0 to 23D837
Frame-I: Ns:2 Nr:7
unknown data
1b ff ca 1b 28 f6 41 00 24 19 60 03 3f 00 00 00 |....(.A.$.`.?...|
03 00 03 8c 08 00 00 00 03 00 00 00 0f 08 04 69 |...............i|
c5 cc 26 0f 60 03 3f 00 00 00 03 00 03 08 04 73 |..&.`.?........s|
39 d4 51 |9.Q.............|
Vous pourrez aussi, en ajoutant l'option -l envoyer les données vers un fichier qui se réinitialisera à chaque lancement du programme d'où la necessité de le copier à un autre emplacement après l'arrêt du programme.
On récupère donc les sources :
>git clone https://github.com/TLeconte/vdlm2dec.git
On compile
- pour un rtl : >make -f Makefile.rtl
- pour un airspy : >make -f Makefile.air
>./vdlm2dec -r [numéro du dongle, si unique : 0] -p [valeur ppm] fréquence en Mhz
par exemple ./vdlm2dec -r 0 -p 62 136.775 136.875
Vous commencerez alors à voir les trames des avions vous survolant de ce genre :
[#1 (F:136.975 P:-14.6) 28/01/2018 16:03:27.463 --------------------------------
Response from Aircraft: 406ADF to 266677
Frame-S: Nr:1 RR
[#1 (F:136.975 P:-13.7) 28/01/2018 16:03:59.575 --------------------------------
Command from Aircraft: 4B17FE to 1090AA
Frame-I: Ns:1 Nr:3
unknown data
1b ff e1 |................|
[#1 (F:136.975 P:-14.2) 28/01/2018 16:04:03.458 --------------------------------
Command from Aircraft: 4073D0 to 23D837
Frame-I: Ns:2 Nr:7
unknown data
1b ff ca 1b 28 f6 41 00 24 19 60 03 3f 00 00 00 |....(.A.$.`.?...|
03 00 03 8c 08 00 00 00 03 00 00 00 0f 08 04 69 |...............i|
c5 cc 26 0f 60 03 3f 00 00 00 03 00 03 08 04 73 |..&.`.?........s|
39 d4 51 |9.Q.............|
Vous pourrez aussi, en ajoutant l'option -l envoyer les données vers un fichier qui se réinitialisera à chaque lancement du programme d'où la necessité de le copier à un autre emplacement après l'arrêt du programme.
jeudi 4 janvier 2018
SDRAngel sous linux ( 64bits seulement )
Dans le monde du SDR, il existe un petit nouveau qui va plaire à beaucoup : SDRAngel développé par F4EXB, Edouard. Un petit récepteur pour diverses plateformes et OS en 64bits seulement capable de faire tout aussi bien de la réception que du décodage. Il peut également servir en emission à condition d'utiliser le bon sdr ( HackRF, LimeSDR, USRP.. )
Pour l'instant, sont supportés : Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 et FunCube
Les modes possibles sont :
- AM
- NFM
- WFM + RDS
- ATV
- LoRa
- SSB
- Analyseur
- DMR/MOTOTRBO
- dPMR
- D-Star
- Yaesu System Fusion ( YSF )
Pour l'installation sous ubuntu, la méthode est assez simple à condition d'avoir les bonnes librairies :
$ sudo apt-get install pavucontrol libgles2-mesa-dev cmake g++ pkg-config libfftw3-dev libqt5multimedia5-plugins qtmultimedia5-dev qttools5-dev qttools5-dev-tools libqt5opengl5-dev qtbase5-dev libusb-1.0 librtlsdr-dev libboost-all-dev libasound2-dev pulseaudio libnanomsg-dev libopencv-dev libsqlite3-dev libxml2-dev
$ git clone https://github.com/f4exb/sdrangel.git
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install
$ sudo ldconfig
Un petit exemple de vue en déodage DMR
*!* il se peut que la librtlsdr-dev fasse défaut, dans ce cas, si votre sdr fonctionne déjà, il est inutile de chercher à la réinstaller *!*
Bonne année 2018
Je vous présente tous mes voeux pour cette nouvelle année ! Qu'elle soit belle et remplie de joie et bonheur
Inscription à :
Articles (Atom)