En este tutorial aprenderás cómo empezar con la placa LILIGO T-Camera S3.
La LILYGO T-Camera S3 es una placa de desarrollo compacta basada en el microcontrolador ESP32-S3 FN16R8 de doble núcleo, junto con un módulo de cámara OV2640, 8 MB de PSRAM y 16 MB de memoria flash.
En este artículo repasaremos los pasos esenciales de configuración, como la instalación de las librerías, el core de ESP32 y la preparación del código para un servidor web que transmite video por Wi-Fi desde la T-Camera S3 a tu navegador web.
Partes necesarias
Necesitarás una T-Camera S3 y un cable USB-C para programar la placa y probar los ejemplos de código. Los siguientes enlaces te muestran dónde conseguirlos.

LILYGO T-Camera S3

Cable USB C
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Hardware de la T-Camera S3
La LILYGO T-Camera S3 es una placa de desarrollo que utiliza el microcontrolador ESP32‑S3FN16R8 de doble núcleo. Este SoC funciona hasta 240 MHz e incluye soporte para extensiones vectoriales, lo que lo hace adecuado para tareas de aprendizaje automático y visión. La placa incorpora 8 MB de PSRAM y 16 MB de memoria flash, permitiendo almacenar modelos, imágenes o datos de registro.

Componentes
Para la captura de imágenes, la placa integra un módulo de cámara OV2640 de 2 megapíxeles (con resolución UXGA 1622×1200) como estándar; también está disponible una versión opcional de 5 megapíxeles. Incluye una pequeña pantalla OLED monocroma (0,96 pulgadas, 128×64 píxeles) controlada por SSD1306 vía I²C, que ofrece una interfaz visual simple o pantalla de estado. En el apartado de audio, cuenta con un micrófono y un sensor de movimiento PIR que proporciona capacidades básicas de detección de movimiento en la placa.
Conectividad
La conectividad está gestionada por las radios integradas del ESP32-S3 para WiFi de 2.4 GHz (802.11 b/g/n) y Bluetooth 5 (LE), permitiendo comunicación inalámbrica y acceso remoto. Un puerto USB-C proporciona alimentación y acceso para programación/depuración, y un conector JST de 5 pines ofrece acceso adicional a E/S como GPIO, UART, 3.3 V/5 V y tierra. Las dimensiones de la placa son aproximadamente 69 × 28 × 18.5 mm. La imagen a continuación muestra el pinout de la placa:

Alimentación
La gestión de energía incluye soporte para alimentación por USB y un conector JST-GH para batería Li-Po de una sola celda, haciendo la placa adecuada para despliegues portátiles. La placa también dispone de un botón de arranque y un botón de encendido.
Especificaciones técnicas
La siguiente tabla resume las especificaciones técnicas de la placa LILYGO T-Camera S3:
| Parámetro | Especificación |
|---|---|
| Microcontrolador | ESP32-S3FN16R8 de doble núcleo (Tensilica LX7, hasta 240 MHz) |
| PSRAM | 8 MB |
| Memoria Flash | 16 MB |
| Módulo de cámara | OV2640 (2 MP, UXGA 1622×1200) estándar; variante opcional de 5 MP |
| Pantalla | OLED 0.96″, 128×64 píxeles, SSD1306 vía I²C |
| Conectividad inalámbrica | WiFi 2.4 GHz 802.11 b/g/n; Bluetooth 5.0 LE |
| Sensor de movimiento | PIR (infrarrojo pasivo) |
| Entrada de audio | Micrófono integrado |
| Alimentación y carga | Puerto USB-C; conector JST-GH para batería Li-Po |
| Dimensiones de la placa | Aprox. 69 × 28 × 18.5 mm (placa); 75 × 35 × 12 mm (con carcasa) |
| Interfaces de programación y E/S | USB-C para programación |
Instalación de librerías
En esta sección instalaremos las librerías necesarias para compilar código para la placa T-Camera S3. Ve al repositorio de LILYGO en github para la pantalla en LilyGo-Cam-ESP32S3. Haz clic en el botón verde «<> Code» y luego en «Download ZIP» para descargar el repositorio como un archivo ZIP:

A continuación, descomprime el archivo ZIP para extraer su contenido. Deberías ver los siguientes archivos en la carpeta descomprimida llamada «LilyGo-Cam-ESP32S-master»:

Necesitamos copiar el contenido de la carpeta «lib» dentro de la carpeta «libraries» del Arduino IDE. En Windows, la carpeta «libraries» suele estar ubicada en:
C:\Users\<username>\OneDrive\Documents\Arduino\libraries
Como esta carpeta ya contiene librerías instaladas, te recomiendo renombrarla temporalmente, por ejemplo a «_libraries», y crear una nueva carpeta llamada «libraries». Así evitas conflictos con las librerías ya instaladas y no las pierdes. Más tarde puedes revertir fácilmente este cambio. La imagen a continuación muestra cómo debería verse tu carpeta «Arduino» con las librerías:

Luego copiamos los archivos de la carpeta «lib» a la nueva carpeta «libraries» como se muestra a continuación:

Con esto completamos la instalación de las librerías requeridas (AceButton, ESP32QRCodeReader, U8g2, XPowersLib). En la siguiente sección instalaremos el core de ESP32.
Instalación del core ESP32
Además de las librerías, también necesitamos instalar una versión específica del core ESP32. El github repo para la T-Camera S3 indica que se debe usar la Versión 2.0.17. Parece que la versión actual (3.3.x) no es compatible (a noviembre de 2025) y el código no compilará, aunque no lo he probado.
Bajar la versión del ESP32 es sencillo. Abre el BOARDS MANAGER, escribe «ESP32» para filtrar las placas ESP32 y luego selecciona la Versión 2.0.17para el esp32 de Espressif Systems. La imagen a continuación muestra cómo se ve después de bajar la versión del core ESP32:

