Flash / Paramétrage compagnon Meshcore

Contrairement à Meshtastic, vous devez choisir dès le départ le rôle que vous allez donner à votre nœud. L’avantage c’est que c’est beaucoup plus simple : dans la majorité ça sera soit un répéteur, soit un compagnon*, c’est-à-dire un nœud mobile sur lequel vous envoyez et recevez des messages. Voyons la configuration de ce dernier :

* il y a d’autres rôles, mais ultra spécifiques :

  • room server = nœud servant pour stocker des messages pour que d’autres puissent venir les consulter plus tard.
  • companion USB = comme son nom l’indique, un compagnon auquel vous vous connectez en usb, par exemple branché directement sur un ordinateur.

Flashage du firmware

  1. Prenez le nœud que vous avez choisi et branchez-le en USB sur votre ordinateur.
  2. Rendez-vous sur https://flasher.meshcore.co.uk/ dans un navigateur type Brave, Chrome ou Edge (ça ne fonctionne pas dans Firefox car ce dernier ne gère pas les connexions directes USB à des périphériques).
  3. Dans la liste, recherchez le nom de votre nœud et cliquez dessus. Par exemple tapez « t10 » et cliquez sur « Seeed Studio SenseCap T1000-E »
  4. Choisissez « Companion Bluetooth » (si vous prévoyez de vous connecter au nœud en Bluetooth par la suite).
  5. Sélectionnez la version que vous voulez installer (celle proposée est probablement déjà la bonne) puis « Enter DFU mode » (DFU ça veut dire Device Firmware Update, c’est-à-dire « Mise à jour du firmware de l’appareil »).
  6. Choisissez le port auquel est connecté votre nœud, son nom est généralement évident, puis sur le bouton connexion.
  7. Attention : S’il y a déjà un firmware autre que Meshcore d’installé, nous vous recommandons ensuite de cliquer sur « Erase Flash » afin d’effacer toute trace de l’ancien firmware. Ensuite le nœud va redémarrer, il vous faudra de nouveau le passer en mode DFU. Le meilleur moyen est de rafraîchir la page, rechoisir le type de nœud, le type de firmware et de recliquer sur le bouton DFU.
  8. Cliquez sur le bouton « Flash » (pas Download). Patientez quelques secondes, votre nœud est prêt à être configuré en Bluetooth. Vous pouvez le débrancher du câble USB.

Selon les modèles d’appareils, le passage en mode DFU ne peut pas se faire logiciellement, vous aurez peut-être à le faire via les boutons du nœud. Par exemple sur un T1000e il faut apuuyer sur le bouton et rapidement débrancher/rebrancher (via la prise magnétique c’est plus facile) 2 fois. Sur d’autres il faudra appuyer sur le bouton reset lorsqu’il est branché en USB… reportez-vous à la notice de votre matériel.

Une bonne astuce : sur les nœuds à base de chip nRF52840 on sait qu’il est en mode DFU si on le voit apparaître dans l’explorateur de fichiers (ou le finder sur Mac) comme une clé USB.

