mardi 26 août 2014

XASTIR sous Linux

J'en avais parlé il y a déjà quelques temps sans vraiment rentrer dans les détails. Xastir est pour Linux ce que WinAprs est pour windows. Seulement voilà, il est nécessaire pour l'utiliser d'avoir un TNC, chose que beaucoup n'ont pas ou bien difficile à gérer sous linux sans mettre les mains dans le "moteur". Voici une petite astuce qui permettra d'utiliser XASTIR avec une carte son en émulant un terminal AX25 à la façon AGWPE. 
Pour ce faire, il nous faudra récupérer toutes les sources, soit en utilisant l'interface graphique de recherche de paquet, soit en tapant ces quelques lignes de commande dans une fenêtre terminal :
>sudo apt-get install xastir
(il se peut que vous soyez amener à installer des librairies supplémentaires tels que build-essential, libmotif3, x11proto-print-dev ... ) 
>cd /home/téléchargement/ ( on va dans le répertoire où xastir a été installé )
>tar xvfz xastir.tar.gz ( on décompresse le fichier téléchargé )
>cd /home/téléchargement/xastir ( le répertoire ayant été crée lors de la décompression )
>make
>sudo make install
A ce stade, Xastir est installé sur votre machine. Pour vérifier cela, taper juste la commande :
>xastir 
Maintenant, nous allons émuler la carte son en TNC. Pour se faire, il nous faut disposer es packages d'AX25 suivants et de SoundModem: 
> sudo apt-get install ax25-apps ax25-utils ax25-tools libax25 libax25-dev ax25-xtools ax25mail-utils soundmodem
>sudo soundmodemconfig ( on lance la configuration de soundmodem )
Une fenêtre s'affiche dans laquelle il faudra cliquer sur New puis Configuration. A cet étape, il faudra donner un nom à cette nouvelle connexion (par exemple APRS) .
Une fenêtre s'ouvre avec plusieurs paramètres à entrer. 


Afin de bien récupérer les infos, sur une ligne de commande, tapez :
>cat /proc/asound/cards (liste de toutes vos cartes son sur votre machine ) 
Si vous sélectionnez ALSA, comme cette dernière fait un traitement du son à part, il faudra bien rentrer plughw:0,0 et non hw:0,0 dans le driver. Le plug est utilisé pour les cartes USB en règle générale mais fonctionne chez ALSA. Comme le but de ce tuto est basé sur du RX uniquement, les autres champs seront laissés tels quels. 
Pour l'onglet Channel Access, ne touchez à rien, laisseez toutes les valeurs par défaut.
Une fois ceci terminé, cliquez sur File, New et Channel. Un canal audio va être crée. Trois onglets vont alors s'afficher. Pour le Modulator et Demodulator, la saisie sera la même. 

Mode AFSK , Bits/s 1200 ( on est en VHF ), frequency 0 et 1 seront respectivement à 1200 et 2200. coché l'encodage différentiel. 


Dans l'onglet Packet IO, il faudra entrer les paramètre d'émulation du TNC. Le conseil pour commencer est d'utiliser le mode KISS dans le menu déroulant car nous allons travailler avec uniquement la carte son. Dans file, il faudra entrer le chemin de soundmodem qui sera /dev/soundmodem0. Cocher Unlik File pour la gestion en directe du son. 


Soundmodem est maintenant configuré. Pour tester que tout fonctionne, vous pouvez aller sur diagnostics et scope. Dans la fenêtre terminal devrait s'afficher les trames aprs reçues.



Quittez en cliquant sur File et Quit pour prendre en compte votre nouvelle connexion.  
Maintenant, il va falloir configurer AX25 qui fera la jonction entre notre carte son et xastir. Dans une fenêtre terminal :
> cd /etc/ax25/   (! le répertoire /etc à la racine (ROOT) !)


>sudo kate axports ( on ouvre axports avec un éditeur de texte, ici KATE )

