XVIII. Quand l’IA se trompe et m’empêche d’avancer (28 mai 2026 – 20:55)
Presque un an jour pour jour, je décide de te donner quelques nouvelles sur l’avancée de GRFMA — certaines que tu connais peut-être déjà si tu suis mes activités sur ma chaîne YouTube ou mon podcast.
Aujourd’hui, je suis posé sur ma terrasse, il est 16h30, il fait 31 degrés, et c’est le moment de tout te dire ! Car il y a énormément de choses à raconter, et je ne sais même pas par où commencer.
Bon, d’abord, sache que GRFMA est pleinement fonctionnel — encore un peu buggé, parce que j’ajoute presque tous les jours de nouvelles fonctions et/ou en corrige d’autres.
Il est constitué d’un utilitaire de configuration en PHP via une WebApp, et d’une télécommande développée en Node.js, utilisable à partir d’un mini clavier gamer. N’importe qui étant capable d’utiliser ses doigts peut piloter et configurer ses trains avec GRFMA.
Le module se connecte directement à ton réseau domestique — pas besoin d’un routeur supplémentaire.
Pour exploiter toutes ses capacités, j’ai dû installer le 1er étage de mon réseau ferroviaire miniature à l’échelle N, composé de 7 voies de garage aux longueurs variées — de 1,30 m pour la plus courte jusqu’à 2,60 m pour la plus longue —, une voie de programmation, 9 aiguilles, 8 cantons et un ovale d’environ 8 m linéaires. Côté matériel : 1 Raspberry Pi 3B+, un mini clavier sans fil, 2 modules de rétrosignalisation Roco 10808, et 2 décodeurs x8 aiguilles.
Sur le Raspberry Pi tourne :
– une distribution Raspbian 12 Lite
– Sox pour la génération et la lecture de sons
– MariaDB comme moteur de base de données
– nginx comme serveur web (à la place d’Apache2)
– PHP et Node.js comme langages et environnements de développement
– Python et Piper pour la synthèse vocale (texte en parole)
Si tu as oublié où j’en étais — et c’est tout à fait normal, ça fait quelques mois —, je t’invite à relire le dernier chapitre qui fait un récapitulatif de la situation.
Laisse-moi te parler des nouveautés.
La grande avancée — et c’est assez récent —, c’est qu’au-delà de savoir si un canton est occupé ou libre, désormais, s’il est occupé, je sais qui est dessus. Et ça, c’est vraiment, vraiment trop cool. Pour y parvenir, j’ai finalement réussi à faire fonctionner RailCom à travers CanBus.
Tu veux une anecdote ?
La fonction qui permet de lire les trames UDP liées à CanBus — celle-là même qui me donne accès aux informations magiques, notamment l’adresse CV1 de la loco occupant le canton — semble fonctionnelle depuis presque 8 mois ! Si si, je t’assure que c’est véridique ! 😄
« Mais alors pourquoi ça ne marchait pas ? », tu vas me demander.
Lorsque j’ai découvert le boîtier de la Z21 et que j’ai dû apprendre à connaître toutes ses connectiques, j’ai fait appel à l’IA pour me les décrire. Elle s’était vraiment bien débrouillée pour la Multi-Maus, alors je lui ai fait confiance pour la Z21 noire. Résultat : pendant huit mois, j’ai travaillé à résoudre un problème qui n’existait tout simplement pas. Truc de fou !
Il y a quelques semaines, aux alentours du début du printemps, j’ai décidé de solliciter ma femme — juste pour voir, au cas où, avec un léger pressentiment peut-être.
Je me suis glissé sous le plateau, j’ai débranché tout ce qui y était connecté et je l’ai sorti de son emplacement. J’ai ensuite demandé à Amélie de me lire le nom des prises une par une en posant le doigt dessus. Le verdict est tombé : mon câble RJ45 n’était pas du tout relié à la prise CanBus !!! Tu le crois, ça ?
Pourtant, les informations d’occupation remontaient bien dans l’application Z21 Maintenance. La raison était simple : en plus du CanBus, le câble RBus, lui, était toujours connecté.
Un peu sonné par la nouvelle, je me reglisse sous le plateau, je rebranche tous les câbles sauf le RBus, je m’assure bien cette fois que le RJ45 est sur la bonne prise CanBus, je rallume le tout, lance un terminal, puis exécute mon petit script de test… et là, surprise : le canton 3 est occupé par le CV1. Le canton 7, ma voie de stockage D, et le CV1=25, ma belle BB22347. **Yiiiiiiiiah !!!** J’entrevois enfin d’excellentes perspectives.
Je décide alors de mettre ça de côté pour me consacrer à finaliser un autre module : la gestion de l’écriture dans les autres CV, notamment pour configurer le mode d’unité multiple et les courbes d’accélération/décélération. Je crée donc une rubrique « Configuration avancée » pour mes roulants. Je passe une petite matinée à revoir toutes mes machines, à les configurer à ma guise — et ça marche à merveille.
Pour finir, depuis très récemment — genre deux semaines —, je travaille sur un module d’automatisation et de scénarisation. Car maintenant que je sais qui est qui et où, grâce à CanBus, je deviens le roi du pétrole du ferroviaire miniature ! Ça fonctionne plutôt bien ; il faut maintenant que je perfectionne le système avec les règles d’anticollision. Je crois que pour le début de l’été, j’aurai un mini réseau capable de tourner de façon autonome et sécurisée.
Sinon, à part ça, je rencontre toujours des difficultés pour réaliser ma rampe hélicoïdale, mais j’y travaille également.
Concernant la vidéo de démonstration : elle est à moitié tournée, il manque encore toute la partie capture d’écran côté WebApp pour te montrer la configuration. Le problème, c’est que je fais souvent des modifications et elle ne se finit jamais. Du coup, je me dis que je vais attendre la prochaine fonctionnalité pour la tourner… sauf que quand je suis enfin prêt à faire ma capture, je décide de corriger un truc, d’en modifier ou d’en ajouter un autre… Grrrrr ! Il va falloir que je m’arrête, que je la fasse, et que je fasse une autre vidéo sur les améliorations ensuite. 😄
Allez, au prochain épisode, je te parle de mes automatisations et de mes scénarios. C’est sûr, ça va envoyer du bois !

