MOGWAI NANO 0.2 est disponible sur le dépôt GitHub — première mise à jour depuis l’ouverture publique, et elle apporte du concret.
Ce qui change
I2C fait son entrée, avec sept primitives couvrant l’essentiel — ouvrir/fermer un device par son nom, lire et écrire des données brutes ou des registres, scanner le bus pour découvrir ce qui y répond. Validé sur du vrai matériel : un module RTC DS3231, écriture et lecture confirmées, y compris la conversion BCD que ce genre de puce utilise pour stocker l’heure (deux nouvelles primitives, ->bcd/bcd->, s’en chargent).
Le protocole réseau a été allégé. Fini le JSON encapsulé en Base64 à chaque message — place à un format à séparateur, bien plus simple et beaucoup moins gourmand en mémoire. Ce changement a directement réglé un vrai bug de fond : une fuite de mémoire qui pouvait, sous forte charge, planter le device.
Skills et flags font aussi leur apparition, en reprenant fidèlement le mécanisme déjà éprouvé du grand MOGWAI — un device peut désormais annoncer ses capacités ('I2C' hasSkill), et un script peut poser des marqueurs d’état simples. Une préparation discrète pour un futur système de bibliothèques de code réutilisable, directement stockées sur le device.
Quelques primitives ont aussi été renommées pour plus de clarté (nano.select devient nano.user.select, nano.view devient nano.user.view) — le préfixe user signale désormais explicitement les commandes qui interagissent avec la console.
Sous le capot
Cette version doit beaucoup à des heures de tests d’endurance poussés à l’extrême — des boucles sans la moindre pause, martelant le réseau au débit maximal que le device peut soutenir, jusqu’à ce que quelque chose casse. Ça a permis de mettre au jour et de corriger plusieurs bugs de fond, dont certains propres aux particularités du nanoCLR (un souci d’initialisation de propriété qui n’existait que sur cette plateforme). Rien de tout ça n’aurait été visible sur un simple test de cinq minutes.
La suite
I2C ouvre la porte à SPI, PWM et ADC — et surtout, valide un nouveau chapitre passionnant : le support d’ESP32-S3 avec PSRAM, où les tout premiers essais montrent que cette mémoire supplémentaire (plusieurs mégaoctets, contre quelques dizaines de kilo-octets habituels) est directement exploitable par le moteur MOGWAI NANO. De quoi envisager des scripts nettement plus ambitieux.
Tout est dans le CHANGELOG pour le détail complet, et dans le guide de démarrage mis à jour avec un premier exemple I2C.
Merci à tous ceux qui suivent le projet, et comme toujours, Laurent Ellerbach pour son aide précieuse sur plusieurs points épineux de cette version. 🎉