Skip to content

armel/RRFRemote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RRFRemote

basic grey fire core2 coreS3 aws

Le projet RRFRemote permet de suivre l'activité du RRF et de piloter son point d'accès ou hotpsot. Il peut fonctionner en charge (via un connecteur USB) ou sur batterie.

RRFRemote

Préambule

Désormais, l'application RRFRemote est disponible sous forme de firmware. Il est possible de l'installer depuis l'application M5Burner développée par M5Stack. Vous n'avez donc plus besoin de déployer VSCode et Platformio, d'éditer le code source et de recompiler le code à chaque fois.

Néanmoins, le code source de l'ancienne version est toujours disponible, même s'il n'évoluera plus. Et vous pouvez toujours consulter l'ancienne documentation associée.

Architecture technique

Présentation rapide

M5Stack est basé sur un ESP-32, dual core, pouvant être cadencé jusqu'à 240 MHz. Néanmoins, le RRFRemote fonctionne parfaitement à 80 MHz. M5Stack dispose de 16 MB de mémoire flash. Comme tous les ESP, le Wifi est évidement intégré. L'écran 2 pouces IPS couleur, basé sur le chipset ILI9342C, affiche une résolution confortable de 320 x 240 pixels. Il est hyper lumineux. La batterie intégrée fait 110 mAh. Il est possible d'ajouter une batterie supplémentaire (de 700 ou 800mAh) si besoin.

En terme de dimensions et de masse, c'est très compact : 54 x 54 x 18mm pour 47,2g. Se trimbale dans la poche sans problème ;)

Specs techniques détaillées :

Voici les specs techniques détaillées, pour les curieux :

Resources Description
ESP32 240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi, dual mode Bluetooth
Flash Memory 16MB
Power Input 5V @ 500mA
Port TypeC x 1, GROVE(I2C+I/0+UART) x 1
Core Bottom Port PIN (G1,G2,G3,G16, G17, G18, G19, G21, G22, G23, G25, G26, G35, G36)
IPS Screen 2 inch, 320x240 Colorful TFT LCD, ILI9342C, max brightness 853nit
Button Custom button x 3
Speaker 1W-0928
Battery 110mAh @ 3.7V
Antenna 2.4G 3D Antenna
Operating Temperature 32°F to 104°F ( 0°C to 40°C )
Net weight 47.2g
Gross weight 93g
Product Size 54 x 54 x 18mm
Package Size 95 x 65 x 25mm
Case Material Plastic ( PC )

En complément

Coté QSJ, compter autour de 35€. Vous disposez alors d'une plateforme de développement complète, totalement autonome, programmable en C et C++, MicroPython et UIFlow, depuis Linux, Windows ou MacOS, le tout dans un boitier compact et ultra ergonomique.

Ce QSJ est à comparer à celui d'un écran Nextion type NX4832K035, neurasthénique, dépourvu de connectivité Wifi ou GPIO, programmable sous un environnement totalement propriétaire, impliquant un cablage et incapable de fonctionner en standalone. Bref, pour reprendre une des formules du fabriquant, un écran Nextion est la meilleure solution pour remplacer les tubes LED classiques Nixie. Et nous sommes d'accord, HI ;)

Versions supportées actuellement

Le développement actuel du RRFRemote prend en charge l'ensemble des M5Stack Core (à boutons) et Core2 (tactiles). La version pour M5Stack CoreS3 est encore expérimentale.

Fonctionnalités

Au stade actuel du développement, le RRFRemote propose les fonctionnalités suivantes.

Concernant le suivi de l'activité du RRF