# /etc/ax25/axports
# The format of this file is:
#
# name callsign speed paclen window description
#
sm0 VotreCall-9 1200 255 7 APRS  
#APRS correspond au nom de la connexion crée par soundmodemconfig

Attention à bien garder en mémoire le nom du port AX25 crée .. ici, sm0. Toutes les lignes avec le # sont des lignes de commentaires.
on sauvegarde et on ferme.
on ouvre de la même façon ax25d.conf

# /etc/ax25/ax25d.conf
#
# ax25d Configuration File.
#
# AX.25 Ports begin with a '['.
#
[VotreCall-9 VIA sm0]
NOCALL   * * * * * *  L
default  * * * * * *  - root  /usr/sbin/axspawn axspawn %u
#

VotreCall doit bien être suivi de via "le nom du port AX25" . On sauvegarde et on quitte.
Il va falloir maintenant donner les droits à xastir afin que celui-ci puisse gérer les ouvertures et fermetures de ports. Pour cela, dans une fenêtre terminal :

>chmod 4755 /usr/share/xastir 

Fermez toutes les fenêtres ouvertes sur votre bureau. Ouvrez une fenêtre terminal et lancer la commande 

>sudo soundmodem

Vous devriez avoir quelquechose comme çela ( prise en charge de la carte son ) 


Dans une autre fenêtre, lancez xastir  ( >xastir )
Il va falloir crée votre interface de contrôle. Pour cela, dans la barre de menu, cliquez sur Interface puis Interface control. Une fenêtre va s'afficher. Allez cliquer sur l'onglet Add puis AX25-TNC. Vous devriez avoir ceci :

Il faut maintenant configurer votre TNC virtuel comme ceci :

AX.25 Device name : /dev/soundmodem0
Comment : APRS

Cliquez sur OK. Votre nouvelle connexion va alors s'afficher mais sera arrêtée ( DOWN ). Cliquez alors sur Start et celle-ci passera en UP. Au bout de quelques minutes, les premières stations devraient s'afficher progressivement. Pour contrôler l'arrivée des données, vous pouvez cliquer sur View et Incoming Data. La liste des stations reçues s'affichera alors dans une fenêtre.






samedi 23 août 2014

Récepteur FM avec GnuRadio

Je commence tout doucement à comprendre le fabuleux Gnu-Radio et toutes ses capacités à pouvoir créer toutes sortes de choses tournant autour de la radio à condition d'avoir un petit dongle style RTL2832. Je vais essayer, à travers ce post, de vous montrer comment crée un petit récepteur de radio FM tout simple pour bien comprendre les rouages de ce logiciel.
Un récepteur mono-fréquence est généralement constitué :

  • d'une source de signal ( ici, le rtl-sdr )
  • d'un démodulateur WBFM ( la gamme 88-108 utilise le mode WFM dit FM large avec un signal modulé sur +/- 75 Khz alors qu'en FM, ce signal est modulé sur +/-5Khz. Pour la NFM, dite FM étroite, ce sera +/- 2,5Khz )
  • Un filtrte passe-bas afin de "couper" tout ce qui est au-dessous d'une certaine fréquence
  • Une sortie audio ( pour nous, la carte son )
Il faudra également d'autres accessoires en fonction du taux d'échantillon mais Gnu-radio regroupe tout cela dans des modules  facilement configurable.
Commençons par la source qui sera notre RTL-SDR :



Le taux d'échantillonnage sera réglé à 2 Mhz ( !! sous gnu, pour choisir 2Mhz, il faudra saisir 2e6 ). La fréquence en Hz sera réglée sur une de vos stations favorites ( ici 102.1 Mhz). Pensez également à mettre la calibration de votre clé ( différence de la fréquence reçue par rapport à la fréquence affichée ). Pour moi, il faut que le rtl soit sur 101.64 afin de bien recevoir le 102.1 d'où une différence de - 460 Khz. Le gain sera laissé en automatique afin de simplifier les choses.


