Un ESP32 del tamaño de una uña con WiFi 6 doble banda

Seeed Studio rompió la cronología típica de Espressif: después del XIAO ESP32 C3, en lugar de ir al C5 vino el C6, y ahora finalmente llega el C5. ¿Confuso? Sí. ¿Vale la pena entenderlo? También sí. El XIAO ESP32 C5 es el primer XIAO con WiFi 6 de doble banda (2.4 + 5 GHz), Bluetooth 5, Zigbee, Thread y Matter en un formato de 21×17.8 mm. Es el más capaz de la familia para proyectos IoT modernos en espacios ultracompactos.

Inspirado en la guía de inicio de Engr. Shahzada Fahad (Electronic Clinic), este tutorial no repite especificación por especificación. En cambio, te muestra cuándo elegir el C5 sobre el C3 o el C6, te lleva por el setup en Arduino IDE, y te deja con dos sketches útiles (OLED + relés) que puedes correr en cualquiera de los tres XIAO sin cambiar el código.

¿C3, C6 o C5? La decisión en 30 segundos

Característica XIAO ESP32 C3 XIAO ESP32 C6 XIAO ESP32 C5
WiFi 2.4 GHz solo 2.4 GHz + WiFi 6 2.4 + 5 GHz WiFi 6
Bluetooth 5.0 LE 5.0 LE 5.0 LE
Thread/Zigbee/Matter No
RAM SRAM 400 KB 512 KB 384 KB + 16 KB RTC
PSRAM No No 8 MB
Flash 4 MB 4 MB 8 MB
Reloj core 160 MHz 160 MHz 240 MHz
Precio (Seeed) ~US$ 5 ~US$ 6 ~US$ 7

Ficha de especificaciones del XIAO ESP32 C5: RISC V, 2.4 y 5 GHz, 8 MB PSRAM y Flash, Matter, Thread y Zigbee

Reglas rápidas:

  • Si tu proyecto sólo manda datos a 2.4 GHz y no necesita Matter, el C3 es el más barato y maduro.
  • Si necesitas integrar con Apple Home o Google Home vía Matter, o redes Thread/Zigbee, va el C6.
  • Si tu router 5 GHz tiene mucho mejor cobertura y ancho de banda que el 2.4 GHz, o vas a hacer streaming pesado, o quieres PSRAM de 8 MB para guardar buffers grandes (frame buffers de cámara, audio), elige el C5.

La gran ventaja de toda la familia XIAO es que comparten el mismo footprint y el mismo orden de pines, así que la decisión es casi puramente de feature contra precio.

XIAO ESP32 C3, C6 y C5 lado a lado: mismo tamaño y mismo orden de pines

Recibiendo el C5

El packaging de Seeed para el C5 viene en una caja redonda con la antena PCB flexible enrollada alrededor del módulo central. Los headers macho de 2.54 mm vienen soldados de fábrica, lo que ahorra unos 15 minutos y el riesgo de soldar mal los pines.

Headers macho del XIAO ESP32 C5 soldados de fábrica

Importante: la antena flexible viene desconectada. Conéctala al puerto U.FL del XIAO antes de energizar. Si arrancas sin antena, el alcance WiFi es de centímetros y vas a creer que el módulo está fallado. En la cara frontal vas a reconocer el puerto USB C, el LED de carga, el LED de usuario, el botón reset, el botón de usuario y el conector IPEX de la antena.

Diagrama de componentes externos del XIAO ESP32 C5: puerto USB C, LEDs, botones y conector de antena IPEX

Pinout (corto y útil)

XIAO Pin GPIO chip Función principal
D0 GPIO1 ADC, LP_GPIO
D1 GPIO0 LP_GPIO
D2 GPIO25 GPIO
D3 GPIO7 SDIO_DATA1
D4 GPIO23 SDA (I²C)
D5 GPIO24 SCL (I²C)
D6 GPIO11 TX (UART)
D7 GPIO12 RX (UART)
D8 GPIO8 SCK (SPI)
D9 GPIO9 MISO (SPI)
D10 GPIO10 MOSI (SPI)