Paramétrage via l’application

  1. Installez et lancez l’application Meshcore sur votre smartphone. Vous pouvez la télécharger depuis le Google Play Store sur Android ou l’App Store Apple pour iOS/iPhone. Une autre application, open-source, Meshcore-open est en cours de développement mais pas encore dans les app stores. Si vous préférez l’utiliser, il faut télécharger l’APK et l’installer en bravant les blocages d’Android.
  2. Normalement l’application trouve directement votre nouveau nœud, vous n’avez qu’à cliquer dessus pour vous y connecter
  3. Un mot de passe vous est demandé pour l’appairage, sur un nœud sans écran c’est 123456, sinon il est affiché sur l’écran. Nous avons souvent constaté que le premier appairage échouait sans demander le code. Il faut alors réessayer, et la seconde fois le code devrait vous être demandé et l’appairage se terminer correctement.
  4. Cliquez sur l’icône engrenage en haut à droite, sur cette page vous avez les principaux réglages directement accessibles
  5. Name : donnez un nom à votre nœud. Il s’agit d’un compagnon, reportez-vous à la convention de nommage.
  6. Publick Key : c’est un champ « informatif », rien à modifier
  7. Latitude et Longitude : cliquez sur la petite carte à droite de ces champs et cliquez là où vous voulez positionner le nœud. Si votre nœud intègre un GPS sa position sera par la suite mise à jour, sinon mettez un endroit près de chez vous. Le point est « exact ». Là où vous cliquez le nœud sera indiqué sur les cartes, donc choisissez l’endroit qui vous convient même s’il n’est pas réel.
  8. Cochez share Position in advert si vous souhaitez que les autres nœuds puissent savoir où vous êtes
  9. Pour les radio settings, cliquez sur le bouton « choose preset » et choisissez « EU/UK (Narrow) » celà remplira automatiquement les autres champs au dessous. Ce sont les réglages utilisés par la très grande majorité de l’Europe et du Royaume-Uni, pour l’instant ce sont ceux que nous utilisons même si d’autres expérimentations sont en cours.
  10. Pour Transmit Power, mettez la valeur associée à votre matériel, souvent 22 (sauf Heltec v4). Parfois il y a des subtilités dans la manière dont est gérée la puissance car il s’agit de la puissance avant amplification, donc si par exemple votre préréglage est à 10 dB, laissez cette valeur, c’est probablement la bonne pour sortir le maximum en sortie d’amplification.
  11. Validez en cliquant sur la coche « ✓ » en haut à droite

Vous avez fait le plus gros, normalement à ce stade vous devriez pouvoir communiquer avec les nœuds autour de vous ! Nous verrons en détail l’ensemble des autres paramètres plus tard.

Pour découvrir les autres nœuds, le principe de Meshcore est de vous « annoncer » (advert). C’est-à-dire que ça ne sont pas les autres qui émettent régulièrement pour dire qu’ils existent, mais à vous de dire explicitement/manuellement que vous existez. En entendant ça, les nœuds autour de vous répondront automatiquement. Pour le faire, cliquez sur l’icône radio en haut à droite (à gauche de l’engrenage). Choisissez « Advert flood routed » pour vous annoncer aux nœuds que vous pouvez directement contacter + leurs contacts à eux et ainsi de suite. S’il y a du monde autour de vous, vous devriez rapidement les voir apparaître.

