RELAIS DES VOSGES – Blog radioamateur de F8ASB https://blog.f8asb.com Promouvoir est notre devoir ... Wed, 19 Jul 2023 18:39:39 +0000 fr-FR hourly 1 98010425 Interconnexion 3G/4G avec votre relais https://blog.f8asb.com/2023/07/19/interconnexion-3g-4g-avec-votre-relais/ https://blog.f8asb.com/2023/07/19/interconnexion-3g-4g-avec-votre-relais/#comments Wed, 19 Jul 2023 18:39:39 +0000 https://blog.f8asb.com/?p=8430 Continuer la lecture ]]> Le relais des Vosges F1ZBV est desormais connecté à la 3G pour des interventions distantes.
Les fonctionnalités distantes sont directement liés au choix du modem et des options proposés.
Dans cet article, je vous décris que ce j’ai mis en oeuvre et une description du modem Teltonika RUT240.

Dans un premier temps, je tenais à préciser que cet article n’est pas sponsorisé, j’ai contacté le fabricant directement et je n’ai pas réussi à obtenir un produit pour essai.
Souvent les entreprises qui ont des supers produits technologiques ont un service commercial discutable. 🙁

Le relais était déjà raccorder à la 4G avec un simple modem/routeur TPLink.
Nous avons changé d’opérateur et sommes désormais sur une offre NRJ Mobile du réseau Bouygues Telecom.
Ce nouveau réseau apportait un intérêt financier 4,99€ par mois, l’inconvénient c’est que nous avions besoin d’une antenne extérieure ou d’un modem plus sensible en reception.
L’utilisation était simplement la prise en main à distance du relais qui est sur un base linux avec SvxLink.
Le RUT240 amène à developper des nouvelles fonctions.

Pourquoi le modem RUT240?
Vous trouverez toutes les caractéristiques sur le site du fabricant:
Lien direct chez Teltonika

Je vous invite à regarder le manuel d’utilisation (150 pages) pour vous rendre compte de tous les fonctions possibles.

Je vous resume en quelques lignes les fonctionnalités présentes et leurs interêts.

Nous parlons là d’un modem de type industriel, ce qui de part sa conception et son développement est très poussé au niveau des interactions du milieu extérieur afin de couvrir un maximum d’application.

Il y a 2 prises réseaux une LAN et une WLAN, il y a la possibilité de faire 2 LAN (parametrage logiciel).
Il y a 3 connecteurs de type SMA afin de raccorder des antennes extérieures
(2 antennes mobiles + 1 antenne wifi).

Un system linux est intégré, RutOs, sur une base de OpenWrt accessible en ssh ou depuis l’interface web intégrée CLI.
Il y a les fonctions pour mettre en place un VPN (réseau privé pour accès direct), utile quand on n’a pas de réseau 3G avec une IP accessible depuis l’extérieur.
Compatible avec OpenVPN, IPSec, GRE Tunnel, PPTP, L2TP, DDNS

La plage d’alimentation va de 9 à 30V ( ce qui permet d’être alimenter par les batteries en cas de coupure secteur)
Sur le connecteur d’alimentation, on retrouve une entrée et une sortie, pilotable par l’interface utilisateur, par sms, ou en ssh.
L’intérêt est de brancher la sortie sur un relais afin de faire un reset de l’installation et sur l’entrée on peut y raccorder l’information presence secteur.
Dans le cadre d’un changement de statut une notification par sms est réalisable sur un numéro ou sur une liste de numéro.
Il y a une interface complètement personnalisable, SMS Utilities, pour des interactions SMS vers actions programmés.
Du fait d’un système linux, il est possible d’y intégrer des scripts en shell personnalisés.
Il est possible d’activer un reboot automatique si le ping vers google ne répond pas.
Un planificateur permet de programmer des actions.

Les protocoles prise en charge sont les suivants:
TCP, UDP, IPv4, IPv6, ICMP, NTP, DNS, HTTP, HTTPS, FTP, SMTP, SSL v3, TLS, ARP, VRRP, PPP, PPPoE, UPNP, SSH, DHCP, Telnet, SMPP, MQTT
Il y a vraiment de quoi faire…

Le fabricant propose une interface RMS qui vous permet de vous connecter sur l’interface graphique du modem en passant via leur site sans parametrage spécifique.
Pour l’achat d’un modem un accès gratuit de 30 jours est offert.

Mise en place sur le relais des Vosges F1ZBV:

  • Activation du ping avec reboot automatique, il y a juste une case à coché pour activer la fonction
    (page125 de la notice).
    Avant j’utilisais une fonction sur le Raspberry avec un relais voir l’article
  • Un prochaine intervention sera fait pour mettre en place le reset sur le raspberry depuis la sortie et la détection de la présence secteur ce qui était aussi précédemment géré par le raspberry voir article.
  • Les différentes commandes SMS pour les reboot et informations pré paramètre par défaut.

Je voulais vous décrire plus particulièrement la mise en place d’une commande d’information statut qui envoi toutes les informations du relais par sms.

Les pré requis:

  • Il faudra veillez à installer une clef RSA de chaque coté, c’est ce qui va vous permettre de ne plus avoir de mot de passe à écrit lors des connexions ssh ou lors de commande envoyées de l’un vers l’autre est inversement.
    Utiliser la commande ssh-keygen
  • Avoir la dernière version firmware sur le modem


Paramètres au niveau du modem:

Dans la partie mobile utilites, créer une nouvelle action et sélectionner Excetute custom script, dans SMS text vous indiquez le message en sms qui lancera l’action.
Vous indiquerez votre numéro de telephone dans la partie AUTHORISATION.

Dans l’exemple ci-dessous, le script renvoi juste Bonjour de F1ZBV par SMS.
Ce qui vous permettra de tester le bon fonctionnement de la commande.
Vous recevrez un SMS instantanément.
Il faudra ensuite remplacer la ligne echo par votre commande au format suivant:
ssh <LOGIN>@<ADRESSEE IP DU RELAIS> ‘commande shell’

Voici un exemple:
ssh f1zbv@192.168.1.88 ‘./info.sh’
on peut bien sûr indiquer le chemin complet ou remplacer le chemin du script par une commande direct de type: ssh f1zbv@192.168.1.88 ‘reboot’ qui fera rebooter le Raspberry Pi.
Je vous conseille de tester le script directement depuis le modem sur la section CLI ( terminal) de l’interface graphique.

Paramètres au niveau du Raspberry:

Le relais a déjà tous les capteurs et un code DTMF permet déjà d’obtenir les informations en vocale avec comme base, une carte SVXCARD.
Le travail consiste donc à reprendre toutes ses mesures dans un script et générer un texte qui sera en retour de la  commande envoyé par le modem RUT à la reception du DTMF.
Vous pouvez revoir les vidéos de la présentation du relais F1ZBV de 2016 dans un article précédent sur les fonctionnalités du relais.

Pour le raspberry, il suffit de crée un script qui va rechercher les informations et les retourne en texte.

Voici le script utilisé:
Les scripts sont disponibles directement sur Github, il sera nécessaire de mettre les scripts info.sh et tension.tcl dans le même dossier, sinon il faut modifier les chemins.

Conclusion:
Ce modem est selon moi une vraie option sur une installation distante, le fait d’embarquer un système sous linux nous amène une ouverture sur le développement de fonctions personnalisées. C’est un peu le cas du relais de Vosges avec un logique qui date de 2015, c’est uniquement la partie logiciel qui évolue selon les besoins au fur et à mesure des années.

Selon mes expérimentations et/ou les demandes, je publierais peut être d’autres articles de mise en oeuvre.
Le coût du modem est de moins de 200 euros, je vous préconise l’achat chez Reichelt, le produit est complet avec alim + antenne à prix raisonnable et également disponible en stock.

INFO:

J’ai eu cette année beaucoup de mal à rédiger des articles, faute de temps, afin d’avoir plus d’interactions avec les abonnés à la newsletter, j’enverrais de temps en temps, des exclusivités, des opportunités, des infos afin d’éviter la rédaction complète de l’article.
J’envisage peut être aussi des votes sur le prochain article à paraître.

Mi Août, j’enverrai la première newsletter avec ce format.
Si ce n’est pas déjà fait,  je vous invite à vous inscrire, sur la fenêtre de droite en indiquant votre indicatif et en confirmant sur le mail reçu.

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI
]]>
https://blog.f8asb.com/2023/07/19/interconnexion-3g-4g-avec-votre-relais/feed/ 3 8430
Compte rendu du QSO des confinés du 28/03/2020 https://blog.f8asb.com/2020/03/28/compte-rendu-du-qso-des-confines-du-28-03-2020/ https://blog.f8asb.com/2020/03/28/compte-rendu-du-qso-des-confines-du-28-03-2020/#respond Sat, 28 Mar 2020 17:36:05 +0000 http://blog.f8asb.com/?p=5912 Continuer la lecture ]]>
réalisation F5SWB

Pour la 2ème édition du QSO des confinés sur le relais des Vosges F1ZBV et les relais connectés nous avons eu 27 participants présents.
Le capitaine du QSO était Damien F8DSN, initiateur de ce QSO.

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI

]]>
https://blog.f8asb.com/2020/03/28/compte-rendu-du-qso-des-confines-du-28-03-2020/feed/ 0 5912
QSO des Confinés sur F1ZBV (88) https://blog.f8asb.com/2020/03/21/qso-des-confines-sur-f1zbv-88/ https://blog.f8asb.com/2020/03/21/qso-des-confines-sur-f1zbv-88/#respond Sat, 21 Mar 2020 07:47:55 +0000 http://blog.f8asb.com/?p=5858 Continuer la lecture ]]>

Sur une idée de Damien, F8DSN et afin de prendre des nouvelles de chacun et d’échanger sur les ondes, le QSO des confinés est désormais programmé tous les samedis matin à 10H00.

Sur le relais des Vosges F1ZBV sur 145.6625 shift -600
accessible aussi depuis en interconnexion sur:
le relais F1ZDD (Strasbourg) sur 430.2375 shift +9.4
le relais F5ZAU (Valsberg) sur 145.6125 shift -600

Restons confinés et faisons des QSOs!

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI

]]>
https://blog.f8asb.com/2020/03/21/qso-des-confines-sur-f1zbv-88/feed/ 0 5858
Distribution SVXCARD et Spotnik 3.0 https://blog.f8asb.com/2020/02/03/distribution-svxcard-et-spotnik-3-0/ https://blog.f8asb.com/2020/02/03/distribution-svxcard-et-spotnik-3-0/#respond Mon, 03 Feb 2020 19:25:30 +0000 http://blog.f8asb.com/?p=5594 Continuer la lecture ]]>