Le démodulateur WFM :


On règle te taux de quadrature à 500Khz avec l'audio decimation à 10

Le filtre passe-bas


Il faut ici filtrer les fréquences autres que celle que nous voulons. Nous mettrons une fréquence de coupure à 100 Khz ( largeur de bande standard ) alors que la fréquence de transition sera de 1 Mhz. la valeur de la décimation sera calculée en fonction du taux d'échantillonnage de la carte son ( ici 2 Mhz ) par rapport à la valeur de la quadrature. Cette valeur de taux d'échantillonnage sera placé dans un module de variable : 


Enfin, la sortie audio



On règle le taux d'échantillonnage de la carte son à 48 khz

Le tour est fait des principaux organes de notre récepteur. Il va falloir maintenant, raccorder tout cela. Nous allons avoir besoin d'adapter la sortie audio à la régulation du volume. Il nous faudra pour cela utiliser trois blocs : WX GUI SLIDER ( qui servira à créer une fenêtre avec un curseur pour le volume ) et Rational Resampler ( qui va adapter le taux de sortie du démodulateur à celui de la carte son tout en pouvant régler le volume ) et Multiply Const 



Le signal de sortie du démodulateur est traité et sera dorénavant réglable via le petit widget de volume lié à la carte son. 


Optionnel mais pour que tout fonctionne mieux, on pourra rajouter un bloc Rational Resampler à la sortie de la source afin de faire en sorte que le signal de la source reste bien adaptable au démodulateur WBFM. 



Rajoutons quelques variables ( le copier/coller fonctionne ). Bien faire correspondre les ID à celles des blocs placés précédemment, à la majuscule près. Dans RTL_Source, nous avions la valeur freq qui correspond ici à notre variable. En changeant la valeur de cette variable, vous changerez toutes les valeurs freq de l'organigramme .. c'est un peu comme les variables dans de la programmation en C++ ...


Au final, après avoir fait les jonctions IN/OUT, vous devriez avoir un bel organigramme comme cela : 

Vérifiez bien, en haut de l'écran de ne pas avoir de croix rouge ( cela serait le fait d'une mauvaise variable ou d'un mauvais paramétrage ). Cliquez sur la petite fusée pour lancer l'exécution du graph. Vous devriez avoir une petite fenêtre qui s'affiche avec le volume et un curseur pour le régler et la radio qui se lancera.


Pour ceux qui aiment le travail tout fait, voici mes premiers essais qui fonctionnent bien : 
Libre à vous de modifier à votre guise, de tester, de faire évoluer ce petit flowgraph .. GnuRadio recèle de tellement de possibilités que pleins de petits projets germent en tête. Surtout qu'une fois votre flowgraph terminé, vous pouvez en faire un fichier python capable d'être lancé depuis une fenêtre terminal ... 


Amusez-vous bien !






jeudi 21 août 2014

Recevoir la HF avec un RTL2832

La modification est simple à réaliser .. 2 condensateurs de 47pF, un transformateur RF et un fer à souder capable d'intervenir sur du cms. Pour ce faire, on va utiliser l'entrée diférentielle Q+ et Q- du 2832 ( broche 4 et 5 ) sans passer par le E4000 afin de récupérer la HF directe sans passer par le convertisseur.

Vous aurez ensuite un petit récepteur capable de recevoir de 0 à 28.8 Mhz et plus. Il faudra également se procurer le fichier dll afin de modifier SdrSharp de façon à prendre en compte cette transformation.
Dans un premier temps, on récupère ce DLL que l'on renome rtlsdr.dll et que l'on remplace dans le répertoire de sdr#. 

Pas besoin d'avoir une antenne énorme pour procéder aux premiers tests. Un simple bout de fil d'une dizaine de mètres suffira.
Lancez SDR#, sélectionnez votre dongle dans le menu :


