F1ZXO : station JS8CALL automatique

Dans un précédent article (qui date de fin 2020), j’avais exposé l’idée et réalisé le prototype d’une station automatique pour les utilisateurs de JS8CALL et le reste de la communauté radioamateur.

Nous sommes aujourd’hui le 19 mai 2023 et beaucoup de choses ont évolués dans le projet.

Revenons sur l’évolution de la station F1ZXO.

Chronologie F1ZXO

11 mai 2022 : la station prototype F4IOG/P change d’indicatif pour F1ZXO. Première station JS8CALL automatique de France. La configuration soft et hard n’avait pas changé

QRG7078 kHz
PWR20 Watts
ANTdipôle V inversé pour 40m
RX/TXICOM IC-740
SOFTJS8CALL v2.2.0 sur Raspberry pi 4
configuration mai 2022
résultats avec 20W sur 7078kHz pskreporter – mai 2022

Juillet 2022: Après des mois sur l’air, sans aucune intervention sur site. Je me suis rendu compte de deux choses : La raspberry pi avait une dérive d’horloge et le poste IC-740 commençait à montrer des signes de faiblesses.

Après des épisodes orageux et plusieurs coupures de courants, le TX IC-740 ne revenait pas, après ré-allumage, sur la bonne QRG (7078kHz). Au vu de la puissance et la consommation utilisée par le poste, j’ai décidé d’étudier le fait de passer QRP (5w). Je passe donc de 20 watts à 5 watts. Aucun changement à déclarer sur la réception des trames envoyé par F1ZXO. On décide avec Yannig F4IUJ et l’appui de l’association, de passer commande pour un transceiver QRP, multibande et CAT : un QDX !

16 décembre 2022 : Rapatriement du relai au QRA. Le temps de recevoir, assembler le nouveau QDX en kit et de refaire la chaîne en condition réel. J’ai toujours le même problème : la dérive d’horloge de la raspberry. Après quelques recherches sur le web, j’ai fini par me fournir d’un GPS USB. C’était la manière la plus efficace de récupérer l’heure sur un site isolé sans internet. Sans prise de tête, j’ai décidé de suivre le retour d’expérience de Fred F4EED sur l’utilisation d’un GPS USB. Depuis le relai tourne H24, et je n’ai jamais retrouvé ce problème de dérive. Problème résolus !

Config du 16 décembre 2022 avant rapatriement pour des tests sur le changement automatique de bandes.
De gauche à droite / haut : alim 13.8V et boite d’accord MFJ pour QRG 7078 kHz. Bas : modem NRP-70 et ampli DMR 20W (TCP-IP over UHF) , raspberry pi 4 et le QDX (tapie dans l’ombre a droite).

Avec l’arrivée du QDX, j’ai eu au départ pas mal de soucis avec l’interface USB. J’ai refait un câble USB type B le plus court possible pour éviter les interférences dans la ligne. Une fois sur deux, j’avais un conflit lors du redémarrage de JS8CALL, il me chargeait le mauvais port USB. Une confusion entre autre celui du GPS et celui du QDX. J’ai fini par trouver une solution en écumant ce genre de forum. L’idée était de fixer un nom au port USB dans un fichier de config sur raspbian. Ainsi JS8CALL ne pouvait plus se tromper lors du reboot.

21 juin 2022 : Début des tests sur F1ZXO pour en faire une station de bulletin météo sur demande.

Grâce aux travaux de skyl4rk – Paul VandenBosch un service JS8CALL WX Server a été développé pour générer des bulletins météo sur demande, en fonction de votre QTH, avec des données collectées depuis une API de openweathermap.org

Ici F1ZXO génère un bulletin météo suite à la demande de GM0DHD (QTH : IO85GW) pour la journée du lendemain

Je lance ce script par intermittence, car aujourd’hui F1ZXO n’est pas relié à internet en permanence. Ce service n’est donc pas toujours disponible.

Cependant, un projet faisable pour F1ZXO pourrait être d’en faire une station météo local.

skyl4rk a déjà dev un autre script : JS8Call-WX_Station. Celui-ci n’a pas besoin de récupérer des infos via le web. Il vient lire sur demande des fichiers textes. C’est une utilisation parfaite pour diffuser un bulletin météo généré par quelques capteurs reliés à la raspberry.

Depuis janvier 2023 : F1ZXO est actuellement toujours au QRA. ll fonctionne depuis cinq mois H24 sur une antenne end-fed. Après être intervenu sur le site pour monter une nouvelle antenne multi-dipôle 80m, 40m et 20m , des réglages restent encore à faire. La modification d’antenne va me permettre de replacer F1ZXO dans le local.

QRG3578 kHz / 7078 kHz / 14078kHz
PWR5 Watts
ANTmulti-dipôle V inversé
RX/TXQDX
SOFTJS8CALL v2.2.0 sur Raspberry pi 4
configuration mai 2023

La partie logique de F1ZXO

F1ZXO utilise la version 2.2.0 de JS8CALL. C’est la dernière version en date pour raspbian. L’utilisation de JS8CALL est la même que pour n’importe quels autres OM qui traffic en JS8CALL avec son indicatif.