Dans cet article, vous trouverez les détails de la distribution réécrite complètement avec la prise en charge d’une version récente de Svxlink et de la gestion du réseau RRF pour une SvxCard.
J’ai profité de la nécessité de faire évoluer le relais des Vosges F1ZBV pour travailler dessus et la rendre disponible pour la communauté radioamateurs et les possesseurs de SvxCard.

Les fonctions prises en comptes dans cette distribution:

– Message personnalisés du relais avec prise en charge du chemin des sons automatiques selon l’indicatif du relais.
– Annonce à l’ouverture du relais si connection au réseau RRF du salon connecté
– Possibilité de changer de salon par code DTMF
– Prise en compte du salon régional
– Préinstallation de la fonction pour station météo extérieure
Mode urgence pour activité ADRASEC
– Préinstallation commutation ampli sur sortie relais par DTMF
Messages d’information programmés
– Nouveau menu (mélange fonction Spotnik + SvxCard)
Message d’arrêt du relais
– Sauvegarde sur le port USB en faisant un image du raspberry pi.
Cette fonction était décrite sur l’article rpi-clone: Clonez la carte SD de votre Raspberry Pi, il suffit d’insérer un lecteur de carte SD USB dans le port usb et de taper : clone
– réinstallation de dwservice (prise en main à distance)

– Gestion des capteurs de la SvxCard:
– 3 capteurs de T° par (défaut Émetteur, coffret, cavités)
– Tension d’alimentation
– S-metre
– Capteur présence tension avec annonce vocale à l’ouverture si coupure secteur
– Préinstallation de la fonction pour station météo extérieur. Il faut que la station météo soit compatible avec Weewx pour une prise en charge de bulletins météo.
– Préinstallation mesure tension 24V

Login: root
pass: spotnik
adresse ip: DHCP

Personnalisation de messages:

  playMsg $mycall "bonjour";
     puts "Ouverture bonjour";

Pour que les messages personnalisés du relais soient pris en compte avec un minimum de modification des lignes de codes, une variable a été insérée. De ce fait il suffira d’ajouter dans un répertoire avec l’indicatif du relais tous vos messages personnalisés.

Pour rappel: Le répertoire doit être situé dans le chemin suivant:
/usr/share/svxlink/sounds/fr_FR/

Vous devez ensuite créer un répertoire en majuscule avec l’indicatif dans mon cas F1ZBV
ce qui donne le chemin complet:
/usr/share/svxlink/sounds/fr_FR/F1ZBV/

Il est impératif d’indiquer l’indicatif du relais dans le fichier svxlink.conf
/etc/spotnik/svxlink.cfg ou via le menu choix 14.

CALLSIGN=F1ZBV

A l’intérieur de celui-ci on retrouvera:
aurevoir.wav  balisecourte.wav baliselongue.wav  bavard.wav  bonjour.wav  bonnenuit.wav  bonsoir.wav

Il est nécessaire de modifier les sons à vos besoins. Enregistrer vos fichiers wav avec logiciel Audacity par exemple. Pour convertir ensuite vos fichiers compatibles avec svxlink en mode console en tapant la commande suivante (ex avec toto.wav):

sox toto.wav -r16000 -esigned-integer -b16 -c1 totook.wav

Le nouveau menu

Envoyer la commande spot ou menu pour y accéder.

Réseau RRF

L’ensemble des salons est pris en compte ainsi que le salon régional à paramétrer.
Un timer salon (timersalon.sh) est en place pour repasser le mode “Stand Alone” (déconnecté) si il n’y pas d’activité sur un des salons connectés.
Une connexion automatique quotidienne sur le salon régional pourra être mise en place dans les prochains mois. Je publierai la méthode quand j’aurais mis en place.

Ci-dessous vous trouverez le fichier image en format 7zip de 590Mo téléchargeable.

Télécharger le fichier, décompresser avec 7zip et graver l’image avec Win32DiskImager sur une carte SD.

Attention: Il sera nécessaire de personnaliser les fichiers de configuration selon vos besoins. Un minimum de rigueur et de connaissance est nécessaire. N’hésiter pas à me contacter si vous avez des questions.
Je ne prendrais pas la main sur votre sytème pour faire le travail.

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI

]]>
https://blog.f8asb.com/2020/02/03/distribution-svxcard-et-spotnik-3-0/feed/ 0 5594
F1ZBV: Intervention du 11/05/2018 https://blog.f8asb.com/2018/05/12/f1zbv-intervention-du-11-05-2018/ https://blog.f8asb.com/2018/05/12/f1zbv-intervention-du-11-05-2018/#respond Sat, 12 May 2018 17:23:19 +0000 http://blog.f8asb.com/?p=3558 Continuer la lecture ]]> Dans cet article, je vous résume l’intervention sur le relais des Vosges F1ZBV du 11 mai 2018. Cette intervention a eu lieu une bonne partie de la journée avec comme intervenant F4BKE, F5FIM, F1JUZ et F8ASB.

Celle-ci fait suite au déménagement du relais préalablement au Hohneck qui est maintenant au Haut du tôt.

Il s’agit de la première intervention de préparation. L’objectif était de tirer le nouveau coaxial sur 50m et de fixer tous les supports de câble le long du le pylone.
Ce travail fut réalisé par F4BKE Jean  (photo principale de l’article) notre grimpeur officiel.
Toutes les mesures dimensionnelles ont été faites afin préparer les différents supports de fixation.

F1JUZ s’est occupé de toute la partie préliminaire pour l’installation du cable réseau du le futur lien wifi qui aura lieu à la prochaine intervention.