Allez cliquer ensuite sur Front end et dans la fenêtre qui s'affiche, sélectionnez Direct Sampling ( Q branch ) dans la liste déroulante de Sampling Mode :


On peut dorénavant écouter tout ce qui se passe en-dessous de 30 Mhz sans avoir recours à un convertisseur supplémentaire. Il faudra par contre faire évoluer votre modification en ajoutant des filtres supplémentaires notamment au dessus de 14 Mhz. Cette transformation ne vaut pas un bon récepteur HF mais permet de dépanner quand on est en vadrouille ...

Petit exemple sur 7 Mhz

où les signaux cw arrivent forts 

Avec cette modification, il sera également possible de faire de la réception DRM sur les OC sans avoir recours à un récepteur attitré. Le logiciel a utilisé sera Dream DRM Receiver que vous pourrez télécharger ici : http://sourceforge.net/projects/drm/ ainsi que de la version gratuite de VB câble ( http://vb-audio.pagesperso-orange.fr/Cable/index.htm) afin de "lier" la sortie audio SDR à DDR. Je n'ai malheureusement pas encore testé car VB-câble a des soucis de config sous linux ... 

mardi 19 août 2014

HamDRM

En essayant de simplifier les choses, l'HamDRM est un mode de communication qui permet de véhiculer de la voix, des images ou du texte avec une qualité parfaite, sans parasites, brouillages ou fading par le biais d'un signal émis sur une fréquence radio d'une largeur de bande de 2.8Khz accompagnés de routines (codecs) capable de transformer ce signal en une émission compatible avec les normes radioamateur.
Rien à voir avec la SSTV qui elle, reste un mode analogique totalement différent, ni même avec de la SSTV que l'on pourrait de qualifier de digitale. L'HamDRM transmet pendant une session, plusieurs fois la même information afin que du côté réception, celle-ci arrive entière. C'est le principe de la redondance, qui n'existe pas en SSTV où si l'info envoyé n'est pas reçue correctement, il y aura un vide ou un genre de qrm sur l'image reçue.
Afin de recevoir de belles images, il faut bien penser à désactiver tous les filtres (NB, DSP...) actifs sur votre RX et utiliser, si vous en êtes équipé, d'un filtre large bande de 2.8Khz. Il faut également se servir d'une sortie audio à niveau constant. La plupart des TRX actuels en dispose sur la prise accessoire. Il existe quelques logiciels capable de gérer l'HamDRM sous windows tel que easypal, windrm mais je vais plutôt m'attarder sur QSSTV afin de garder la continuité avec mon post précédent. 
On lance donc qsstv à partir d'une fenêtre de terminal ( ou d'un script, à votre convenance ) 

>qsstv 

On va choisir DRM à la place de SSTV. Il n'y aura aucun paramètre à régler pour de la réception. Il faudra juste se placer sur une fréquence permettant d'écouter du trafic DRM. Sur le waterfall, on le reconnaîtra grâce à son style bien particulier :


Il faudra prendre garde à ce que les 3 traits verticaux soient bien placés sous les 3 marques rouges de QSSTV. Au fur et à mesure de la réception, les 2 écrans (FAC / MSC ) au-dessus du waterfall se rempliront de points, signe que la réception est en cours. Les indicateurs time, frame, fac, msc devront passer au vert. Tout se fera automatiquement, et si le signal est reçu correctement, l'indicatif de la station reçue s'affichera dans les paramètre de réception. 



Vous aurez au bout de quelques instants, une image parfaite sans interférences qui s'affichera dans la fenêtre.
Quelques exemples d'images reçues :

Italie

OE1GOW, Peter d'Autriche, un OM très présent en HamDRM en HF



Allemagne


L'Angleterre

Petit clin d'oeil à l'ami Philippe F8NZQ ( reçues sur 2m VHF )


