Referencia de cableado del equipo de Voz para el ESP32-S3, y el estado real de la conversión voz ↔ texto de punta a punta.
El micro y el parlante nunca transmiten a la vez, así que comparten reloj de bit (BCLK) y selector de canal (WS), y cada uno se queda con su propia línea de datos: 4 pines en vez de 6.
La salida del MAX98357A es en puente (BTL). Ni + ni − del parlante es masa. Conectar cualquiera de los dos a GND cortocircuita media etapa de salida y quema el chip. Usa el conector JST-PH del parlante tal cual, o un latiguillo hembra con cables sueltos.
| Pin | Va a | Nota |
|---|---|---|
| VDD | 3V3 | nunca 5 V |
| GND | GND | — |
| SCK | GPIO 15 | compartido con el amp |
| WS | GPIO 16 | compartido con el amp |
| SD | GPIO 17 | datos: habla el micro |
| L/R | GND | nunca al aire — causa nº1 de "grabo y hay silencio" |
| Pin | Va a | Nota |
|---|---|---|
| Vin | 5V | a 3V3 suena más flojo |
| BCLK | GPIO 15 | compartido con el micro |
| LRC | GPIO 16 | compartido con el micro |
| DIN | GPIO 18 | exclusivo |
| SD | GPIO 2 | mute por hardware, no solo apagado |
| GAIN | al aire | 9 dB por defecto |
La mitad local (capturar, mutear, reproducir) ya corre en hardware. La mitad de nube tiene proveedor decidido pero ningún evento del bus la conecta todavía al firmware.
| Etapa | Proveedor | Estado |
|---|---|---|
| Captura + mute (I2S) | INMP441 + MAX98357A | verificado en S3 |
| Cerebro (LLM) | Claude Haiku 4.5 | contrato brain.ask/brain.reply en código |
| STT | OpenAI gpt-4o-mini-transcribe | decidido, sin cablear (#9/#26) |
| TTS | OpenAI gpt-4o-mini-tts | decidido, sin cablear (#9/#26) |
voice.* en event-registry (issues #9, #26)firmware/components/Kconfig.projbuild