Mois : mai 2025

Premier pas avec LoRa et Meshtastic

Ces derniers jours, je me suis plongé dans le monde fascinant (et plutôt bon marché) des communications sans fil longue portée. Après avoir étudié différentes options, mon choix s’est porté sur Meshtastic, un projet open source qui permet de transformer de simples modules LoRa en un réseau maillé de communication décentralisé, sécurisé, et surtout, sans dépendance au réseau GSM ou Wi-Fi.

C’est quoi Meshtastic ?

Meshtastic, c’est un petit firmware que l’on installe sur des appareils compatibles LoRa (comme ceux de Heltec, LilyGo, etc.). Une fois configurés, ces petits modules peuvent échanger des messages entre eux en formant un réseau maillé. Chaque module fait office de relais, ce qui permet d’étendre la portée du réseau sans infrastructure centralisée. Il est principalement utilisé pour la randonnée, les communications en zones isolées, ou tout simplement pour le plaisir geek de créer son propre réseau indépendant.

868 MHz

En Europe, la fréquence 868 MHz est celle la plus couramment utilisée pour les communications LoRa. Elle offre un bon compromis entre portée et pénétration des obstacles. J’ai donc naturellement choisi cette bande de fréquence pour mes expérimentations.

Le matériel

Pour débuter, j’ai acheté deux appareils :

  • Un Heltec V3 : compact, avec écran OLED intégré, parfait pour les tests de base. Je l’ai reçu début de semaine et ai immédiatement commencé les tests.
  • Un LilyGo T-Deck : un vrai petit bijou, avec écran couleur, clavier intégré et support LoRa. Il a été commandé dans un entrepôt allemand via Aliexpress, donc il devrait arriver rapidement. J’ai hâte de le bidouiller.

Surprise en Wallonie

En lançant mon Heltec V3 ici en Wallonie, je m’attendais à capter quelques nœuds Meshtastic dans les environs. Mais… rien. Silence radio.

En fouillant un peu, j’ai découvert que c’est principalement la communauté radioamateur qui a adopté Meshtastic ici en Wallonie, et qu’ils préfèrent la bande des 433 MHz, plus classique dans leur pratique. Résultat : mon pauvre module en 868 MHz reste désespérément seul dans le paysage radio local.

J’aurais bien sûr la possibilité de passer en 433 MHz pour rejoindre plus facilement le réseau local existant, mais cela limiterait un peu la portée de mes communications… et soyons honnête : j’ai déjà acheté deux modules en 868 MHz, alors autant aller jusqu’au bout.

Je me retrouve donc avec un seul nœud actif (le mien), ce qui limite forcément les tests. J’ai beau m’envoyer des messages touchants, ça manque un peu d’interactivité… J’attends maintenant le T-Deck pour pouvoir enfin communiquer… mais toujours avec moi-même.

Et après ?

La suite du projet s’annonce plutôt excitante, et je commence à structurer un peu mes idées pour aller plus loin :

  • Améliorer la portée : je compte acheter des antennes plus puissantes afin d’étendre la couverture du réseau. Qui sait, peut-être capter un signal venu des campagnes françaises voisines (je suis à deux pas de la frontière) ?
  • Automatiser des actions : je vais développer quelques scripts pour lancer des commandes à distance. Exemples ? Allumer une LED, déclencher un ventilateur, envoyer la température d’un capteur ou encore faire miauler un module LoRa en pleine réunion (on a tous nos priorités).
  • Installer des nœuds autonomes : l’idée est de déployer des modules fonctionnant sur batterie et panneau solaire à différents endroits. Attention toutefois à ne pas utiliser n’importe quel microcontrôleur : le nRF52840, par exemple, consomme environ 7 fois moins que le MCU utilisé sur le Heltec v3 (un ESP32-S3). Ces nœuds fonctionneraient comme des petites balises toujours actives, prêtes à relayer un message ou simplement maintenir le réseau vivant.
  • Porter mon émulateur Amstrad CPC sur le T-Deck : aucun lien direct avec le LoRa, j’avoue. Mais j’ai ce nouveau mini-ordinateur sous la main, alors pourquoi me priver ? BoulderdashBomb JackRick Dangerous… tous dans la poche !
  • Élargir la communauté : je vais essayer de convaincre quelques amis, collègues ou voisins de rejoindre l’aventure. Parce qu’un réseau, c’est bien. Mais un réseau peuplé, c’est mieux.

