Sobre el proyecto
MOGWAI NANO es un motor de scripting para microcontroladores, construido sobre .NET nanoFramework. Se describe como un entorno de ejecución complementario en lugar de un port del motor de escritorio MOGWAI, diseñado en torno a las limitaciones del entorno embebido. Escribes código MOGWAI en un PC en MOGWAI NANO Studio, descubres dispositivos en la red y ejecutas ese código de forma remota en el hardware por WiFi.
Cómo funciona: el código escrito con azúcar sintáctico (if/then/else, while/do, for/do, forever do, temporizadores, etc.) se desazucara en el escritorio a RPN canónico antes de enviarse al dispositivo. El dispositivo ejecuta solo esta forma mínima —un tokenizador, una pila y un despachador de primitivas—, lo que mantiene pequeño el firmware. El README indica que las primitivas canónicas son privadas y se generan automáticamente, y que no están pensadas para escribirse a mano.
Características de lenguaje y hardware enumeradas:
- Aritmética, comparaciones, flujo de control, funciones definidas por el usuario, referencias, skills y flags, manejo estructurado de errores (trap/guard)
- GPIO, I2C, SPI, PWM, ADC y un driver dedicado de pantalla OLED SSD1306
- Tareas para ejecución en paralelo, cada una en su propio hilo nativo con una instancia de runtime aislada, comunicándose con el padre mediante eventos
- Un modelo de ejecución con análisis perezoso (lazy-parsing) y dos modos configurables (mogwai.frugalMode)
- Bibliotecas de código reutilizables llamadas "units", almacenadas en flash y cargadas bajo demanda
- Temporizadores de un solo disparo y recurrentes, cronómetros con nombre
- Eventos, con datos entregados a través de un MOGRecord
- Descubrimiento UDP más comunicación TCP, con detección de desconexión
- Autorun persistente para despliegues autónomos
Las consideraciones de memoria se tratan en detalle. Un ESP32 normal deja aproximadamente 40KB de RAM libre, lo que según el README es suficiente para scripts simples pero propenso a la fragmentación y a fallos de asignación en cargas de trabajo prolongadas o con múltiples subsistemas. Una placa equipada con PSRAM, como una ESP32-S3, se presenta como la plataforma de referencia validada y se recomienda para proyectos compuestos. Se describe que las tareas cuestan aproximadamente 10KB cada una y solo son prácticas con PSRAM. El README señala que el ESP32/WROVER clásico con un target de nanoFramework con PSRAM habilitada debería funcionar de forma comparable, pero los autores no lo han probado.
Tabla de plataformas compatibles: ESP32 probado para scripts pequeños de propósito único; ESP32-S3 con PSRAM probado y recomendado; ESP32/WROVER clásico con PSRAM no probado; Raspberry Pi Pico W no compatible actualmente (la configuración de pines específica del ESP32 rompió las compilaciones para Pico, con planes de volver tras una reestructuración); STM32 y TI figuran como que deberían funcionar pero no están probados.
MOGWAI NANO Studio es un complemento de escritorio basado en Avalonia con su propio editor de código, pestañas de consola en vivo separadas para la salida local y la del dispositivo, gestión de archivos y temas claro/oscuro. Existió un Studio anterior basado en consola hasta la 0.5 y ya no se mantiene a partir de la 0.6.
Las versiones publicadas adjuntan el firmware del dispositivo (MogwaiNano.bin) y archivos autocontenidos de Studio por plataforma (win-x64, linux-x64, linux-arm64, osx-x64, osx-arm64). El inicio rápido cubre el flasheo del firmware con nanoff, el ciclo de apagado y encendido, el despliegue de la aplicación, la configuración de WiFi mediante un archivo wifi.json y la ejecución de un primer programa que hace parpadear un LED. El README documenta peculiaridades específicas: en ESP32_REV3 se requiere un --address 0x1E0000 explícito y debe ser un comando separado de --update; se recomienda --masserase en el primer flasheo; el flasheo de ESP32-S3 puede tardar varios minutos.
La documentación incluye una guía de inicio, una referencia de primitivas del dispositivo, una referencia de primitivas de Studio para el conjunto de comandos nano.* y una tabla de consulta de valores de ESP32 DeviceFunction. La hoja de ruta enumera elementos completados como I2C, SSD1306, PWM/ADC, SPI (validado con un driver RFID MFRC522 escrito enteramente en script de MOGWAI NANO), validación de ESP32-S3/PSRAM, tareas, el sistema de bibliotecas units y la GUI de Studio; los elementos pendientes incluyen soporte de manipulación binaria/de bits, validación de STM32 y TI, BLE, carga dinámica de PE y reestructuración en un núcleo compartido con piezas por plataforma.
El proyecto está licenciado bajo Apache 2.0. Agradece a Laurent Ellerbach, colaborador de nanoFramework, por su ayuda, y enlaza al proyecto de escritorio MOGWAI y a .NET nanoFramework.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.