Attention : Pour pouvoir échanger entre 2 contacts la première fois, il faut que chacun ait été vu par l’autre (et ajouté, si l’ajout automatique a été désactivé, sinon c’est automatique) avant de pouvoir s’envoyer des messages. Si vous voulez rapidement communiquer avec une autre personne suite à la première configuration d’un nœud, le principe est donc :

  1. je commence par m’assurer (via un autre moyen tel qu’un appel téléphonique ou en étant ensembles au même endroit) que mon correspondant a bien son nœud compagnon allumé.
  2. je m’annonce.
  3. la personne avec qui je veux communiquer me voit désormais dans sa liste de contacts.
  4. cette personne s’annonce également (car si elle vous écrit directement cela ne fonctionnera pas car vous n’avez pas encore ses informations de contact et le message sera rejeté.
  5. je vois mon interlocuteur dans ma liste de contacts, maintenant je peux lui parler.

Un autre moyen est d’écrire sur le canal « Public » pour commencer et de demander aux autres de répondre.

Canaux de communication

Par défaut un canal nommé « Public » est créé. Comme son nom l’indique, tout ce qui y est publié est publique et est répété à tout les autres nœuds, même jusqu’en Pologne s’il y a une chaîne de nœuds permettant d’aller jusque là-bas.

Comme pour Meshtastic, on peut créer des canaux publics ainsi que des canaux privés. Leur création diffère néanmoins.

Pour créer ou rejoindre un canal, cliquez sur les trois petits points en haut à droite de l’application et choisissez « Add Channel »

  • Pour créer un canal privé, c’est simple : puis « Create a Private Channel ». Donnez-lui le nom que vous souhaitez, par exemple « Famille » puis « Create Channel ». L’application ajoutera automatiquement une clé (Secret Key). Vous devrez la communiquer aux autres personnes du groupe, soit en la copiant-collant, soit via le QR code affiché.
  • Pour rejoindre un canal privé, même approche mais choisissez « Join a Private Channel ». Saisissez le nom du canal + la clé (Secret Key) et validez.
  • Pour rejoindre un canal public c’est un peu différent. Il y a UN SEUL canal public, nommé Public comme expliqué plus haut, mais pour créer d’autres canaux faciles d’accès par les autres (sans clé), on utilise des « Hashtag Channels ». C’est à dire précédés d’un dièze (#). Leur nom ne doit contenir que des lettres minuscules ou des chiffres. Pas de majuscule, d’espace, d’accent ou autre. On ne créé pas à proprement parler un hashtag channel, chacun le rejoint en saisissant son nom, par exemple #paris. En réalité il s’agit de canaux privés mais dont la clé, au lieu d’être aléatoire est calculée automatiquement en utilisant le nom du canal. Donc par exemple la clé de #paris est « d0fc2b…0311 ». N’importe qui aura la même clé lorsqu’il rejoindra ce canal et donc pourra communiquer avec les autres membres.

Suggestions de canaux :

Hormis le canal Public (à conserver au moins au départ, s’il est trop pollué par des messages internationaux ou sans intérêt pour votre communauté, vous pourrez le supprimer ensuite), nous vous conseillons la création de canaux basés sur :

  • le nom de votre commune et de celles alentour
  • le nom de votre département
  • éventuellement le nom de votre région
  • #france

Consultez cette page pour en apprendre plus sur le nommage des canaux.

Un point important à surveiller

L’optimisation du routage pour accéder aux nœuds distants, par exemple pour envoyer des messages à un destinataire spécifique peut parfois engendrer des situations qu’on peut avoir du mal à appréhender :

  • Quand on envoie un message à un destinataire spécifique, Meshcore va d’abord essayer de réutiliser le chemin précédemment utilisé. Si ce chemin n’est plus pertinent (parce que vous ou votre destinataire vous êtes déplacés entre temps) il va y avoir quelques nouvelles tentatives de renvoi toujours via ce même chemin histoire d’être sûr, puis – si le message n’est toujours pas arrivé – l’application passe en mode « flood », c’est-à-dire qu’elle envoie le message pour qu’il soit réémis par tous les répéteurs, afin de maximiser les chances de bonne réception. C’est le cas idéal, ça prend un peu de temps, mais c’est automatique.
  • Si vous essayez d’administrer un répéteur, le chemin mémorisé lors du précédent accès sera réutilisé. En cas d’échec, ça s’arrête là. Il n’y a pas (encore) de fonction pour faire la même chose que pour les messages directs. Vous devez donc utiliser le menu avec les 3 points en haut à droite de la page de saisie du mot de passe et choisir « Reset Path ». Ensuite réessayez, l’accès se fera en mode flood et un nouveau chemin sera appris.
  • Même chose pour l’accès aux Room Servers : réutilisation du chemin précédent, s’il ne fonctionne plus il faut demander à l’application de l’oublier avant de recommencer.

Nulle doute que cette situation va évoluer, mais Meshcore est très jeune et certaines fonctionnalités n’ont pas encore été implémentées.

Accès aux firmwares les plus récents :

Parfois un bug est identifié puis rapidement corrigé… mais il va falloir attendre plusieurs mois avant que la correction soit intégrée dans un firmware proprement numéroté (ex : 1.12) et téléchargeable depuis le flasher officiel.

Pourtant chaque nuit les dernières mises-à-jour sont compilées automatiquement et vous pouvez récupérer un firmware le plus à jour possible en le téléchargeant sur https://files.brazio.org/meshcore/nightly/ choisissez le firmware adapté à votre matériel, au format ZIP, et utilisez le flasher habituel, simplement au lieu de choisir votre matériel dans la liste, sélectionnez tout simplement « Custom firmware » tout en bas de la liste, choisissez votre zip et procédez comme pour un flashage normal.

Attention, s’agissant de la toute toute dernière version, elle peut corriger un bug qui vous embête, mais parfois aussi en introduire de nouveaux. Mais dans tous les cas, si vous rencontrez un souci, vous pourrez toujours refaire la manipulation inverse et remettre un firmware « numéroté » considéré comme stable.