Voici la liste des fonctionnalités actuelles :

  • suivi quasi temps réel de l'activité des salons du RRF,
  • bascule de salon en salon, via les boutons gauche et droit,
  • affichage de l'indicatif du link en cours d'émission et de son temps d'émission,
  • affichage alterné :
    • du nombre de links connectés,
    • du nombre de links actifs,
    • du nombre de passages en émission depuis le début de la journée,
    • du temps d'émission cumulé depuis le début de la journée,
    • de l'heure,
    • de la distance avec l'ISS,
  • affichage des links entrants et sortants, via scrolling horizontal,
  • affichage du département, du locator et de la distance du link en cours d'émission, via scrolling horizontal,
  • affichage alterné complémentaire :
    • du top 10 des links les plus actifs,
    • de l'historique des 10 derniers links passés en émission,
    • des blocages RRFSentinel en cours,
    • des données techniques de l'ESP32,
    • des données techniques de l'activité du Soleil (propagation, SFI, SN, A Index, K Index, etc.),
    • des données techniques du positionnement de l'ISS (altitude, longitude, latitude, visibilité, etc.),
  • ventilation par nombre de TX dans la journée, sous forme d'histogramme,
  • scanner permanent de suivi d'activité sur les autres salons,
  • mise en veille automatique de l'écran, en cas d'absence d'activité pendant un temps donné.

Concernant le pilotage de son link (ou hotspot)

Voici la liste des fonctionnalités actuelles :

  • QSY vers un salon,
  • activation et désactivation du RRFRaptor,
  • bascule en mode Perroquet,
  • bascule en mode Follow,
  • appel de fonctions spéciales librement paramétrables par le Sysop
    • reboot du Spotnik,
    • adresse IP du Spotnik,
    • scan rapide du Raptor,
    • libre,
    • libre.

Remarque 1

Concernant le modèle Core2, tactile, il est désormais possible d'afficher une télécommande DTMF 100% tactile. Il suffit de cliquer sur le haut de l'écran pour l'afficher.

Remarque 2

Si le mode Follow est activé, le RRFRemote affichera les informations du salon sur lequel se trouve votre link et il le suivra au grès de ses QSY. Il ne sera pas possible de consulter les informations d'un autre salon, à l'aide des boutons gauche et droit, à moins évidement de désactiver le mode Follow.

Remarque 3

Concernant l'appel de fonctions spéciales paramétrables par le Sysop, elles sont au nombre de 5. C'est plutôt une fonctionnalité pour les power user ayant un minimum de compétence en scripting. Par défaut, et à titre d'exemple, 3 fonctions sont déjà définies : reboot et adresse IP du Spotnik ainsi que le scan rapide du Raptor. Libre à vous de les modifier ou de définir celle qui reste libre. Il vous suffit d'adapter le code du script RRFRemote.js. Ces appels de fonctions correspondent aux traitements des appels des commandes cmd 2000, 2001, 2002, 2003 et 2004 du script RRFRemote.js.

Serveur Web intégré

Cette fonctionnalité permet de visualiser votre RRFRemote depuis un simple navigateur. Il est même possible de le piloter par ce biais, dans la mesure ou les boutons sont cliquables. Afin d'afficher votre RRFRemote dans votre navigateur, il suffit d'aller sur http://adresse_ip_de_votre_rrfremote/. Pour rappel, l'adresse IP que récupère votre RRFRemote s'affiche sur l'écran d'accueil, à l'allumage. Elle est également indiquée dans données techniques de l'ESP32 (affichage alterné complémentaire) ou dans le menu settings.

Attention : c'est lent ! Et il n'y a pas de rafraîchissement automatique. Il faut cliquer sur le fond de l'image de l'écran pour faire une nouvelle > capture. Et sinon, comme dit, les boutons sont fonctionnels.

Mais pourquoi avoir développé une telle fonctionnalité ? Pour 2 raisons :

  • premièrement, c'était amusant à développer,
  • deuxièmement, ca permet de prendre de belle capture d'écran du RRFRemote, la preuve ;)

Capture Capture

Contrôle de l'état des connexions réseau

Un petit cercle est affiché en haut, à droite de l'écran de votre RRFRemote. Il permet, à tout moment, de contrôler l'état des connexions réseau. En l'occurence :

  • si ce cercle est plein (rempli), tout est nominal : connexion Wifi et connexion avec le Spotnik.
  • si ce cercle est vide : il y a une perte temporaire de connexion avec le Spotnik. Pas de panique, ça arrive. Mais sauf problème grave, ça ne dure jamais. En complément, le message défilant affichera Perte de connexion Spotnik.
  • si ce cercle est invisible : il n'y a carrément plus de connexion Wifi.