L’automation de F1ZXO fonctionne pour le lancement du logiciel JS8CALL, l’envoie de trames APRS et le changement de fréquence en fonction de l’heure.

J’ai fait en sorte d’automatiser le lancement du logiciel JS8CALL en cas de crash et reboot de la raspberry pi.

Voici ici le script de relance automatique du logiciel

#!/bin/bash
# This script has some specifics the Raspberry Pi.
# Some adjustments might be needed for other Linux variations.
# When running from cron, we have a very minimal environment
# including PATH=/usr/bin:/bin.
#
export PATH=/usr/local/bin:$PATH
# First wait a little while in case we just rebooted
# and the desktop hasn't started up yet.
#
sleep 5
LOGFILE=/tmp/js8-start.log
#
# Nothing to do if it is already running.
#
a=`pgrep js8call`
if [ "$a" != "" ] 
then
  #date >> /tmp/dw-start.log
  #echo "Already running." >> $LOGFILE
  exit
fi
#
# In my case, the Raspberry Pi is not connected to a monitor.
# I access it remotely using VNC as described here:
# http://learn.adafruit.com/adafruit-raspberry-pi-lesson-7-remote-control-with-vnc
#
# If VNC server is running, use its display number.
# Otherwise default to :0.
#
date >> /tmp/js8-start.log
export DISPLAY=":0"
v=`ps -ef | grep Xtightvnc | grep -v grep`
if [ "$v" != "" ]
then
  d=`echo "$v" | sed 's/.*tightvnc *\(:[0-9]\).*/\1/'`
  export DISPLAY="$d"
fi

echo "DISPLAY=$DISPLAY" >> $LOGFILE

echo "Start up application." >> $LOGFILE
#
# For normal operation as TNC, digipeater, IGate, etc.
# Print audio statistics each 100 seconds for troubleshooting.
#
#DWCMD="direwolf -a 100"
#DWCMD="js8call -c yourcallsignorrepeatercallsign"
# Alternative for running with SDR receiver.
# Piping one application into another makes it a little more complicated.
# We need to use bash for the | to be recognized. 

DWCMD="bash -c 'js8call -c F1ZXO'"
# 
# Adjust for your particular situation:  gnome-terminal, xterm, etc.
#
if [ -x /usr/bin/lxterminal ]
then
  /usr/bin/lxterminal -t "JS8CALL" -e "$DWCMD" &
elif [ -x /usr/bin/xterm ] 
then
  /usr/bin/xterm -bg white -fg black -e "$DWCMD" &
elif [ -x /usr/bin/x-terminal-emulator ]
then
  /usr/bin/x-terminal-emulator -e "$DWCMD" &
else
  echo "Did not find an X terminal emulator."
fi
echo "-----------------------" >> $LOGFILE

envoyer des trames de position ou beacon en fonction des besoins. Exemple: une trame @APRSIS GRID IN88VA12CN toutes les 15 minutes et au reboot de la raspberry. Cela permet de voir le relai sur le réseau APRS-IS.

Voici une capture d’écran du crontab de F1ZXO et des changements de fréquence en fonction des horaires :

pour ceux qui ne connaissent pas crontab. Une ligne correspond à une commande exécuté en fonction d'un calendrier.

Pour le changement de bande en fonction de l’heure, voici une capture d’écran du script qui est exécuté tous les jours à 17h pour basculer sur la bande des 80m. Pour le 20m et 40m, c’est sensiblement la même logique. Une trame @APRSIS CMD :EMAIL-2 est envoyée avant chaque changement de bande sur mon adresse mail. Cela me permet de suivre de loin l’activité du relai. J’ai un historique des changements de bandes et en cas de panne, je peux savoir quand est-ce qu’il a été entendu pour la dernière fois (on peut aussi voir son activité sur pskreporter).


Travaux en cours et axe de travail

● Bulletins météo sur demande @WX? Fait

Fonctionnel, mais ne va pas être mis en service si il n’y a pas d’accès internet sur site.

● Installation station météo en local : En Cours d'étude

● Autonomie énergétique : En Cours d'étude

On y pense. Les tests ont déjà été fait au QRA avec 5w PAR. La raspberry et le QDX étaient alimentés en 13.8V par batterie plomb et deux panneaux solaires 150W.

● Récepteur GPS pour synchroniser heure : Fait

● Capacité multibande : Fait

Le QDX est configuré pour changer de bande en fonction d’une grille horaire. Voir config crontab.

● Antenne multibande : En cours

Le multi-dipôle 80m / 40m et 20m doit encore être peaufiné, certaines drisses sont à remplacer.

● Maintenance à distance via NPR 70 : En cours

Une voie de service entre le QRA et le site n’est pas encore installée. Ce lien va m’aider pour la maintenance (connexion SSH, VNC sur la raspberry). Elle pourrait également faire passerelle vers le web (intéressant pour openweathermap.org).

Ici les infos pratiques du relai F1ZXO.

Merci à Yannig F4IUJ, pour le soutien et l’aide logistique sur le projet. Ainsi qu’aux autres membre de l’ARA35 qui soutiennent le projet. 73 a Tony GM0DHD, grand utilisateur du relai et de la fonction @WX?

Laisser un commentaire