La GIGA R1 WiFi es una placa de desarrollo con un microcontrolador STM32H747XI de doble núcleo y 32 bits, que funciona a frecuencias de hasta 480 MHz y trae 1 MB de RAM. KurtE y Merlin513, usuarios del foro de Arduino, desarrollaron para ella una aplicación de estación meteorológica basada en ZephyrOS que muestra lo que la placa puede hacer. Hace poco publicaron una demostración de que también funciona en la UNO R4 WiFi, una placa bastante menos potente.

El proyecto original con la GIGA

ZephyrOS es un sistema operativo de tiempo real (RTOS) que Arduino eligió como reemplazo después de que terminó el desarrollo activo de Mbed en 2024. Con el núcleo de Arduino sobre Zephyr 0.90.0 ya oficialmente estable, Zephyr ofrece una base para aplicaciones que necesitan gestión de procesos, planificación de tareas y operación en tiempo real.

KurtE y Merlin513 escribieron su aplicación del clima para ZephyrOS sobre la GIGA R1 WiFi con una pantalla táctil acoplada, como el GIGA Display Shield. La aplicación muestra el clima local en una interfaz gráfica, y al tocar un día se abre la información detallada de esa jornada.

El resultado consumía bastantes recursos para un microcontrolador, pero la capacidad de proceso y la memoria de la GIGA R1 WiFi alcanzaban para correrla.

¿Qué cambió para que cupiera en la UNO R4 WiFi?

La UNO R4 WiFi tiene muchos menos recursos. Lleva un microcontrolador Renesas RA4M1 de un solo núcleo que funciona a 48 MHz, con 32 kB de RAM y 256 kB de memoria flash, contra los 2 MB de flash de la GIGA R1 WiFi.

PlacaMicrocontroladorFrecuenciaRAMFlash
GIGA R1 WiFiSTM32H747XI, doble núcleo480 MHz1 MB2 MB
UNO R4 WiFiRenesas RA4M1, un núcleo48 MHz32 kB256 kB

Eso planteaba dos problemas. Había que reducir el tamaño del programa para que entrara en la flash disponible, y había que bajar el consumo de memoria para que alcanzara la RAM. Resolver el primero terminó resolviendo también el segundo. KurtE lo logró cambiando de librería de pantalla y simplificando los elementos de la interfaz, sobre todo con una paleta de colores más reducida y con imágenes más chicas donde se podía.

Con esas optimizaciones, KurtE demostró que la aplicación del clima corre en la UNO R4 WiFi, y describió el resultado como un funcionamiento "razonablemente bueno".

Un RTOS con interfaz gráfica en 32 kB

Ajustar software a un hardware limitado obliga a pensar cada decisión de ingeniería. En este caso, el ejercicio consistió en meter un RTOS completo, una interfaz gráfica y datos en tiempo real en una placa con 32 kB de RAM y 48 MHz de reloj.

Bajar proyectos como esta estación meteorológica a plataformas más chicas acerca aplicaciones complejas a placas más baratas, y muestra que con las optimizaciones correctas no siempre hace falta mucha capacidad de cómputo para tener un sistema que responda bien.

Arduino invita a compartir proyectos parecidos en el foro de Arduino o a documentarlos en Arduino Project Hub.