En complément

Il est possible de :

  • changer le mode d'affichage : EXPERT ou BASIC (pour un affichage avec une taille de police plus importante),
  • changer les couleurs du thème,
  • régler la luminosité de l'écran,
  • activer une alerte sonore TOT (alerte visuelle via la LED sur le CORE2),
  • passer d'une configuration à une autre.

Installation

J'ai publié une petite video sur ma chaine Youtube, pour vous accompagner dans l'installation du RRFRemote sur votre M5Stack. Mais je vous invite à lire la documentation qui suit.

Coté Spotnik (si vous en possédez un)

Le RRFRemote n'a pas nécessairement besoin d'un Spotnik pour fonctionner. À ce titre, il peut être utilisé par un simple SWL, s'il le souhaite, afin de suivre l'activité du RRF.

Mais si vous possédez un Hotspot ou si vous êtes Sysop d'un point d'accès, assurez vous que le script RRFRemote.js fonctionne. Depuis une connexion SSH, vous pouvez lancer le script via la commande :

nohup node /root/RRFRemote.js &

Afin de lancer le script RRFRemote.js automatiquement, à chaque redémarrage, le plus simple est d'éditer le fichier /etc/rc.local et décommenter la ligne :

#nohup node /root/RRFRemote.js &

Cette ligne se trouve en fin de fichier /etc/rc.local. Il suffit d'enlever le #. La ligne devient alors :

nohup node /root/RRFRemote.js &

Coté Spotnik, c'est terminé.

Coté M5Stack

Prérequis

Vous avez besoin d'une M5Stack (avec une mémoire flash de 16 Mo), d'une carte micro SD et d'un PC sous Windows, Linux ou MacOS, avec les pilotes USB installés et l'application M5Burner version 3.0.0 (ou supérieure).

Carte micro SD

Préparez et formatez une carte micro SD en FAT32. Cette carte micro SD sera utilisée pour stocker vos fichiers de configuration et pour stocker éventuellement d'autres firmwares.

Installation des pilotes USB

Veuillez vous rendre sur la page de téléchargement afin de télécharger le pilote USB correspondant à votre système d'exploitation et installez-le.

Installation de l'application M5Burner

Veuillez vous rendre sur la page de téléchargement afin de télécharger l'application M5Burner (version 3.0.0 ou supérieure) correspondant à votre système d'exploitation et installez-la.

Flashage du M5Stack

Connectez votre M5Stack à votre PC.

Lancez l'application M5Burner et sélectionnez le firmware RRFRemote correspondant à votre modèle de M5Stack (Core, Core2, etc.). Vous pouvez-vous aider du moteur de recherche intégré à M5Burner pour trouver le firmware RRFRemote.

Attention, il existe une version pour le M5Stack Core (Basic, Grey, Fire, etc.) avec boutons et une version pour le M5Stack Core2 (Core2, AWS, etc.) avec écran tactile. La version pour M5Stack CoreS3 est encore expérimentale.

Cliquez sur le bouton bleu Download. Cliquez ensuite sur le bouton rouge Burn en prenant soin de bien selectionner le port USB sur lesquel est branché votre M5Stack.

Votre M5Stack sera flashé avec la dernière version du firmware RRFRemote.

Fichiers de configuration

Il vous reste à créer votre ou vos fichiers de configurations. Dans ce répertoire, vous trouverez 3 exemples de fichiers de configuration à adapter par vos soins.

Fichier Description
Simple.ini Fichier simple avec uniquement la section requise [wifi]
Complet.ini Fichier complet avec toutes les sections
SWL.ini Fichier pour les SWL n'ayant pas de point d'accès