F5FIM etait en support pour F4BKE en bas et s’est occupé de toute la préparation de la partie mécanique de l’installation.

Quant à moi, j’ai visualisé les fichiers log du relais et apporté quelques modifications logiciel du relais qui fonctionne sous SvxLink avec la SVXCARD. Je me suis occupé également de tout le paramêtrage du futur pont wifi.

La date de la prochaine intervention n’est pas à ce jour programmée.

Elle aura pour but:
L’installation de l’antenne en haut du pylône.
Installation de l’antenne wifi sur le pylône.
Mise en place de la connexion internet via wifi.
Mise à jour de la partie logiciel du relais.

Je remercie les intervenants qui oeuvre pour la communauté radioamateur sans compter.

Je profite de cet article pour faire un appel aux radioamateurs qui sont de métier dans la radio ou qui pourraient nous aider. Nous avons besoin d’un système de sécurité Zöll Glideloc pour monter sur le pylône si une personne d’entre vous pourrait nous vendre, à prix Om, ou donner ce sytème. 

Vous trouverez ci-dessous la photo:

Merci d’utiliser le formulaire de contact

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI
]]>
https://blog.f8asb.com/2018/05/12/f1zbv-intervention-du-11-05-2018/feed/ 0 3558
SVXLINK: Personnaliser vos messages sur votre relais https://blog.f8asb.com/2017/12/17/svxlink-personnaliser-vos-messages-sur-votre-relais/ https://blog.f8asb.com/2017/12/17/svxlink-personnaliser-vos-messages-sur-votre-relais/#respond Sun, 17 Dec 2017 08:53:45 +0000 http://blog.f8asb.com/?p=3438 Continuer la lecture ]]>

Vous êtes un certain nombre à avoir téléchargé et installé l’image de Madeleine.
Dans cette article je vous montre comment personnaliser vos messages.
Vous devez vous rendre sur le site https://best-of-vox.com/windows pour télécharger le logiciel qui fonctionne sous Windows. J’utilise la voix d’Agnes, vous devez cliquer sur le l’image correspondant à Agnès.

Le logiciel coûte 39,00€, vous l’obtiendrez directement après la commande. Vous pourrez à votre convenance acheter d’autres voix si besoin.

Une fois le logiciel installé, vous n’avez plus qu’a taper votre texte, ajuster les paramètres de la voix ( pour ma part j’utilise les paramètres par défaut)

Cliquer sur le bouton lecture pour avoir un aperçu du message, puis si il vous convient pour pouvez l’exporter en fichier .wav.

Pour le rendre compatible avec SvxLink, il sera nécessaire de passer par une ligne de commande Linux pour convertir voir les explications sur le site support de svxlink.
remplacer les noms de fichiers par les vôtres.

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI
]]>
https://blog.f8asb.com/2017/12/17/svxlink-personnaliser-vos-messages-sur-votre-relais/feed/ 0 3438
F1ZBV: Lola fait une pause… https://blog.f8asb.com/2017/03/26/f1zbv-lola-fait-une-pause/ https://blog.f8asb.com/2017/03/26/f1zbv-lola-fait-une-pause/#respond Sun, 26 Mar 2017 05:08:24 +0000 http://blog.f8asb.com/?p=3251 Continuer la lecture ]]>  

Les relais des Vosges F1ZBV/F1ZBU seront inactifs pour une durée indéterminée.

En effet, nous sommes à la recherche d’un nouveau site d’implantation car il nous a été demandé de quitter le Hohneck, le nouveau propriétaire ne souhaitant plus notre présence.

Nous sommes donc à la recherche d’un lieu, si possible au dessus de 1000m de façon à couvrir au mieux le département, ensuite il faudra le réimplanter…..


Si vous avez des relations ou des propositions merci de prendre contact.

 


Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI
]]>
https://blog.f8asb.com/2017/03/26/f1zbv-lola-fait-une-pause/feed/ 0 3251
Câblage SVXCARD avec un Tait 8110 https://blog.f8asb.com/2017/01/29/cablage-svxcard-avec-un-tait-8110/ https://blog.f8asb.com/2017/01/29/cablage-svxcard-avec-un-tait-8110/#respond Sun, 29 Jan 2017 08:44:22 +0000 http://blog.f8asb.com/?p=3204 Continuer la lecture ]]>

Suite à plusieurs demandes, j’ai pris le temps de mettre à disposition le schéma de câblage entre la carte SVXCARD et l’émetteur/ récepteur TAIT TM8110.La carte SVXCARD possède des RJ12 et le Tait TM8110 est lui équipé d’une prise Sub-D 15 broches à l’arrière.
Concernant le RSSI (signal de réception), il sera nécessaire d’ajouter les résistances pour le pont diviseur de tension. Voir l’article précédent.

Si vous avez besoin du fichier de programmation n’hésitez pas à me contacter.

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI
]]>
https://blog.f8asb.com/2017/01/29/cablage-svxcard-avec-un-tait-8110/feed/ 0 3204
SVXLINK: Interface I2C vers BCD, pilotez vos radios ! https://blog.f8asb.com/2016/11/13/svxlink-interface-i2c-vers-bcd-pilotez-vos-radio/ https://blog.f8asb.com/2016/11/13/svxlink-interface-i2c-vers-bcd-pilotez-vos-radio/#respond Sun, 13 Nov 2016 08:34:30 +0000 http://blog.f8asb.com/?p=3104 Continuer la lecture ]]> i2ctobcdinterface

 