Bref, les idées ne manquent pas. Reste à trouver le temps.

PicoCalc

Un peu de neuf… enfin !

Oui, je sais. Le dernier article remonte à un bon moment. Trop de boulot, pas d’inspiration, et une activité principale qui pompe toute l’énergie créative.

Mais me revoilà, avec un nouveau jouet… et un peu de code maison à partager.


PicoCalc : la HP48G du futur rétro ?

Il y a deux mois, j’ai craqué pour la Clockwork PicoCalc. Reçue en à peine 15 jours, ça change agréablement des (trop) nombreux mois d’attente pour la uConsole du même fabricant… dont je devrais d’ailleurs parler un jour sur ce blog aussi.

Pour ceux qui ne connaissent pas, c’est un petit ordinateur open-source basée sur un Raspberry Pi Pico (RP2040), mais upgradable en Pico2. Avec son look minimaliste et son côté programmable à souhait, elle m’a immédiatement rappelé ma HP48G que j’utilisais à la polytech.

Mais bien sûr, je ne pouvais pas me contenter de faire des racines carrées avec. Il fallait coder.


PKKlib : une librairie pour créer des jeux sur PicoCalc

Très vite, j’ai eu envie d’aller au-delà des simples tests hardware. Par défaut, la PicoCalc fonctionne avec du MicroPython ou du BASIC, mais j’avais envie de l’exploiter en C pour tirer parti de toute sa puissance. J’ai donc développé une petite bibliothèque maison, PKKlib, pour faciliter la création de jeux sur la PicoCalc.

Elle fournit :

  • un environnement Docker prêt à l’emploi, pour éviter d’encombrer son système avec une multitude de dépendances
  • un moteur d’affichage en 50Hz, synchronisé avec le LCD,
  • un mini-gestionnaire de ressources pour intégrer images et musiques directement dans le binaire,
  • un lecteur musical ultra-léger compatible avec des fichiers YM (les musiques chiptune du Amstrad CPC !),
  • une gestion simple du clavier,
  • et même un mini-système de stockage persistant pour sauvegarder des scores ou des états.

L’idée, c’est de pouvoir se concentrer sur le gameplay sans avoir à réinventer la roue à chaque fois.

D’ailleurs, j’ai profité de pkklib pour porter mon clone de Tetris Game Boy (initialement développé sur Amstrad CPC) vers la PicoCalc. 

Et comme on ne se refait pas, j’ai aussi codé une petite calculatrice en notation polonaise inversée. Après tout, avec « Calc » dans son nom, la PicoCalc méritait bien une vraie fonction de calcul ! 

Simple, efficace, rétro jusqu’au bout des doigts.


Une scène encore discrète

Je n’ai pas encore eu beaucoup de retours… Peut-être que le nombre d’utilisateurs de la PicoCalc reste encore limité, ou que tout le monde est trop occupé à flasher des firmwares.

Mais si tu lis ceci, vas jeter un œil au GitHub PKKlib, clone le dépôt, et dis-moi ce que tu en penses ! Même une critique assassine me ferait plaisir à ce stade.


Petite pause : direction le LoRa

En attendant, je fais une petite parenthèse du côté du LoRa. Je bricole avec des modules Heltec v3, du T-Deck et un peu de Meshtastic.

Une idée me trotte déjà en tête : j’aimerais bien tenter une communication entre un module LoRa et un Amstrad CPC. Une sorte d’application de messagerie sans fil sur cet ordinateur, ça aurait de la gueule, non ?

Mais ceci est une autre histoire, qui sera contée une autre fois.