La qualité n'a plus rien à voir avec la SSTV mais son inconvénient est qu'il faut avoir un signal convenable et propre afin d'avoir une belle image.
Les fréquences activent dans ce mode :

  • 3.733/3.740 LSB
  • 7.040/7.043 LSB    (de moins en moins fréquenté suite à certains amateurs sans scrupules qui lancent des cq en psk ou des tone 1250Hz )
  • 14.225/14.235 USB
  • 18.160 USB
  • 21.340/21.345 USB
  • 28.675/28.680 USB
  • 50.300 USB
  • 144.500/144.525 FM
  • 433.700/433.925 USB/FM

Bonne réception !

lundi 18 août 2014

Un peu de SSTV

Le dernier QSSTV fonctionnant sous linux permet de recevoir à la fois de la sstv traditionnelle que de la HamDRM. C'est grâce à ON4QZ, Johan Maes, que ce soft existe. Il est possible de le récupérer à cette adresse : http://users.telenet.be/on4qz/index.html

Son installation m'a donné du fil à retorde.. il suffit d'avoir les bonnes librairies. Pour ce faire, dans un terminal, on entre cette petite ligne de commande :

>sudo apt-get install g++ libfftw3-dev qt4-make libqt4-dev hamlib-dev libasound2-dev libjasper1 libjasper1-dev


Une fois tout cela installé, on télécharge notre dernière version de Qsstv que l'on enregistre dans le répertoire /home/download/qsstv  par exemple. C'est un fichier portant l'extension .tar.gz qu'il faudra décompresser puis installer proprement. Pour cela, quelques lignes dans un terminal :