La carte SvxCard et tous les raspberry Pi possèdent un port I2C celui-ci a été prévu pour des extensions possibles. Et bien voici la première extension en cours de test qui sera utile pour les relais et qui viendra se connecter sur la carte SvxCard.

Fonctionnement:
Il s’agit d’une interface I2C vers BCD, voici un exemple pour les chiffres de 0 à 10. L’interface développée est sur 6 bits ce qui peut permettre de gérer 64 possibilités.(canaux)

Chiffre Bits
    0   0000
    1   0001
    2   0010
    3   0011
    4   0100
    5   0101
    6   0110
    7   0111
    8   1000
    9   1001

Pour resumé avec 4 fils ( +,GND,SDA,SCL) nous allons pouvoir piloter 6 leds qui pourront selon la combinaison gérer le pilotage BCD de votre radio.

Mais pour quoi faire?

Les radios pro sont pour la plupart muni d’une possibilité de pilotage de canaux via une prise externe. Prenons comme exemple Motorola très utilisé chez les radioamateurs pour les relais.
images

Pin # Description Data Dir. Debounce Act. Level
6 Channel Select 1 Input No Low
8 Channel Select 2 Input No Low
9 Channel Select 3 Input No Low
12 Channel Select 4 Input No Low
14 Channel Select 5 Input No Low

Nous sommes là sur un pilotage sur 5 bits.

Channel CS5 CS4 CS3 CS2 CS1
Front Panel H H H H H
1 H H H H L
2 H H H L H
3 H H H L L
4 H H L H H
5 H H L H L
6 H H L L H
7 H H L L L
8 H L H H H
9 H L H H L
10 H L H L H
11 H L H L L
12 H L L H H
13 H L L H L
14 H L L L H
15 H L L L L
16 L H H H H
17 L H H H L
18 L H H L H
19 L H H L L
20 L H L H H
21 L H L H L
22 L H L L H
23 L H L L L
24 L L H H H
25 L L H H L
26 L L H L H
27 L L H L L
28 L L L H H
29 L L L H L
30 L L L L H
31 L L L L L

Vous pourrez donc piloter 32 canaux avec l’interface I2C->BCD.

Pourquoi cette fonction?

Vous pouvez raccorder l’émetteur du relais et le faire changer de canal mémoire et donc de puissance ou de caractéristiques (DCS,CTCSS…..)

Par exemple sur le relais des Vosges, on pourrait imaginer:
Mémoire 1: 145,6625 25W
Mémoire 2: 145,6625 10W
Mémoire 3: 145,6625 5W
Mémoire 4: 145,6625 25W CTCSS 67Hz
Mémoire 5: 145,6625 10W CTCSS 67Hz
Mémoire 6: 145,6625 5W CTCSS 67Hz

Nous voila avec un émetteur dont on peut changer les caractéristiques par DTMF ou alors par des commandes SSH.

Mais l’intérêt est beaucoup plus important pour un partie transpondeur qui peut devenir pilotable, on l’appellera alors intercom.

Intercom, c’est le nom qui a été donné à ce procédé qui permet, à partir d’un relais, de programmer un autre émetteur-récepteur associé sur une fréquence choisie par l’utilisateur. Imaginez par exemple, que vous puissiez déclencher un relais VHF lointain à partir de votre relais UHF habituel, ou que vous puissiez contacter des stations mobiles en VHF alors que vous ne pouvez pas les entendre ! C’est un transpondeur programmable.

Il vous restera alors juste à programmer les mémoires de votre transpondeur et de les associer à un DTMF.

La prochaine étape sera l’écriture d’un module Svxlink qui va gérer l’intercom et le test sur une radio.

Cette interface est compatible avec toutes les radios qui utilisent un port externe de contrôle en BCD ( Motorola, Tait, DR1…).
Elle peut être directement reliée sur le Raspberry Pi pour les relais numériques et faire exactement la meme chose et pourquoi pas un jour un intercom numérique !
Avis aux amateurs 😉

L’interface très compacte (16mmx50mm) pourra être mise dans une gaine thermo avec des connecteurs coudés ou les fils directement soudés dessus, dans le prolongement du câble entre le port I2C et la radio).
Elle est muni de led pour nous indiquer le canal programmé (en binaire) uniquement pour la phase de recherche et développement.

svxcard_fonctions_1.1Je rappelle que la carte Svxcard est muni de 4 relais, elle peux donc d’origine gérer un transpondeur sur 4 bits (16 canaux)

Une petite vidéo d’un enchainement avec:
Allumage complet – arrêt complet – puis envoie de 1 à 9 – arrêt complet

algo-n-1b

i2cdetect -y 1, l’adresse de la carte avec A0 A1 A2 à la masse:capture-decran-2016-11-13-a-09-11-41
Le code de test de la vidéo:

