À propos du projet

MOGWAI NANO est un moteur de script pour microcontrôleurs, construit sur .NET nanoFramework. Il est présenté comme un runtime compagnon plutôt qu’un portage du moteur MOGWAI de bureau, conçu autour des contraintes embarquées. Vous écrivez du code MOGWAI sur un PC dans MOGWAI NANO Studio, découvrez les appareils sur le réseau, et exécutez ce code à distance sur le matériel via WiFi. Fonctionnement : le code écrit avec du sucre syntaxique (if/then/else, while/do, for/do, forever do, timers, etc.) est désucré sur le bureau en RPN canonique avant d’être envoyé à l’appareil. L’appareil n’exécute que cette forme minimale — un tokenizer, une pile et un dispatcher de primitives — ce qui garde le firmware petit. Le README indique que les primitives canoniques sont privées et générées automatiquement, et ne sont pas destinées à être saisies à la main. Fonctionnalités du langage et du matériel listées : - Arithmétique, comparaisons, contrôle de flux, fonctions définies par l’utilisateur, références, skills et flags, gestion structurée des erreurs (trap/guard) - GPIO, I2C, SPI, PWM, ADC, et un pilote dédié d’écran OLED SSD1306 - Des tâches pour l’exécution parallèle, chacune sur son propre thread natif avec une instance de runtime isolée, communiquant avec le parent via des événements - Un modèle d’exécution à analyse paresseuse avec deux modes configurables (mogwai.frugalMode) - Des bibliothèques de code réutilisables appelées « units », stockées sur la flash et chargées à la demande - Des timers one-shot et récurrents, des chronomètres nommés - Des événements, avec des données transmises via un MOGRecord - Découverte UDP plus communication TCP, avec détection de déconnexion - Autorun persistant pour les déploiements autonomes Les considérations mémoire sont discutées longuement. Un ESP32 simple laisse environ 40 Ko de RAM libre, ce que le README juge suffisant pour des scripts simples mais sujet à la fragmentation et aux échecs d’allocation sous des charges longues ou multi-sous-systèmes. Une carte équipée de PSRAM, comme un ESP32-S3, est présentée comme la plateforme de référence validée et recommandée pour les projets composites. Les tâches sont décrites comme coûtant environ 10 Ko chacune et praticables uniquement avec de la PSRAM. Le README note qu’un ESP32/WROVER classique avec une cible nanoFramework activant la PSRAM devrait fonctionner de manière comparable mais n’a pas été testé par les auteurs. Tableau des plateformes prises en charge : ESP32 testé pour de petits scripts à usage unique ; ESP32-S3 avec PSRAM testé et recommandé ; ESP32/WROVER classique avec PSRAM non testé ; Raspberry Pi Pico W non pris en charge actuellement (la configuration des broches spécifique à l’ESP32 cassait les builds Pico, retour prévu après restructuration) ; STM32 et TI indiqués comme devant fonctionner mais non testés. MOGWAI NANO Studio est un compagnon de bureau basé sur Avalonia avec son propre éditeur de code, des onglets de console live séparés pour la sortie locale et celle de l’appareil, la gestion de fichiers, et des thèmes clair/sombre. Un Studio plus ancien en console a existé jusqu’à la 0.5 et n’est plus maintenu depuis la 0.6. Les releases joignent le firmware de l’appareil (MogwaiNano.bin) et des archives Studio autonomes par plateforme (win-x64, linux-x64, linux-arm64, osx-x64, osx-arm64). Le quick start couvre le flash du firmware avec nanoff, le cycle d’alimentation, le déploiement de l’application, la configuration WiFi via un fichier wifi.json, et l’exécution d’un premier programme qui fait clignoter une LED. Le README documente des particularités : sur ESP32_REV3, une option explicite --address 0x1E0000 est requise et doit être une commande séparée de --update ; --masserase est recommandé au premier flash ; le flash d’un ESP32-S3 peut prendre plusieurs minutes. La documentation comprend un guide de démarrage, une référence des primitives de l’appareil, une référence des primitives Studio pour l’ensemble de commandes nano.*, et une table de correspondance des valeurs ESP32 DeviceFunction. La roadmap liste des éléments terminés comme I2C, SSD1306, PWM/ADC, SPI (validé avec un pilote RFID MFRC522 entièrement écrit en script MOGWAI NANO), la validation ESP32-S3/PSRAM, les tâches, le système de bibliothèques units, et l’interface graphique Studio ; les éléments en attente incluent le support binaire/manipulation de bits, la validation STM32 et TI, le BLE, le chargement dynamique de PE, et la restructuration en un cœur partagé avec des éléments par plateforme. Le projet est sous licence Apache 2.0. Il remercie Laurent Ellerbach, contributeur nanoFramework, pour son aide, et renvoie au projet MOGWAI de bureau et à .NET nanoFramework.