Saltar al contenido
Pixi Dot

Constrúyelo tú

Una placa ESP32-S3, una pantalla, un micrófono y un altavoz sobre una protoboard.

Qué vas a montar

Vas a montar, sobre una protoboard, una placa ESP32-S3 con una pantalla, un micrófono y un altavoz con su amplificador. El resultado es un aparato que te escucha, piensa y te contesta con una cara animada en la pantalla.

Este montaje sale del código del firmware y compila, pero todavía no lo hemos armado nosotros.

Piezas

Esto es lo que necesitas y en qué fijarte al comprarlo.

Piezas del montaje
Pieza Cantidad Qué mirar al comprarla
Placa ESP32-S3 (módulo WROOM N16R8)UnoESP32-S3 con 16 MB de flash y 8 MB de PSRAM octal (N16R8). El firmware activa PSRAM octal a 80 MHz (sdkconfig.defaults.esp32s3:5-7) y usa una tabla de 16 MB.
Pantalla ST7789 240x240UnoControlador ST7789, 240x240, SPI. Kconfig: LCD_ST7789_240X240 (SPI modo 0, con pin CS) o LCD_ST7789_240X240_7PIN (SPI modo 3, módulo sin CS).
Micrófono INMP441UnoI2S, un solo canal (izquierdo).
Amplificador MAX98357AUnoI2S, con altavoz pequeño.
Botones y LEDOpcionalOpcionales. El firmware no define botones de volumen ni táctil (config.h:33-35, todos GPIO_NUM_NC).
Altavoz pequeño Uno El que acompañe a tu amplificador: mira en su hoja de datos la impedancia y la potencia que admite.
Protoboard y cables de puente Una protoboard y un cable por conexión Cables que casen con tus pines: macho con macho o macho con hembra, según vengan tus módulos.
Cable USB Uno Tiene que ser un cable de datos: hay cables que solo cargan y con ellos el ordenador no verá la placa.

Conexiones

El esquema pone la placa en el centro y las piezas alrededor, con un cable por conexión. Elige una pieza, con el ratón, con el dedo o con el teclado (las flechas pasan de una a otra), para ver solo sus cables y su tabla. Elige un cable, o una fila de la tabla de abajo, para ver uno solo.

Es un esquema, no un dibujo de una placa concreta. Tu placa puede tener los pines en otro orden: guíate por el número de GPIO impreso, no por la posición. Una placa suele tener varios pines de masa y de alimentación; el esquema dibuja uno junto a cada pieza para no cruzar cables, y en tu placa vale cualquiera.

ESP32-S3esquemaPantalla ST7789240x240MicrófonoINMP441AmplificadorMAX98357ABotón BOOT(opcional)LED (opcional)VCCGNDSDA (MOSI)SCL (CLK)CSDCRES (RST)BLK (luz de fondo)VDDGNDL/RSCKWSSDVINGNDSD / GAINBCLKLRCDINun ladoDIN3V3GNDGPIO47GPIO21GPIO41GPIO40GPIO45GPIO423V3GNDGNDGPIO5GPIO4GPIO65VGNDGPIO15GPIO16GPIO7GPIO0GPIO48ESP32-S3esquemaPantalla ST7789240x240MicrófonoINMP441AmplificadorMAX98357ABotón BOOT(opcional)LED (opcional)VCCGNDSDA (MOSI)SCL (CLK)CSDCRES (RST)BLK (luz de fondo)VDDGNDL/RSCKWSSDVINGNDSD / GAINBCLKLRCDINun ladoDIN3V3GNDGPIO47GPIO21GPIO41GPIO40GPIO45GPIO423V3GNDGNDGPIO5GPIO4GPIO65VGNDGPIO15GPIO16GPIO7GPIO0GPIO48
  • Alimentación 3V3
  • Masa (GND)
  • Pantalla
  • Micrófono
  • Alimentación 5V
  • Otras conexiones
  • Amplificador y altavoz
  • Botón y LED

Todos los cables

