La IOX-77 es una placa de desarrollo basada en el ESP32-C3 que resuelve uno de los problemas más comunes en proyectos embebidos complejos: la escasez de GPIO. El proyecto, publicado en GitHub bajo licencia de código abierto, entrega hasta 75 pines de entrada y salida en un circuito impreso que mide apenas 71 × 42 mm.

La placa de desarrollo IOX-77 con un ESP32-C3 y cinco microcontroladores CH32V003
La placa de desarrollo IOX-77 con un ESP32-C3 y cinco microcontroladores CH32V003

Una arquitectura multi-MCU sobre el bus I²C

El corazón de la placa es el módulo ESP32-C3-MINI-1-N4, que actúa como maestro y maneja la lógica principal del proyecto. Lo flanquean cinco microcontroladores RISC-V CH32V003, cada uno conectado por I²C. Cada CH32V003 aporta 14 GPIO adicionales al sistema, para un total de 75 pines utilizables. De esos, 10 son compatibles con niveles lógicos de 5 V, una característica útil al conectar periféricos antiguos o sensores industriales.

Todos los chips operan a 3,3 V, y la placa integra un regulador LDO TLV75733P de 1 A con rango de entrada entre 4 V y 5,5 V. La alimentación puede llegar por el conector USB-C, por pads de soldadura de 5 V o 3,3 V, o directamente desde los pines del header, lo que permite usar shields de expansión con su propia fuente.

Ejecución paralela: seis tareas simultáneas

A diferencia de los expansores de GPIO clásicos, como el PCF8574 o el MCP23017, los CH32V003 no son componentes pasivos. Cada uno tiene 16 KB de memoria FLASH y puede ejecutar código de forma autónoma, en paralelo con el ESP32. En la práctica, el sistema se comporta como una arquitectura de seis núcleos: el ESP32 se hace cargo de las actividades principales mientras los cinco CH32 corren tareas dedicadas, como leer sensores, controlar actuadores o gestionar protocolos, sin cargar al procesador principal.

El ESP32 además controla los pines NRST de cada CH32V003: si un microcontrolador esclavo deja de responder en el bus I²C, el maestro lo reinicia automáticamente. En modo de bajo consumo, los CH32 se pueden poner a dormir con un consumo de unos pocos microamperios y luego despertarlos desde el ESP32 mediante el pin NRST.

Conectividad e interfaces físicas

La IOX-77 ofrece varias opciones de conexión. Los dos headers de 2×25 pines con paso de 1,27 mm permiten montar shields personalizados. Un conector FPC de 40 pines, con paso de 0,5 mm, expone 32 GPIO de los CH32, mientras que un FPC de 6 pines maneja I²C, UART, GND y 3,3 V para módulos externos. Un FPC adicional de 8 pines está dedicado a la programación individual de los cinco CH32V003 mediante el programador WCH-LinkE.

Para prototipado rápido hay un header estándar de paso 2,54 mm con 16 pines, que incluye tensiones de alimentación, señales UART, I²C, entradas analógicas y GPIO tolerantes a 5 V.

Software y biblioteca para Arduino

El firmware está disponible en el repositorio de GitHub. La biblioteca IOX.h para Arduino permite manejar los GPIO de los CH32 con las mismas funciones estándar del ecosistema Arduino: pinMode(), digitalWrite(), digitalRead(), analogRead() y analogWrite().

El firmware actual ocupa cerca del 51% de la RAM y 44% de la FLASH de cada CH32, lo que deja espacio suficiente para que el usuario implemente macros propias. El circuito impreso es de cuatro capas.

¿Cómo se compara con un Arduino Mega?

La comparación del título merece detalle, porque la ventaja no está solo en la cantidad de pines.

CaracterísticaIOX-77Arduino Mega 2560
Pines de entrada y salida75 GPIO54 digitales más 16 entradas analógicas
Procesador principalESP32-C3 RISC-V a 3,3 VATmega2560 de 8 bits a 5 V
Conectividad inalámbricaWi-Fi y Bluetooth LE integradosNinguna, requiere módulo externo
Ejecución paralelaSí, cinco CH32V003 con código propioNo, un solo núcleo
Dimensiones71 × 42 mm101,5 × 53,3 mm
Tolerancia a 5 V10 pinesTodos los pines
LicenciaCódigo abierto, publicado en GitHubCódigo abierto

La diferencia arquitectónica es más interesante que el conteo de pines. Un expansor tradicional como el MCP23017 solo traduce comandos del bus a estados de pin, así que cada lectura de sensor sigue consumiendo tiempo del procesador principal. Acá, en cambio, un CH32V003 puede quedarse haciendo el muestreo de un sensor por su cuenta y entregar solo el resultado, lo que descarga al ESP32 de la parte repetitiva.

Qué mirar antes de usarla en un proyecto

Para quien arma automatización o instrumentación en la región, hay tres puntos prácticos que la ficha deja ver:

  • La tolerancia a 5 V es parcial. Solo 10 de los 75 pines la soportan, así que la interfaz con sensores industriales antiguos hay que planificarla desde el diseño, no improvisarla al final.
  • El presupuesto de memoria ya está a la mitad. Con 51% de RAM y 44% de FLASH ocupados por el firmware base, el código propio de cada CH32V003 tiene que caber en lo que queda de 16 KB.
  • La fabricación es de cuatro capas. Es un detalle de costo relevante si alguien quiere replicar la placa en vez de comprarla, porque encarece la tirada frente a un diseño de dos capas.

El punto fuerte es el conjunto: 75 pines, Wi-Fi, ejecución paralela y reinicio automático de esclavos colgados, en una placa más chica que un Arduino Mega y con todo el diseño publicado bajo licencia abierta.