Los pines siguen el "espíritu XIAO": mismo footprint que el C3 y el C6, así que cualquier shield XIAO debería funcionar. Salvedad importante: las funciones específicas pueden variar (por ejemplo, JTAG en pines distintos), revisa siempre la tabla oficial para tu revisión de placa.

Diagrama de pinout completo del XIAO ESP32 C5: cara frontal y trasera con pines codificados por color

Setup en Arduino IDE

  1. Arduino IDE 2.x (la 1.8.x está obsoleta, no la uses).
  2. File → Preferences → Additional Boards URLs: agrega https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  3. Tools → Board → Boards Manager: instala esp32 by Espressif Systems versión 3.0.x o más reciente (el C5 requiere v3+, no aparece en v2.x).
  4. Tools → Board → ESP32 Arduino: selecciona XIAO_ESP32C5.

Selección de la placa XIAO_ESP32C5 en el Boards Manager del Arduino IDE

Si el XIAO_ESP32C5 no aparece en la lista pese a tener v3.x instalada, asegúrate de actualizar la package URL: algunas instalaciones cachean el JSON. Fuerza una actualización borrando ~/Library/Arduino15/staging/packages/ (Mac) o el equivalente en tu sistema.

Sketch 1 · OLED SSD1306 (el "hola mundo" con display)

Mismo código que en cualquier ESP32. SDA = D4, SCL = D5.

C++
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
    Serial.begin(115200);
    Wire.begin();
    if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println("OLED no encontrado");
        for (;;);
    }
    display.clearDisplay();
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(0, 16);
    display.println("XIAO");
    display.setCursor(0, 40);
    display.println("ESP32-C5");
    display.display();
}

void loop() {}

XIAO ESP32 C5 montado sobre un shield, mostrando texto en una pantalla OLED

Sketch 2 · Relés SPDT (mismo código que C3 y C6)

C++
int relays[] = {D0, D2, D8, D10};

void setup() {
    Serial.begin(115200);
    for (int r : relays) pinMode(r, OUTPUT);
}

void loop() {
    for (int r : relays) {
        digitalWrite(r, HIGH);
        Serial.printf("Relay %d ON\n", r);
        delay(500);
        digitalWrite(r, LOW);
        delay(500);
    }
}

XIAO ESP32 C5 controlando un módulo de 4 relés desde un shield de expansión

¿Por qué importa que sea el mismo código? Porque la mayor ventaja del XIAO es portabilidad de proyecto. Diseña tu carcasa, tu shield y tu firmware una sola vez, y elige el XIAO específico al final según el costo o el feature que necesites.

Variantes y mejoras

  • Accesorio Matter con el C5. Usa el SDK esp-matter y expón un endpoint OnOff al accesorio. Queda compatible con Apple Home o Google Home directo, sin nube ni gateway.
  • Streaming de cámara HM01B0 en 5 GHz. La PSRAM de 8 MB sumada al WiFi 6 en 5 GHz hace viable streaming de cámara monocromática 320×240 a 15 FPS, algo que al C3 le costaba.
  • OTA en doble banda. En lugar de mandar firmware por 2.4 GHz (con todos los vecinos compitiendo), aprovecha el 5 GHz para updates rápidos sin caer la red de tus sensores 2.4.
  • Battery shield XIAO. Suma un módulo TP4056 y una batería LiPo al footprint XIAO para hacer el dispositivo portátil con carga por USB C.

Personalización para Chile (MechatronicStore)

El XIAO ESP32 C5 todavía no está extendido en distribuidores locales (lo compras directo en Seeed Studio o AliExpress). Mientras tanto, los componentes de soporte de los dos sketches sí los tienes en stock:

  • Pantalla OLED SSD1306 0.91" (SKU D-112): exactamente el módulo usado en el sketch 1.
  • Protoboard 830 puntos (SKU C-302): soporte físico, ya que el XIAO no se monta directo y requiere headers o un shield.
  • Cables macho a macho 20 cm (SKU C-411) y macho a hembra 10 cm (SKU C-415): para cablear los módulos externos.

Recuerda que el C5 se programa por USB C, no por micro USB, así que ten a mano el cable correcto.

Recursos

Versión chilena con componentes en stock local en MechatronicStore.