FRANK OS convierte un Microcontrolador en un Diminuto PC de Escritorio Retro

Los microcontroladores están diseñados para tareas concretas: leer sensores, controlar motores, responder a entradas y encargarse de funciones específicas dentro de todo tipo de dispositivos electrónicos.

Los encontramos en lavadoras, mandos a distancia, equipos médicos, sistemas industriales y, en general, en casi cualquier aparato con una placa electrónica que no sea un ordenador completo.

Por sus recursos limitados, lo habitual es que ejecuten firmware bare-metal o sistemas operativos en tiempo real ligeros, como Zephyr o Eclipse ThreadX.

Por eso, resulta tan llamativo este proyecto: alguien ha decidido darle a un microcontrolador una interfaz gráfica de escritorio al estilo de un PC clásico.

Ese proyecto se llama FRANK OS, y ha sido creado por el desarrollador y entusiasta Mikhail Matveev, desde Grecia. Se trata de un sistema operativo de escritorio construido para el microcontrolador RP2350.

PROBAR SISTEMA OPERATIVO FRANK OS

¿Qué es FRANK OS?

FRANK OS es un sistema operativo de escritorio construido sobre FreeRTOS, el conocido sistema operativo en tiempo real de código abierto que ofrece:

  • multitarea preventiva
  • un consumo de memoria relativamente contenido
  • soporte para más de 40 arquitecturas de procesador

A partir de esa base, FRANK OS añade su propia capa de escritorio con:

  • interfaz gráfica con ventanas
  • shell integrado
  • sistema de archivos
  • entorno de ejecución para aplicaciones

El resultado es un sistema con una estética claramente inspirada en Windows 95, capaz de ejecutar aplicaciones ELF desde una tarjeta SD y con mecanismos de recuperación ante fallos graves (hard fault recovery).

Además, el proyecto se distribuye bajo licencia GNU General Public License v3.0 y recibió su primera versión estable hace pocas semanas, según el texto original.

El hardware al que apunta FRANK OS

Sobre el papel, FRANK OS está pensado para funcionar en la placa FRANK M2, una creación del propio desarrollador basada en el RP2350B.

Esta placa incluye varios elementos clave para hacer viable un pequeño entorno gráfico:

  • salida DVI
  • puertos PS/2
  • PSRAM
  • ranura para tarjeta SD

Llevar un escritorio con ventanas a un microcontrolador con solo 520 KB de SRAM integrada no es precisamente poca cosa. De hecho, ese es uno de los aspectos más curiosos del proyecto.

¿Cómo consigue ejecutar un escritorio en un microcontrolador?

Uno de los puntos más interesantes de FRANK OS es cómo reparte la carga de trabajo entre los dos núcleos del RP2350.

Reparto por núcleos

Núcleo 0
Se encarga de:

  • el planificador de FreeRTOS
  • el gestor de ventanas
  • la gestión de entrada
  • la ejecución de aplicaciones

Núcleo 1

Está dedicado por completo al renderizado en tiempo real de líneas DVI mediante el controlador DispHSTX.

Este reparto permite que el sistema mantenga una interfaz gráfica funcional dentro de unas limitaciones de hardware muy ajustadas.

¿Cómo se ejecutan las aplicaciones?

Las aplicaciones de FRANK OS se compilan como binarios ARM ELF independientes y se cargan desde una tarjeta SD.

Además, el sistema incluye una capa de compatibilidad MOS2, lo que le permite ejecutar aplicaciones de Murmulator OS 2.

Esto amplía bastante las posibilidades del sistema, ya que no se limita únicamente a las aplicaciones creadas de forma nativa para FRANK OS.

¿Qué ofrece FRANK OS en la práctica?

Más allá del concepto llamativo, FRANK OS intenta comportarse como un escritorio real, aunque sea en miniatura.

Un escritorio con ventanas al estilo clásico

El sistema incluye un entorno gráfico donde las ventanas de las aplicaciones pueden:

  • superponerse
  • arrastrarse
  • redimensionarse desde bordes y esquinas
  • minimizarse
  • maximizarse
  • cerrarse

