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.

Générer des énigmes pour Kolotoc : un guide pratique

Introduction

🎉 Kolotoc est enfin disponible ! Après des mois, que dis-je, des années de travail, notre jeu inspiré de la « Roue de la fortune » est sorti hier, juste à temps pour Noël.

Dans cet article, je vais vous montrer comment utiliser un script PHP que j’ai développé pour créer vos propres énigmes et les intégrer dans le jeu. Si vous souhaitez personnaliser votre expérience ou ajouter vos propres catégories, ce guide est fait pour vous !


Fonctionnalités du script

Ce script a été conçu pour :

  1. Nettoyer et formater les chaînes de caractères
    • Suppression des accents et des caractères spéciaux.
    • Conversion en majuscules pour une uniformité parfaite.
  2. Convertir des fichiers texte en données binaires structurées
    • Organisation des énigmes par catégories (une catégorie = un fichier texte).
    • Création d’un fichier binaire compact et optimisé pour Kolotoc.
  3. Générer des fichiers d’en-tête optionnels pour des projets C
    • Idéal pour des tests ou une intégration spécifique.

Format du fichier binaire généré

Voici la structure du fichier binaire généré :

  • Signature : 3 octets – « KWF » (Kolotoc Wheel Format).
  • Nombre de catégories : 1 octet.
  • Métadonnées des catégories :
    • Position du titre.
    • Début et longueur de la liste des phrases.
  • Liste des phrases :
    • Position de chaque phrase relative.

Instructions d’utilisation

  1. Préparer les fichiers texte
    • Chaque fichier représente une catégorie.
    • Une phrase par ligne dans chaque fichier.
  2. Exécuter le script
    Ouvrez un terminal et utilisez la commande suivantephp compile.php <dossier> (Remplacez <dossier> par le chemin vers le dossier contenant vos fichiers texte)
  3. Résultats
    • Les fichiers nettoyés (avec des noms adaptés) sont enregistrés dans le même dossier avec l’extension .cleaned.
    • Le fichier binaire final s’appelle kolo2.bin.

Exemple

Supposons que vous avez un dossier contenant les fichiers suivants :

  • animaux.txt
  • villes.txt

Exécution :

Copier le codephp compile.php enigmes/

Résultats :

  • Un fichier binaire kolo2.bin contenant toutes les catégories.
  • Des fichiers nettoyés animaux.txt.cleaned et villes.txt.cleaned.

Intégration dans Kolotoc

Pour que vos énigmes personnalisées soient prises en compte dans le jeu, remplacez simplement le fichier kolo2.bindans le disque du jeu Kolotoc par celui généré par le script. Une fois fait, lancez le jeu et vos nouvelles catégories apparaîtront comme par magie ! 🌟


Conclusion

Avec ce script, vous avez le pouvoir de personnaliser Kolotoc selon vos envies. Ajoutez vos propres énigmes, explorez de nouvelles thématiques, et partagez vos créations avec vos amis. Si vous avez des questions ou des idées d’amélioration, n’hésitez pas à les partager en commentaire !

Et surtout, amusez-vous bien avec Kolotoc, le jeu qui met votre esprit à l’épreuve tout en vous divertissant. 🎄🎁

Téléchargez Kolotoc ici : crazypiri.itch.io/kolotoc

Téléchargez le script sur github : github.com/redbug26/kolotoc-compiler

Amstrad – DVD Player DX3095

Alan Michael Sugar vient d’annoncer qu’il venait de récupérer la marque Amstrad pour le lancement d’une nouvelle société de marketing digital pour son fils ainé, 17 ans après l’avoir vendu à Sky.

Nous sommes beaucoup à espérer que le Lord l’utilisera pour réactiver la branche micro-informatique d’Amstrad.

Ce matin, j’ai reçu une alerte dans mes sites d’enchères pour un produit Amstrad que je ne connaissais pas.

Le DX3095 est un lecteur DVD typique des années 2000 qui permettait de lire de DVD, SVCD, VCD, CD, CD-MP3 et DivX.

Vu l’emballage, il s’agit sans doute de la même entreprise qui vendait mon Sudoku SD2000 et le NN-900.

Un de plus…

CPC 664 nombre et versions

2 mois depuis le dernier article…

Comme beaucoup le savent, Cedric « leZone » Grandemange, le graphiste de Crazy Piri référence depuis 20 ans tous les CPC existants.

Aujourd’hui, il nous retire les chiffres à propos du 664 de son tableau Excel pour nous résumer tout cela dans un excellent article.

Vous saurez tout sur la prétendue rareté de ce 664, sa période de production et bien d’autres choses sur ce CPC.

Cela se télécharge sur notre itch.io.

Si vous possédez des 664 non référencés, n’hésitez pas à contacter Cedric. Il n’attend que cela.

Bis repetita

Pour ceux qui ont cliqué sur un lien AMSNews.be (ou .fr), bienvenue sur mon blog principal.

J’ai repris mes articles de AMSNews (interviews, articles de fond, …). Tout sauf les news donc et les articles qui ne m’appartiennent pas. Ces articles seront rendus à leurs auteurs qui en feront ce qu’ils veulent.

Pour ce qui est des news, c’est périssable, aucun intérêt de les reprendre.

Ici, on discute Amstrad, forcement, mais pas que ! (je viens de recevoir mon Spectrum Next pour info).

Je vous invite à aller faire un tour sur le site avant de supprimer le lien de vos bookmarks.

À bientôt, j’espère.