Guía de referencia: Tina
Todo lo necesario para montar la placa, conectar cada módulo, instalar el firmware y dejarlo hablando. Al final, cómo funcionan la búsqueda web con Tavily y el bot de Telegram.
1Materiales
El firmware está hecho para estas piezas exactas. Otra pantalla u otra placa necesitan otro firmware.
2Esquema de conexiones
Cada línea va de un pin del módulo al GPIO indicado de la ESP32-S3. Los colores agrupan cada módulo.
3V3; el amplificador a 5V. Todos los GND deben unirse al GND de la ESP32-S3. Sin tierra común nada funciona bien.3Tabla de pines
La misma información del esquema, pin por pin.
Pantalla ST7789
| Pantalla | ESP32-S3 |
|---|---|
| SDA / MOSI | GPIO 8 |
| SCL / CLK | GPIO 9 |
| CS | GPIO 11 |
| DC | GPIO 12 |
| RES / RST | GPIO 13 |
| BLK | GPIO 10 |
| VCC | 3V3 |
| GND | GND |
Si tu pantalla de 7 pines no tiene CS, deja GPIO 11 sin conectar.
Micrófono INMP441
| Micrófono | ESP32-S3 |
|---|---|
| SCK | GPIO 42 |
| WS | GPIO 40 |
| SD | GPIO 41 |
| L/R | GND |
| VDD | 3V3 |
| GND | GND |
Amplificador MAX98357A
| Amplificador | ESP32-S3 |
|---|---|
| BCLK | GPIO 47 |
| LRC | GPIO 48 |
| DIN | GPIO 21 |
| VIN | 5V |
| GND | GND |
| SD, GAIN | sin conectar |
| + / − | altavoz |
Botones y LED
| Elemento | ESP32-S3 |
|---|---|
| BOOT (hablar) | GPIO 0 |
| Volumen + | GPIO 38 |
| Volumen − | GPIO 39 |
| LED | GPIO 14 |
Botón: una pata al GPIO y la otra a GND. No hacen falta resistencias.
4Consejos de montaje
- Suelda los pines de cada módulo. Los pines solo apoyados en la protoboard son la causa número uno de fallos.
- Usa cables cortos, sobre todo en la pantalla (8 y 9): con cables largos la imagen sale con rayas o no aparece.
- No cruces BCLK y LRC del amplificador ni SCK y WS del micrófono: con cualquiera de esos dos cruces no hay sonido.
- Deja el pin SD del amplificador sin conectar. Si lo conectas a GND, el amplificador se apaga.
- El pin L/R del micrófono va a GND: Tina escucha por el canal izquierdo.
- El altavoz va a los bornes + y − del amplificador, nunca a GND.
- Revisa todo con la placa desconectada antes de enchufarla por primera vez.
5Instalar el firmware
Descarga el firmware compatible con tu placa y seguí las instrucciones incluidas en el paquete.
Descargar firmware de Tina- Conecta la ESP32-S3 al computador con el cable USB-C.
- Abre espressif.github.io/esptool-js, la herramienta oficial de Espressif para grabar la placa.
- Pulsa Connect y elige el puerto de la placa. Si no aparece: mantén BOOT, pulsa RESET, suelta BOOT y vuelve a intentarlo.
- La primera vez, pulsa Erase Flash y espera a que termine.
- En Flash Address escribe
0x0y elige el archivo.bin. - Pulsa Program. Cuando termine, pulsa RESET en la placa.
Con línea de comandos (esptool)
pip install esptool esptool --chip esp32s3 -b 460800 write-flash 0x0 NOMBRE_DEL_ARCHIVO.bin
6Primer arranque
Tina te guía en la pantalla. Son dos pasos.
Conecta el WiFi
Escanea el QR con la cámara del celular. Se unirá a la red de Tina y abrirá su página. Elige tu WiFi, escribe la contraseña y toca Conectar.
¿No se abre? Entra a http://192.168.4.1. Usa una red de 2.4 GHz.
Registra a Tina
Tina dice y muestra un código de 6 dígitos. Entra a xiaozhi.me, inicia sesión, toca Agregar dispositivo y escribe el código.
En xiaozhi.me también eliges la voz, el idioma y la personalidad.
7Usar a Tina
Pídele recordatorios, alarmas, temporizadores o un modo de concentración, o simplemente conversa con él.
8Búsqueda web y Telegram
Dos funciones extra que necesitan claves personales.
🔎 Tavily: búsqueda en internet
Permite que Tina busque información actual en internet (noticias, resultados, datos del día).
- Crea una cuenta en app.tavily.com. Tiene un plan gratuito con créditos mensuales.
- En el panel, copia tu API Key. Empieza por
tvly-. - Guárdala para el archivo
.envcomoXIAOZHI_TAVILY_API_KEY.
✈️ Bot de Telegram: avisos en tu celular
Tina te envía al celular sus recordatorios, alarmas y temporizadores, y puedes darle órdenes desde el chat.
- En Telegram, abre @BotFather, envía
/newboty sigue los pasos (nombre y usuario del bot). - BotFather te da un token del tipo
123456789:AA…. Es la contraseña de tu bot: no la compartas. - Para saber tu chat_id: compila primero solo con el token, escríbele a tu bot y Tina te responderá “Tu chat_id es …”.
- Agrega ambos al
.envy vuelve a compilar. Solo tu chat podrá controlar a Tina.
| Comando | Qué hace |
|---|---|
/recordar 10m Sacar la ropa | Recordatorio en 10 minutos (también 2h o 18:30) |
/recordatorios | Lista los pendientes |
/cancelar 3 | Borra el recordatorio número 3 |
/aviso Hola | Muestra el mensaje en la pantalla de Tina |
/estado | Hora, estado y recordatorios pendientes |
/ayuda | Lista de comandos |
🛠️ Compilar con tus claves
Requiere el código fuente del proyecto y ESP-IDF 6.1 instalado. En la carpeta del proyecto crea un archivo .env:
XIAOZHI_TAVILY_API_KEY=tvly-tu-clave XIAOZHI_TELEGRAM_BOT_TOKEN=123456789:AA-tu-token XIAOZHI_TELEGRAM_CHAT_ID=tu-chat-id
Y compila e instala:
source ~/.espressif/v6.1/esp-idf/export.sh python3 scripts/build.py wk-esp32s3-dev --name wk-esp32s3-dev --custom-wake-word PALABRA_CONFIGURADA --language es-ES cd build && esptool --chip esp32s3 -b 460800 write-flash $(cat flash_args | tr '\n' ' ')
.env y el firmware que compiles con él contienen tus claves. Guárdalos solo para ti.9Solución de problemas
No se escucha nada
- Revisa que BCLK vaya a GPIO 47, LRC a GPIO 48 y DIN a GPIO 21, sin cruzarlos.
- VIN del amplificador a 5V y su GND al GND de la placa.
- El pin SD del amplificador sin conectar.
- Sube el volumen con el botón Volumen + o diciendo “sube el volumen”.
No me escucha o no responde a la palabra de activación
- Revisa SCK a GPIO 42, WS a GPIO 40 y SD a GPIO 41.
- L/R del micrófono a GND y VDD a 3V3 (no a 5V).
- Habla a menos de un metro y sin mucho ruido de fondo.
La pantalla está negra o se ve rara
- Si está totalmente negra, revisa BLK en GPIO 10 y VCC a 3V3.
- Si tiene rayas o ruido, acorta los cables de GPIO 8 y GPIO 9.
- Si los colores salen invertidos o la imagen corrida, tu pantalla es de otro modelo.
No aparece la página del WiFi
- Conéctate a mano a la red “Xiaozhi-XXXX” y abre
http://192.168.4.1. - Si el celular pregunta si quieres mantener la conexión sin internet, responde que sí.
- Desactiva temporalmente los datos móviles si la página no carga.
No se conecta a mi WiFi
- Tina solo usa redes de 2.4 GHz. Si tu router tiene una sola red mixta, activa la banda de 2.4 GHz.
- Revisa la contraseña con el botón “Ver” de la página.
El computador no detecta la placa
- Usa un cable USB-C de datos; muchos cables solo cargan.
- Conéctala al puerto USB nativo de la placa (a veces marcado “USB”, no “UART/COM”).
- Entra en modo descarga: mantén BOOT, pulsa RESET y suelta BOOT.
Tina está basado en el proyecto de código abierto XiaoZhi ESP32 (licencia MIT; ver el archivo LICENSE). La conversación con la IA la presta el servicio xiaozhi.me, de terceros. Tavily y Telegram son servicios externos con sus propias condiciones.