Es decir, no se trata solo de una pantalla con iconos: intenta reproducir de verdad la experiencia de un escritorio clásico.

Barra de tareas, menú Inicio y bandeja del sistema

En la parte inferior de la pantalla aparece una barra de tareas con varios elementos familiares:

  • botón de Inicio
  • botones para las ventanas abiertas
  • bandeja del sistema
  • reloj
  • control de volumen

Además, el menú Inicio puede escanear la carpeta:

/fos/

en la tarjeta SD durante el arranque para mostrar la lista de aplicaciones disponibles.

Accesos directos en el escritorio y cambio de ventanas

El escritorio permite colocar hasta 24 accesos directos, creados desde el menú contextual con clic derecho, y estos se mantienen incluso después de reiniciar.

También incluye un conmutador de ventanas al pulsar:

Alt + Tab

Este selector permite recorrer todas las ventanas abiertas, incluidas las que están minimizadas.

PShell: el shell integrado de FRANK OS

FRANK OS incluye PShell, un shell integrado que se ejecuta dentro de la aplicación Terminal.

Desde ahí es posible realizar varias tareas:

  • operaciones con archivos
  • edición de archivos con vi
  • uso de un compilador de C
  • lanzamiento de aplicaciones de consola compatibles con MOS2 desde la tarjeta SD

Esto le da al sistema una capa bastante más práctica y menos “de demostración” de lo que podría parecer al principio.

Panel de control

El sistema también incorpora un Panel de control, accesible desde el menú Inicio, con cuatro pequeños módulos de configuración:

  • color de fondo
  • información del sistema
  • ajustes del ratón
  • frecuencias de reloj de la CPU y la PSRAM

No es un panel enorme, claro, pero sí refuerza esa idea de escritorio clásico autocontenido.

Capacidades de audio

En el apartado de sonido, FRANK OS tampoco se queda en lo básico. Según el texto original, el sistema puede ofrecer:

  • salida estéreo I2S
  • 4 canales de sonido concurrentes
  • reproducción de MP3
  • reproducción de MOD
  • síntesis MIDI/OPL FM
  • sonido de arranque

Para un sistema de escritorio ejecutándose sobre un microcontrolador, es una lista bastante llamativa.

Aplicaciones preinstaladas

FRANK OS incluye nueve aplicaciones preinstaladas. Son las siguientes:

Columna 1Columna 2
TerminalNotepad
SolitaireMinesweeper
DiggerZX Spectrum 48K Emulator
FrankAmpMMBasic
PShell

La selección mezcla utilidades básicas, entretenimiento y herramientas más orientadas a experimentar con el sistema.

Qué deja entrever esta selección

Solo con esa lista ya se entiende bastante bien el enfoque del proyecto:

  • Terminal y PShell para la parte más técnica
  • Notepad para edición básica
  • FrankAmp para audio
  • Solitaire, Minesweeper y Digger para reforzar el guiño retro
  • un emulador ZX Spectrum 48K para llevar todavía más lejos esa estética nostálgica
  • MMBasic para programación e interacción

¿Dónde encontrar el proyecto?

El texto original indica que en el repositorio de GitHub de FRANK OS se pueden encontrar:

  • instrucciones detalladas de instalación
  • código fuente
  • documentación

Eso lo convierte en un proyecto especialmente interesante no solo para curiosear, sino también para estudiar cómo se ha construido.

¿Por qué FRANK OS llama tanto la atención?

FRANK OS no es simplemente una rareza simpática.

También es una demostración de hasta dónde se puede llevar un microcontrolador moderno cuando se combina con una buena arquitectura de software y una idea muy clara del objetivo.

Lo que hace especial a este proyecto es la combinación de varios elementos:

  • una base real sobre FreeRTOS
  • una interfaz gráfica completa
  • multitarea
  • ejecución de aplicaciones desde SD
  • compatibilidad con otras apps
  • enfoque retro pero funcional

En otras palabras: no es solo “un escritorio dibujado sobre una pantalla”, sino un pequeño sistema operativo de escritorio con bastantes piezas reales en funcionamiento.