#!/bin/bash
i2cset -y 1 0x20 0xFF
sleep 10
i2cset -y 1 0x20 0x00
sleep 2
i2cset -y 1 0x20 0x01
sleep 2
i2cset -y 1 0x20 0x02
sleep 2
i2cset -y 1 0x20 0x03
sleep 2
i2cset -y 1 0x20 0x04
sleep 2
i2cset -y 1 0x20 0x05
sleep 2
i2cset -y 1 0x20 0x06
sleep 2
i2cset -y 1 0x20 0x07
sleep 2
i2cset -y 1 0x20 0x08
sleep 2
i2cset -y 1 0x20 0x09
sleep 2
i2cset -y 1 0x20 0x00


Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI
]]>
https://blog.f8asb.com/2016/11/13/svxlink-interface-i2c-vers-bcd-pilotez-vos-radio/feed/ 0 3104
SVXLINK: Local.tcl et ses améliorations https://blog.f8asb.com/2016/11/12/svxlink-local-tcl-et-ses-ameliorations/ https://blog.f8asb.com/2016/11/12/svxlink-local-tcl-et-ses-ameliorations/#respond Sat, 12 Nov 2016 07:07:21 +0000 http://blog.f8asb.com/?p=2972 Continuer la lecture ]]> local_tclVoila pourquoi LOLA parle si bien…

Les nouvelles fonctionnalités sur F1ZBV ne pourraient pas fonctionner sans la modification de ce fichier c’est pour cela que j’ai décidé de vous le fournir et de vous le décrire.
Le principe des fonctions et de limiter les lignes de code et de pouvoir les appeler autant de fois que l’on en a besoin.
Le fichier Locale.tcl se place dans le repertoire de la langue pour nous: fr_FR
/usr/share/svxlink/sounds/fr_FR/events.d/Locale.tcl

Je pense que la majorité des nouvelles fonctions peuvent être compatibles avec d’autres langues, ou nécessitent quelques petites modifications.

Voici les fonctions que j’y ai ajoutées:
playTemp                                 dire la température
playFourDigitNumber       dire un chiffre à 4 décimales
playMonth                               dire le mois
playWindDir                          dire la direction d’après la lettre  (ex: N pour Nord)
playVoltage                             dire une tension

le fonctionnement est simple et commun à toute les fonctions. Il est nécessaire d’ajouter les fichiers sons correspondants.

A n’importe quelle moment dans votre programme tcl il vous suffira d’insérer cette fonction pour l’utiliser de la manière suivante:

<fonction> <variable> <;>
ex:
playNumber $resultat1;

playTemp
c'est fonction dira pour une valeur de 16.5: Seize degrés cinq                            playFourDigitNumber
c'est fonction dira pour une valeur de 1250: Mille deux cent cinquante
playMonth
c'est fonction dira pour une valeur de 02: Février 
playWindDir
c'est fonction dira pour une valeur de E: Est     

playVoltage
c'est fonction dira pour une valeur de 13.8Treize volts huit

Les codes complets du Locale.tcl ci-dessous:

###############################################################################
#
# Locale specific functions for playing back time, numbers and spelling words.
# Often, the functions in this file are the only ones that have to be
# reimplemented for a new language pack.
#
###############################################################################

#
#  25/06/2011   F1SMF    modif  for fr_FR
#  04/04/2016  F8ASB Add playTemp read temperature datas for fr_FR
#  01/10/2016  F8ASB Add functions:
#  playFourDigitNumber  Say number with four digits
#  playMonth            Say the month with the number
#  playWindDirAngle     Say winf direction with angle
#  playWindDir          Say wind direction with letter direction 
#  playTemp             Say temperature 
#  playVoltage          Say Voltage

#
# Spell the specified word using a phonetic alphabet
#
proc spellWord {word} {
  set word [string tolower $word];
  for {set i 0} {$i < [string length $word]} {set i [expr $i + 1]} {
    set char [string index $word $i];
    if {$char == "*"} {
      playMsg "Default" "star";
    } elseif {$char == "/"} {
      playMsg "Default" "slash";
    } elseif {$char == "-"} {
      playMsg "Default" "dash";
    } elseif {[regexp {[a-z0-9]} $char]} {
      playMsg "Default" "phonetic_$char";
    }
  }
}


#
# Spell the specified number digit for digit
#
proc spellNumber {number} {
  for {set i 0} {$i < [string length $number]} {set i [expr $i + 1]} {
    set ch [string index $number $i];
    if {$ch == "."} {
      playMsg "Default" "decimal";
    } else {
      playMsg "Default" "$ch";
    }
  }
}


#
# Say the specified two digit number (00 - 99)
#
proc playTwoDigitNumber {number} {
  if {[string length $number] != 2} {
    puts "*** WARNING: Function playTwoDigitNumber received a non two digit number: $number";
    return;
  }

  set first [string index $number 0];
if {($first == "0") || ($first == "O")} {
    playMsg "Default" $first;
    playMsg "Default" [string index $number 1];
   }  elseif {$first == "1"} {
        playMsg "Default" $number;
        }  elseif {$first == "7"} {
             playMsg "Default" "6X";
             if {[string index $number 1] == "1"} {
                 playMsg "Default" "and";
             }
             playMsg "Default" [expr $number - 60];
             } elseif {$first == "9"}  {
                  playMsg "Default" "8X";
                  playMsg "Default" [expr $number - 80];
                  } else {
                    playMsg "Default" "[string index $number 0]X";
                    if {[string index $number 1] == "1"} {
                        playMsg "Default" "and";
                    }
                    if {[string index $number 1] != "0"} {
                         playMsg "Default" "[string index $number 1]";
                    }
                  }
             }
#
# Say the specified three digit number (000 - 999)
#
proc playThreeDigitNumber {number} {
  if {[string length $number] != 3} {
    puts "*** WARNING: Function playThreeDigitNumber received a non three digit number: $number";
    return;
  }
  
  set first [string index $number 0];
    if {($first == "0") || ($first == "O")} {
    spellNumber $number
  } else {
    append first "00";
    playMsg "Default" $first;
    if {[string index $number 1] != "0"} {
      playTwoDigitNumber [string range $number 1 2];
    } elseif {[string index $number 2] != "0"} {
      playMsg "Default" [string index $number 2];
    }
  }
}

