Sobre o projeto
MOGWAI NANO é um motor de scripting para microcontroladores, construído sobre o .NET nanoFramework. É descrito como um runtime complementar, e não uma porta do motor MOGWAI de desktop, projetado em torno das restrições de sistemas embarcados. Você escreve código MOGWAI em um PC no MOGWAI NANO Studio, descobre dispositivos na rede e executa esse código remotamente no hardware via WiFi.
Como funciona: o código escrito com açúcar sintático (if/then/else, while/do, for/do, forever do, timers, etc.) é dessucarizado no desktop para RPN canônico antes de ser enviado ao dispositivo. O dispositivo executa apenas essa forma mínima — um tokenizador, uma pilha e um despachante de primitivas — mantendo o firmware pequeno. O README afirma que as primitivas canônicas são privadas e geradas automaticamente, não devendo ser digitadas à mão.
Recursos de linguagem e hardware listados:
- Aritmética, comparações, fluxo de controle, funções definidas pelo usuário, referências, skills e flags, tratamento estruturado de erros (trap/guard)
- GPIO, I2C, SPI, PWM, ADC e um driver dedicado para display OLED SSD1306
- Tarefas para execução paralela, cada uma em sua própria thread nativa com uma instância de runtime isolada, comunicando-se com o pai por meio de eventos
- Um modelo de execução com análise preguiçosa (lazy parsing) e dois modos configuráveis (mogwai.frugalMode)
- Bibliotecas de código reutilizáveis chamadas "units", armazenadas na flash e carregadas sob demanda
- Timers de disparo único e recorrentes, cronômetros nomeados
- Eventos, com dados entregues por meio de um MOGRecord
- Descoberta via UDP mais comunicação TCP, com detecção de desconexão
- Autorun persistente para implantações autônomas
Considerações de memória são discutidas em detalhes. Um ESP32 comum deixa cerca de 40KB de RAM livre, o que, segundo o README, é suficiente para scripts simples, mas propenso à fragmentação e a falhas de alocação em cargas de trabalho de longa duração ou com múltiplos subsistemas. Uma placa equipada com PSRAM, como a ESP32-S3, é apresentada como a plataforma de referência validada e recomendada para projetos compostos. As tarefas são descritas como custando cerca de 10KB cada e viáveis apenas com PSRAM. O README observa que o ESP32/WROVER clássico com um alvo nanoFramework com PSRAM habilitada deve funcionar de forma comparável, mas não foi testado pelos autores.
Tabela de plataformas suportadas: ESP32 testado para scripts pequenos de propósito único; ESP32-S3 com PSRAM testado e recomendado; ESP32/WROVER clássico com PSRAM não testado; Raspberry Pi Pico W atualmente não suportado (a configuração de pinos específica do ESP32 quebrou as builds do Pico, com previsão de retorno após reestruturação); STM32 e TI listados como devendo funcionar, mas não testados.
O MOGWAI NANO Studio é um companheiro de desktop baseado em Avalonia, com seu próprio editor de código, abas separadas de console ao vivo para saída local e do dispositivo, gerenciamento de arquivos e temas claro/escuro. Um Studio anterior baseado em console existiu até a versão 0.5 e não é mais mantido a partir da 0.6.
As releases anexam o firmware do dispositivo (MogwaiNano.bin) e arquivos autocontidos do Studio por plataforma (win-x64, linux-x64, linux-arm64, osx-x64, osx-arm64). O guia de início rápido aborda a gravação do firmware com nanoff, o ciclo de energia, a implantação da aplicação, a configuração do WiFi por meio de um arquivo wifi.json e a execução de um primeiro programa que pisca um LED. O README documenta peculiaridades específicas: no ESP32_REV3 é necessário um --address 0x1E0000 explícito, que deve ser um comando separado de --update; --masserase é recomendado na primeira gravação; a gravação na ESP32-S3 pode levar vários minutos.
A documentação inclui um guia de introdução, uma referência de primitivas do dispositivo, uma referência de primitivas do Studio para o conjunto de comandos nano.* e uma tabela de consulta de valores de ESP32 DeviceFunction. O roadmap lista itens concluídos, como I2C, SSD1306, PWM/ADC, SPI (validado com um driver de RFID MFRC522 escrito inteiramente em script MOGWAI NANO), validação de ESP32-S3/PSRAM, tarefas, o sistema de bibliotecas units e a GUI do Studio; itens pendentes incluem suporte a manipulação binária/de bits, validação de STM32 e TI, BLE, carregamento dinâmico de PE e reestruturação em um núcleo compartilhado com partes por plataforma.
O projeto é licenciado sob Apache 2.0. Ele credita Laurent Ellerbach, contribuidor do nanoFramework, pela ajuda, e faz links para o projeto MOGWAI de desktop e o .NET nanoFramework.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.