>cd /home/download/qsstv - ( on se rend dans le répertoire où a été téléchargé le fichier )
>tar -xvzf qsstv8-2.tar.gz - ( on décompresse le fichier )
>cd qsstv8-2 - ( on se rend dans le répertoire crée )
>qmake - ( on crée un fichier de compilation )
>make - ( on compile )
>sudo make install - ( on termine l'installation )

Pour lancer QSSTV, il suffira d'ouvrir une fenêtre terminal ou de créer un script qui lance la commande

>qsstv

Il sera bien utile, avant toutes choses, de configurer un minimum le logiciel, bien qu'il devrait être opérationnel immédiatement. Dans la barre de menu, cliquez sur Options, puis Configuration. 




Vous pourrez alors insérer dans les champs, vos infos personnelles. Le logiciel est fort bien conçu car il permet entre autre, de piloter votre transceiver, envoyer vos images reçues directement sur un serveur .... etc ... Une fois la configuration réalisée, vous serez prêt à faire vos réceptions d'images. A tout moment, vous pourrez retrouver celles-ci dans l'onglet Gallery.  Pour commencer, un peu de SSTV avec un exemple d'images reçues hier soir sur 14.233Mhz 

Quelques images du Japon ( difficile à recevoir car j'ai une montagne culminant à 1800m juste derrière la maison )




Un OM très actif en suède


La Slow Scan TéléVision permet de transmettre des images sur une largeur de bande réduite ( <3Khz ). Les couleurs sont assimilées à des signaux audibles qui dépendront de la luminosité, un peu comme le fax ( le noir correspondra à une valeur de 1500Hz alors que le blanc sera de 2300Hz ) et de la couleur. Pour synchroniser l'image, un signal sera émis à 1200Hz. Beaucoup de protocoles différents de transmission d'image existent : martin 1, martin 2, robot, scottie .. Ces protocoles définissent le nombre de ligne, la vitesse de transmission et le codage de l'image. Afin d'avoir le bon protocole immédiatement au démarrage de l'image, Qsstv dispose, comme beaucoup d'autre logiciel, du mode auto qui s'adaptera automatiquement à ce protocole. 
Afin que la réception d'image commence dès son émission, je vous conseille de cocher les 3 cases à droite de la fenêtre :


  • Use VIS : pour le démarrage automatique dès le top de synchronisation
  • Auto slant : afin de calibrer automatiquement l'image verticalement
  • Autosave : pour la sauvegarde automatique de vos images ( bien penser à notifier le répertoire adéquat dans la partie Directories de l'écran de configuration



Les fréquences (Mhz) où vous trouverez de la SSTV sont : 

  • 3.730 LSB +/- 10 Khz
  • 7.033 LSB +/- 10 Khz
  • 14.233 USB +/- 10 Khz
  • 18.160 USB
  • 21.240 USB +/- 5 Khz
  • 28.685 USB +/- 10 Khz
  • 50.300 USB
  • 144.500 -144.525 FM
Le prochain article traitera de la réception d'image HamDRM

vendredi 15 août 2014

Antenne W3DZZ

Petit moment de bricolage avec la confection d'une antenne dite "multibande" pour le 80-40-20-15-10m .. J'avais lu beaucoup de descriptions différentes à son propos et j'ai personnellement opté pour la fabrication avec des trappes en coaxial ( même en ayant de vieilles tv dans le grenier, je n'ai pas trouvé les bonnes valeurs de condensateurs recherchés ).. J'ai lu quelques articles également lui vouant le plus grand bien, d'autre, le plus grand mal mais en ce qui me concerne, cette antenne fonctionne à merveille et permet d'écouter de magnifiques DX auparavant inaudibles ou noyés dans le bruit avec le long fil.. Fini également les pollutions électriques du fermier voisin avec sa clôture électrique par exemple. J'ai enfin trouvé une antenne qui me permet d'écouter confortablement les bandes RA.
Le principe de cette antenne repose sur le fait que l'on dispose d'un dipôle central fait pour travailler sur 7Mhz. A ses extrémités, deux selfs accordées sur 7.050Mhz qui vont permettre d'augmenter artificiellement afin qu'elle résonne en demi-onde sur 80m alors que sur les bandes supérieures, l'antenne va résonner en 3, 5 ou 7 demi-ondes. Deux brins termineront l'antenne afin de l'adapter toutes bandes.
Les trappes sont réalisées avec du simple RG58-CU 50Ohms. J'ai utilisé le logiciel coaxtrap ( http://www.cqham.ru/coaxtrap.htm ) pour le calcul. La trappe sera réalisée sur un tube pvc de 45mm de diamètre.



Il nous faudra donc faire 10,96 tours afin que notre trappe résonne sur 7.050 Mhz ( le fait d'augmenter le nombre de tours fait diminuer la fréquence de résonance ). 

L'âme du début de la self est relié au fil de l'antenne alors que sa tresse de masse est relié à l'âme de la fin de la self . La sortie vers les brins terminaux sera prise sur la tresse du coaxial de la fin de la self. 

La self en préparation




Les selfs prêtent à l'emploi



Les mesures donnent une résonance sur 7.062Mhz, ce qui est pas mal pour un début.
La confection finale de l'antenne reste du plus simple.

L'antenne trône fièrement dans le grenier pour l'instant et les résultats sont très encourageant par rapport à mon long-fil. Des signaux reçus à 2/3 points sur le S-mètre avec ce dernier alors que la W3DZZ, ceux-ci arrivent à 7/8 points S-mètre. Il était préconisé l'emploi d'un choke-balun sur le coaxial d'arrivée mais j'ai opté pour un simple balun 1:1 ( J'ai testé l'antenne sans et je n'ai remarqué aucune différence ). Les valeurs sur l'analyseur d'antenne me donnent :
  • 3.6 Mhz    ros 2:1
  • 7.1 Mhz    ros 1:2
  • 14.2 Mhz  ros 2:8
  • 21.1 Mhz  ros 2:5
  • 28.5 Mhz  ros 3:1

Sur les bandes intermédiaires, le ros est un peu plus haut mais loin d'être critique car rarement au delà des 4 voire 5:1 donc négociable avec une bonne boîte d'accord. Mais quoiqu'il en soit, pour de la réception, cela me convient largement..