#
# Say the specified three digit number (1000 - 9999)
#
proc playFourDigitNumber {number} {
  if {[string length $number] != 6} {
    puts "*** WARNING: Function playFourDigitNumber received a non four digit number: $number";
    return;
  }

  set first [string index $number 0];
    if {($first == "1")} {
    playMsg "Default" "1000";
  } elseif {($first == "2")} {
    playMsg "Default" "2000";
  } elseif {($first == "3")} {
    playMsg "Default" "3000";
  } elseif {($first == "4")} {
    playMsg "Default" "4000";
  } elseif {($first == "5")} {
    playMsg "Default" "5000";
  } elseif {($first == "6")} {
    playMsg "Default" "6000";
  } elseif {($first == "7")} {
    playMsg "Default" "7000";
  } elseif {($first == "8")} {
    playMsg "Default" "8000";
  } elseif {($first == "9")} {
    playMsg "Default" "9000";  
  }
  set first [string index $number 1];
    if {($first == "0") || ($first == "O")} {
    playNumber [string range $number 2 5];
    } else {
    playNumber [string range $number 1 5];
    }
 }
#
#Say Month as intelligent as posible.
#

proc playMonth {Month} {
if { $Month =="01"} {
        playMsg "Months" "january";
    } elseif {$Month =="02"} {
        playMsg "Months" "February";
    } elseif {$Month =="03" } {
        playMsg "Months" "March";
    } elseif {$Month =="04" } {
        playMsg "Months" "April";
    } elseif {$Month =="05" } {
        playMsg "Months" "May";
    } elseif {$Month =="06" } {
        playMsg "Months" "June";
    } elseif {$Month =="07" } {
        playMsg "Months" "July";
    } elseif {$Month =="08" } {
        playMsg "Months" "August";
    } elseif {$Month =="09" } {
        playMsg "Months" "September";
    } elseif {$Month =="10" } {
        playMsg "Months" "October";
    } elseif {$Month =="11" } {
        playMsg "Months" "November";
    } elseif {$Month =="12" } {
        playMsg "Months" "December";  
}
 
}

#
#Say Wind Direction as intelligent as posible.
#

proc playWindDirAngle {windDir} {

if { $windDir =="N"} {
        puts "  Direction N"
        playMsg "WeatherStation" "North";
    } elseif {$windDir =="NNE"} {
        puts "  Direction NNE"
        playMsg "WeatherStation" "North";
        playMsg "WeatherStation" "North-East";
    } elseif {$windDir =="NE" } {
        puts "  Direction NE"
        playMsg "WeatherStation" "North-East";
    } elseif {$windDir =="ENE" } {
        puts "  Direction ENE"
        playMsg "WeatherStation" "East";
        playMsg "WeatherStation" "North-East";
    } elseif {$windDir =="E" } {
        puts "  Direction E"
        playMsg "WeatherStation" "East";
    } elseif {$windDir =="ESE"} {
        puts "  Direction ESE"
        playMsg "WeatherStation" "East";
         playMsg "WeatherStation" "South-East"; 
    } elseif {$windDir =="SE" } {
        puts "  Direction SE"
        playMsg "WeatherStation" "South-East";
    } elseif {$windDir =="SSE" } {
        puts "  Direction SSE"
        playMsg "WeatherStation" "South";
        playMsg "WeatherStation" "South-East";
    } elseif {$windDir =="S"} {
        puts "  Direction S"
        playMsg "WeatherStation" "South";
    } elseif {$windDir =="SSW" } {
        puts "  Direction SSW"
        playMsg "WeatherStation" "South";
        playMsg "WeatherStation" "South-West";
    } elseif {$windDir =="SW"} {
        puts "  Direction SW"
        playMsg "WeatherStation" "South-West";
    } elseif {$windDir =="WSW" } {
        puts "  Direction WSW"
        playMsg "WeatherStation" "West";
        playMsg "WeatherStation" "South-West";
    } elseif {$windDir =="W"} {
        puts "  Direction W"
        playMsg "WeatherStation" "West";
    } elseif {$windDir =="WNW"} {
        puts "  Direction WNW"
        playMsg "WeatherStation" "West";
        playMsg "WeatherStation" "North-West";
    } elseif {$windDir =="NW"} {
        puts "  Direction NW"
       playMsg "WeatherStation" "North-West";
    } elseif {$windDir =="NNW" } {
        puts "  Direction NNW"
       playMsg "WeatherStation" "North";
       playMsg "WeatherStation" "North-West";
    } else {
        puts "  Non disponible"
    }
    }
#
#Say Wind Direction with angle as intelligent as possible.
#