Ahora estamos casi listos para probar la cámara.
Código para el ejemplo mínimo de cámara
En esta sección prepararemos, flashearemos y ejecutaremos el código para el Minimal Camera Example que se encuentra en el examples folder del repositorio github. Como descargaste el repositorio, ya tienes el código de ejemplo en tu ordenador. Abre la carpeta «LilyGo-Cam-ESP32S-master» en tu ordenador, luego ve a «examples» y abre la carpeta «MinimalCameraExample»:

Hay algunas cosas que necesitamos cambiar para poder ejecutar el MinimalCameraExample.ino, sin embargo.
Renombrar archivo de secretos
Primero, renombra el archivo «secrets.h.example» a «secrets.h», ya que necesitamos este archivo para las credenciales WiFi:

Rellenar secretos
Si ahora abres el proyecto MinimalCameraExample.ino en tu Arduino IDE deberías ver una pestaña con el archivo «secrets.h».

Haz clic en ella e introduce el SSID y la contraseña de tu WiFi. Puedes rellenar el mismo SSID y contraseña tres veces:
// If using station mode, please fill in the wifi ssid and password here, cahnge as per your wireless settings #define WIFI_SSID1 "ssid_from_AP_1" #define WIFI_SSID_PASSWORD1 "your_password_for_AP_1" #define WIFI_SSID2 "ssid_from_AP_2" #define WIFI_SSID_PASSWORD2 "your_password_for_AP_2" #define WIFI_SSID3 "ssid_from_AP_3" #define WIFI_SSID_PASSWORD3 "your_password_for_AP_3"
Seleccionar modo WiFi
Finalmente, necesitamos hacer dos cambios en el archivo MinimalCameraExample.ino. Reemplaza los corchetes angulares de la inclusión de secrets.h por comillas y establece la bandera use_ap_mode a false:

Después de estos cambios, el inicio del archivo MinimalCameraExample.ino debería verse así:
#include <Arduino.h> #include <WiFi.h> #include <WiFiMulti.h> #include "esp_camera.h" #include "secrets.h" #define XPOWERS_CHIP_AXP2101 #include "XPowersLib.h" #include "utilities.h" void startCameraServer(); XPowersPMU PMU; WiFiMulti wifiMulti; String hostName = "LilyGo-Cam-"; String ipAddress = ""; bool use_ap_mode = false;
Subir código a la T-Camera S3
Ahora estamos casi listos para subir el código a la T-Camera S3. Selecciona «ESP32S3 Dev Module» como placa y asegúrate de que esté conectada y reconocida en un puerto COM:

Luego, en el menú «Tools» configura los siguientes parámetros:

Los más importantes son Flash Size, Partition Scheme y PSRAM. Los demás parámetros deberían estar en sus valores por defecto, pero es mejor que los revises. Al imprimir en el Monitor Serial, la configuración USB_CDC_ON_BOOT debe estar activada.
Ahora puedes subir el código a tu T-Camera S3 y, con suerte, ver la siguiente información en el Monitor Serial:

Te indica que la placa pudo conectarse al WiFi y en qué dirección IP está corriendo el servidor web de la cámara. Los mensajes de error sobre la partición no parecen causar problemas y pueden ser ignorados.
Abre tu navegador web, introduce la dirección IP, por ejemplo «192.168.1.111» en la barra de direcciones y debería aparecer una barra lateral con un menú para el servidor web:

Haz clic en «Start Stream» en la parte inferior de ese menú (justo encima de Advanced Settings):

y deberías poder disfrutar de una transmisión de video en tu navegador:

Si todo eso funcionó, ¡felicidades ; )
No se puede subir código a la T-Camera S3
He comprobado que subir el código del MinimalCameraExample a la T-Camera S3 a menudo no funciona. Mantener pulsado el botón Boot/Reset, reiniciar la placa, reiniciar el ordenador – nada funcionó.
El flasheo comenzaba correctamente pero luego, antes de llegar al 100%, fallaba con el mensaje de error:
Ocurrió un error de excepción serial: No se puede configurar el puerto, algo salió mal. Mensaje original: PermissionError(13, ‘El dispositivo no reconoce el comando.’, None, 22)
Nota: Este error proviene de pySerial. Probablemente no sea un problema de esptool, sino de la conexión hardware o los drivers.
La buena noticia es que encontré una forma de superar este problema. Simplemente crea otro proyecto Arduino con código mínimo y flashea ese código si te encuentras con el error anterior:
void setup() {
Serial.begin(115200);
}
void loop() {
delay(1000);
Serial.println("loop");
}
Por alguna razón, esto siempre funciona y después puedes flashear el código más grande (MinimalCameraExample) de nuevo y también funcionará.
Conclusión
En este tutorial aprendiste cómo empezar con la placa T-Camera S3 de LILYGO. Solo flasheamos y ejecutamos el Minimal Camera Example pero el repositorio github tiene más examples que vale la pena explorar.
Ten en cuenta que también tenemos un tutorial para el nuevo modelo T-Camera-Plus S3 Getting Started with T-Camera-Plus S3. Y si te interesan otras cámaras y aplicaciones, echa un vistazo a los siguientes tutoriales:
- Stream Video with ESP32 Camera Pro Kit
- Stream Video with ESP32-CAM
- Stream Video with ESP32-WROVER CAM
- Surveillance Camera with ESP32-CAM
- Object Detection with ESP32-CAM and YOLO
- Train an Object Detection Model with Edge Impulse for ESP32-CAM
Si tienes alguna pregunta, no dudes en dejarla en la sección de comentarios.
¡Feliz bricolaje! 😉