Le plus judicieux est de partir du fichier complet. Editez-le à l'aide d'un simple éditeur de texte (Notepad, Notepad++, SublimeText, etc.) et renseignez les informations qui vous concerne. Les différentes sections sont décrites un peu plus loin.

Copiez ce fichier de configuration, à la racine de votre carte Micro SD (formatée en FAT32). Libre à vous de le renommer. Vous pouvez aussi en sauvegarder plusieurs, si vous le désirez. Par exemple, une version pour gérer votre Hotspot depuis votre box Internet de votre QRA, une autre depuis votre partage de connexion Smartphone, etc.

Description des sections

Voici une description des sections. Seule la section [wifi] est requise, pour des raisons évidentes.

Section Requis Valeur Description Défaut
[wifi]
wifi_ssid votre SSID Wifi
wifi_password votre Password Wifi
[spotnik]
spotnik_name le QRZ de votre point d'accès M5Stack
spotnik_url l'url HTTP d'accès au script RRFRemote.js
[geolocation]
latitude votre latitude 48.84
longitude votre longitude 2.27
timezone votre timezone CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00

Remarque : la timezone par défaut correspond à la France (Europe/Paris). Si vous devez adapter la timezone, consultez cette liste plus détaillée. En dernier recours, me contacter si besoin d'aide ou si vous habitez dans une région exotique... Voici néanmoins quelques exemples de valeurs :

Pays Timezone
Europe/Paris CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
Europe/Brussels CET-1CEST,M3.5.0,M10.5.0/3
Europe/Sofia EET-2EEST,M3.5.0/3,M10.5.0/4
America/Montreal EST5EDT,M3.2.0,M11.1.0
America/Martinique AST4
America/Guadeloupe AST4
Pacific/Noumea NCT-11

Il existe aussi les sections suivantes. Elles sont complémentaires et vous n'en aurez peut-être pas besoin.

Section Requis Valeur Description Défaut
[timeout]
timeout_tot_rrf réglage du TOT sur le salon d'appel en secondes 115
timeout_tot_elsewhere réglage du TOT sur les salons annexes en secondes 285
timeout_menu réglage du delai de sortie automatique du menu en secondes 10
[alert] maximum 64 valeurs
alert_01 couple indicatif / couleur RGB
...
alert_64 couple indicatif / couleur RGB
[sysop] maximum 5 valeurs
sysop_01 couple libellé / code commande REBOOT, 2000
sysop_02 couple libellé / code commande IP, 2001
sysop_03 couple libellé / code commande SCAN, 2002
sysop_04 couple libellé / code commande LIBRE, 2003
sysop_05 couple libellé / code commande LIBRE, 2003

Remarque : les alertes sont uniquement utiles si vous possédez un module M5GO (Core) ou M5GO2 (Core2). Voici un exemple :

; Alert Config
[alert]
alert_01 = F4HWN, 0xffffff
alert_02 = F5NLG, 0x00ff00
alert_03 = F1EVM, 0x00ff00
alert_04 = F4GGU, 0x00ff00
alert_05 = F1TZO, 0x00ff00
alert_06 = F4VSJ, 0x00ff00
alert_07 = F1ZPX, 0xffffff
alert_08 = F5LGW, 0x0000ff
alert_09 = F4ICR, 0x0000ff
alert_10 = FG5GP, 0x0000ff
alert_11 = FM,    0xffa000
alert_12 = FG,    0xffa000
alert_13 = F,     0x202080
alert_14 = ON,    0x800000

Utilisation

Démarrez votre M5Stack.

La procédure de démarrage commence par l'étape de chargement du binLoader (gauge de progression verte). Le binLoader permet de charger un autre firmware, stocké à la racine de votre carte micro SD ou en mémoire Flash. Cela permet de rendre votre M5Stack multi-applicatif. À ce titre, à la demande de plusieurs Radio Amateurs, le DXTracker est désormais installé en mémoire flash, en complément du RRFRemote. Si vous souhaitez changer de firmware, appuyez sur le bouton du milieu afin d'entrer dans le menu du binLoader. Utilisez les boutons gauche et droite pour naviguer dans la liste des firmwares et valider le firmware de votre choix en appuyant sur le bouton du milieu. Votre M5Stack sera alors flashé à la volée avec ce nouveau firmware avant de redémarrer (gauge de progression rouge). Si vous ne voulez pas changer de firmware, sans attendre la fin de la gauge de progression verte du binLoader, vous pouvez appuyer sur les boutons gauche ou droite pour bypasser cette étape.