Todas las conexiones del montaje
Pieza Pin de la pieza Va a Qué lleva
Pantalla ST7789 240x240Pantalla ST7789 240x2403V3 (carril)Alimentación 3V3
No viene del firmware; confirmar con la hoja de datos de la pieza.
Pantalla ST7789 240x240Pantalla ST7789 240x240GND (carril)Alimentación GND
Pantalla ST7789 240x240Pantalla ST7789 240x240GPIO47Datos de la pantallaEn el firmware: DISPLAY_MOSI_PIN · config.h:39
Pantalla ST7789 240x240Pantalla ST7789 240x240GPIO21Reloj de la pantallaEn el firmware: DISPLAY_CLK_PIN · config.h:40
Pantalla ST7789 240x240Pantalla ST7789 240x240GPIO41Selección de la pantallaEn el firmware: DISPLAY_CS_PIN · config.h:43
El firmware siempre maneja CS (compact_wifi_board_lcd.cc:85); en el código no es opcional. Los módulos de 7 pines no tienen CS: ese pin queda sin conectar y se usa la variante 7pin (SPI modo 3).
Pantalla ST7789 240x240Pantalla ST7789 240x240GPIO40Dato o comandoEn el firmware: DISPLAY_DC_PIN · config.h:41
Pantalla ST7789 240x240Pantalla ST7789 240x240GPIO45Reinicio de la pantallaEn el firmware: DISPLAY_RST_PIN · config.h:42
GPIO45 es pin de arranque (strapping) según la hoja de datos de Espressif; el firmware lo usa tal cual.
Pantalla ST7789 240x240Pantalla ST7789 240x240GPIO42Luz de fondoEn el firmware: DISPLAY_BACKLIGHT_PIN · config.h:38
PWM, no invertido (DISPLAY_BACKLIGHT_OUTPUT_INVERT false, config.h:132). Si el módulo no tiene BLK la luz queda fija.
Micrófono INMP441Micrófono INMP4413V3 (carril)Alimentación 3V3
No viene del firmware; confirmar con la hoja de datos de la pieza.
Micrófono INMP441Micrófono INMP441GND (carril)Alimentación GND
Micrófono INMP441Micrófono INMP441GND (carril)Alimentación GND
El firmware lee solo el canal izquierdo (main/audio/codecs/no_audio_codec.cc:109, slot_mask LEFT). Que L/R a GND sea el canal izquierdo es dato de la hoja de datos del INMP441, no del firmware.
Micrófono INMP441Micrófono INMP441GPIO5Reloj del micrófonoEn el firmware: AUDIO_I2S_MIC_GPIO_SCK · config.h:15
Micrófono INMP441Micrófono INMP441GPIO4Selección de canalEn el firmware: AUDIO_I2S_MIC_GPIO_WS · config.h:14
Micrófono INMP441Micrófono INMP441GPIO6Datos del micrófonoEn el firmware: AUDIO_I2S_MIC_GPIO_DIN · config.h:16
Amplificador MAX98357AAmplificador MAX98357A5V (carril)Alimentación 5V
No viene del firmware; confirmar el rango admitido antes de elegir 3V3 o 5V.
Amplificador MAX98357AAmplificador MAX98357AGND (carril)Alimentación GND
Amplificador MAX98357AAmplificador MAX98357ASin conectarNada
El firmware no los usa; dejarlos sin conectar es decisión de montaje, no del código.
Amplificador MAX98357AAmplificador MAX98357AGPIO15Reloj del audioEn el firmware: AUDIO_I2S_SPK_GPIO_BCLK · config.h:18
Amplificador MAX98357AAmplificador MAX98357AGPIO16Canal izquierdo o derechoEn el firmware: AUDIO_I2S_SPK_GPIO_LRCK · config.h:19
Amplificador MAX98357AAmplificador MAX98357AGPIO7Datos del audioEn el firmware: AUDIO_I2S_SPK_GPIO_DOUT · config.h:17
Botón BOOT (opcional)Botón BOOT (opcional)GPIO0BotónEn el firmware: BOOT_BUTTON_GPIO · config.h:32
La placa ya trae el botón BOOT en GPIO0; uno externo va entre GPIO0 y GND (activo en bajo: button.h:14, active_high=false). Pulsarlo durante el arranque entra en la configuración Wi-Fi; después alterna la conversación (compact_wifi_board_lcd.cc:126-133).
LED (opcional)LED (opcional)GPIO48LEDEn el firmware: BUILTIN_LED_GPIO · config.h:31
El firmware lo maneja como LED WS2812 direccionable (main/led/single_led.cc:21-24), no como LED simple: un LED normal con resistencia no funciona. Es el LED RGB que traen las placas N16R8.

Puedes imprimir esta página: el esquema y la tabla salen completos.

Antes de dar corriente

Pines que conviene no usar

El firmware ya usa GPIO0 (botón) y GPIO45 (RES), de la lista de arranque, y GPIO40, 41 y 42, que la hoja de datos marca como interfaz JTAG (prioridad 3, usar con cuidado). No hay que añadir otros de esta lista.

El firmware

El firmware todavía no está publicado: el código se publicará junto con el primer firmware. Este montaje usa la placa bread-compact-wifi-lcd de XiaoZhi y se compila con ESP-IDF; el script lo busca en ~/esp/esp-idf o en la carpeta de $IDF_PATH.

./construir.sh xiaozhi-protoboard

Con una pantalla de siete pines, sin CS, se compila con la otra variante:

PROTOBOARD_PANTALLA=7pin ./construir.sh xiaozhi-protoboard

El resultado queda en xiaozhi-protoboard/merged-binary.bin, con un flash_args que dice dónde va cada archivo (se graba en 0x0). El flashear.sh del repositorio todavía no incluye este montaje: grábalo con la herramienta de grabado de Espressif que uses, siguiendo ese flash_args.

Qué verás en la pantalla

Con este firmware el personaje es un conjunto de caras animadas, una por emoción. Las caras son algo más grandes que la pantalla y se recortan unos píxeles por los bordes. Los avatares descargables de este sitio todavía no funcionan en él.

Si algo no funciona

Qué comprobar si algo falla
Qué pasa Qué comprobar
La pantalla no enciende Con la placa desenchufada, revisa los cables de datos de la pantalla (SDA, SCL, CS, DC y RES) y el de la luz de fondo (BLK) contra la tabla. Comprueba también que la pantalla esté alimentada.
Hay luz pero no se ve la imagen Mira si tu módulo tiene pin CS. Si no lo tiene, necesita la otra variante del firmware, bread-compact-wifi-lcd-240x240-7pin.
No suena Revisa los cables de datos del amplificador, su alimentación y su masa, y que el altavoz esté bien conectado a su salida.
No te oye Revisa los cables del micrófono, su alimentación y su masa, y el pin L/R, que debe quedar como indica la tabla: el firmware lee solo el canal izquierdo.
El ordenador no ve la placa Usa un cable USB de datos, prueba otro puerto y mantén pulsado el botón BOOT mientras la enchufas.
Algo se calienta o huele raro Desenchúfalo enseguida y busca cables que se toquen o un cable en un pin equivocado.