proc playWindDir {windDir} {

if { 0 < $windDir && $windDir < 22.5} { puts " Direction N" playMsg "WeatherStation" "North"; } elseif {$windDir >= 22.5 && $windDir < 45 } { puts " Direction N NE" playMsg "WeatherStation" "North"; playMsg "WeatherStation" "North-East"; } elseif {$windDir >= 45 && $windDir < 67.5 } { puts " Direction NE" playMsg "WeatherStation" "North-East"; } elseif {$windDir >= 67.5 && $windDir < 90 } { puts " Direction NE E" playMsg "WeatherStation" "North-East"; playMsg "WeatherStation" "East"; } elseif {$windDir >= 90 && $windDir < 112.5 } { puts " Direction E" playMsg "WeatherStation" "East"; } elseif {$windDir >= 112.5 && $windDir < 135 } { puts " Direction E SE" playMsg "WeatherStation" "East"; } elseif {$windDir >= 135 && $windDir < 157.5 } { puts " Direction SE" playMsg "WeatherStation" "South-East"; } elseif {$windDir >= 157.5 && $windDir < 180 } { puts " Direction SE S" playMsg "WeatherStation" "South-East"; playMsg "WeatherStation" "South"; } elseif {$windDir >= 180 && $windDir < 202.5} { puts " Direction S" playMsg "WeatherStation" "South"; } elseif {$windDir >= 202.5 && $windDir < 225 } { puts " Direction S SW" playMsg "WeatherStation" "South"; playMsg "WeatherStation" "South-West"; } elseif {$windDir >= 225 && $windDir < 247.5} { puts " Direction SW" playMsg "WeatherStation" "South-West"; } elseif {$windDir >= 247.5 && $windDir < 270 } { puts " Direction SW W" playMsg "WeatherStation" "South-West"; playMsg "WeatherStation" "West"; } elseif {$windDir >= 270 && $windDir < 292.5} { puts " Direction W" playMsg "WeatherStation" "West"; } elseif {$windDir >= 292.5 && $windDir < 315 } { puts " Direction W NW" playMsg "WeatherStation" "West"; playMsg "WeatherStation" "North-West"; } elseif {$windDir >= 315 && $windDir < 337.5} { puts " Direction NW" playMsg "WeatherStation" "North-West"; } elseif {$windDir >= 337.5 && $windDir < 359 } { puts " Direction NW N" playMsg "WeatherStation" "North-West"; playMsg "WeatherStation" "North"; } else { puts " Non disponible" } } # # Say a number as intelligent as possible. Examples: # # 1 - one # 24 - twentyfour # 245 - twohundred and fourtyfive # 1234 - twelve thirtyfour # 12345 - onehundred and twentythree fourtyfive # 136.5 - onehundred and thirtysix point five # proc playNumber {number} { if {[regexp {(\d+)\.(\d+)?} $number -> integer fraction]} {
    playNumber $integer;


# No say 0 if decimal = 0
if {$fraction != 0} {
    playMsg "Default" "decimal";
    spellNumber $fraction;
}

    return;
  }

  while {[string length $number] > 0} {
    set len [string length $number];
    if {$len == 1} {
      playMsg "Default" $number;
      set number "";
    } elseif {$len % 2 == 0} {
      playTwoDigitNumber [string range $number 0 1];
      set number [string range $number 2 end];
    } else {
      playThreeDigitNumber [string range $number 0 2];
      set number [string range $number 3 end];
    }
  }
}

#
# Say temperature as intelligent as possible. Examples:
#

proc playTemp {number} {
  if {[regexp {(\d+)\.(\d+)?} $number -> integer fraction]} {
    playNumber $integer;
    playMsg "WeatherStation" "degree";

# No say 0 if decimal = 0
if {$fraction != 0} {
    spellNumber $fraction;
}
   return;
}

  while {[string length $number] > 0} {
    set len [string length $number];
    if {$len == 1} {
      playMsg "Default" $number;
      set number "";
    } elseif {$len % 2 == 0} {
      playTwoDigitNumber [string range $number 0 1];
      set number [string range $number 2 end];
    } else {
      playThreeDigitNumber [string range $number 0 2];
      set number [string range $number 3 end];
    }
  }
}

#
# Say Voltage as intelligent as possible. Examples:
#

proc playVoltage {number} {
if {[regexp {(\d+)\.(\d+)?} $number -> integer fraction]} {
    playNumber $integer;
    playMsg "Default" "volts";

# No say 0 if decimal = 0
if {$fraction != 0} {
    spellNumber $fraction;
}
   return;
}

  while {[string length $number] > 0} {
    set len [string length $number];
    if {$len == 1} {
      playMsg "Default" $number;
      set number "";
    } elseif {$len % 2 == 0} {
      playTwoDigitNumber [string range $number 0 1];
      set number [string range $number 2 end];
    } else {
      playThreeDigitNumber [string range $number 0 2];
      set number [string range $number 3 end];
    }
  }
}


#
# Say the time specified by function arguments "hour" and "minute".
#

proc playTime {hour minute} {
# Strip white space and leading zeros. Check ranges.
  if {[scan $hour "%d" hour] != 1 || $hour < 0 || $hour > 23} {
    error "playTime: Non digit hour or value out of range: $hour"
  }
  if {[scan $minute "%d" minute] != 1 || $minute < 0 || $minute > 59} {
    error "playTime: Non digit minute or value out of range: $hour"
  }
  if {[string length $hour] == 1} {
     playMsg "Default" [expr $hour];
   } else {
     playTwoDigitNumber $hour;
    }
#  playSilence 250
  playMsg "Core" "time";

   if {$minute == 0} {
     return;
   }
    if {[string length $minute] == 1} {
        playMsg "Default" [expr $minute];
    } else {
        playTwoDigitNumber  $minute;
    }
}

#
# This file has not been truncated
#

Vous pouvez vous aussi créer vos propres fonctions et partager.

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI
]]>
https://blog.f8asb.com/2016/11/12/svxlink-local-tcl-et-ses-ameliorations/feed/ 0 2972