L'étape suivante concerne le chargement du iniLoader (gauge de progression bleu). Le iniLoader va vous permettre de lire vos fichiers de configuration au format .ini. Là encore, appuyez sur le bouton du milieu afin d'entrer dans le menu du iniLoader. Utilisez les boutons gauche et droite pour naviguer dans la liste des fichiers de configuration au format .ini et valider le fichier de votre choix en appuyant sur le bouton du milieu. S'il ne comporte aucune erreur, l'application RRFRemote devrait démarrer. Vous observerez alors l'établissement de la connexion Wifi, la synchronisation du temps, etc.

À notez qu'une copie du dernier fichier de configuration valide est effectuée dans la mémoire de votre M5Stack. La selection d'un fichier de configuration ne sera donc plus nécessaire au prochain redémarrage, sauf si vous décidez évidement d'entrer dans le menu du iniLoader. Par contre, si vous apportez des modifications à ce fichier, il faudra évidement le recharger à nouveau !

Précisons enfin, qu'à l'image du binLoader, vous pouvez appuyer sur les boutons gauche ou droite pour bypasser cette étape.

Amusez-vous bien 🤗

Remerciements

Un grand merci à F4ICR Pascal, F6FDY Eddie, F5LGW Stéphane, F4IGC Philippe et tous les autres, pour la confiance, les idées et l'aide qu'ils m'ont apporté depuis le début de ce projet. Avoir des OMs impliqués qui suivent de près mes développements est toujours stimulant 😌

Dons

Special thanks to Rolf Schroeder DL8BAG, Brian Garber WB8AM, Matt B-Wilkinson M6VWM, Robert Agnew KD0TVP, Meinhard Frank Günther DL0CN, Johan Hansson SM0TSC, Tadeusz Pater VA7CPM, Frederic Ulmer F4ESO, Joshua Murray M0JMO, Mark Hammond N8MH, Angel Mateu Muzzio EA4GIG (2 times 🍷🍷), Hiroshi Sasaki JL7KGW, Robert John Williams VK3IE, Mark Bumstead M0IAX, Félix Symann F1VEO, Patrick Ruhl DG2YRP, Michael Beck DH5DAX, Philippe Nicolas F4IQP, Timothy Nustad KD9KHZ, Martin Blanz DL9SAD, Edmund Thompson AE4TQ, Gregory Kiyoi KN6RUQ, Patrick Samson F6GWE, George Kokolakis SV3QUP, Ambrose "Bo" Barry W4GHV, Roger Bouche F1HCN, Christopher Platt, Pascal Paquet F4ICR, Gregory Kiyoi, Ning Yang BH7JAG, Mitsuhiko Nagasawa JL1LYT, Mike Mann G4GOC, David Cappello, Matt Brinkhoff KB0RXC, Franklin Beider WD9GZ, Robrecht Laurens ON4ROB, Florian Wolters DF2ET, James Gatwood WA9JG, Christoph Gässler DL6SEZ, Roger Kenyon WB2YOJ, Jean-pierre Billat F1RXM (2 times 🍷🍷), John Sheppard G4WOD, Jean-Cyrille Vercollier F6IWW and Kenneth Goins Jr for their donations. That’s so kind of them. Thanks so much 🙏🏻

Si vous trouvez ce projet amusant et utile, alors offrez-moi un verre de vin 🍷 😉 If you find this project fun and useful, then buy me a glass of wine 🍷 😉

That's all

Bon trafic à tous, 88 & 73 de Armel F4HWN !