Interfaz de audio con esp32

114 views
Skip to first unread message

Juan Martín Guillén

unread,
Sep 16, 2026, 11:16:43 AMSep 16
to embeb...@googlegroups.com
Buenas ¿cómo andan?
Tengo que crear una prueba de concepto con un esp32 en el que tengo que usar un headset para grabar y reproducir audio.
Una opción es por el lado de I2S con un mic como INMP441 y un DAC como el MAX98357A que para prueba de concepto podrían funcionar pero necesito algo más práctico como un headset que el usuario se pueda poner para interactuar con el dispositivo. No encontré ningún headset que tenga la interfaz I2S directamente, lo que sería un golazo.
Por otro lado, lo que me vendría inclusive mejor es usar un headset USB directamente con el esp32.
Yo estoy usando el devkit esp32-s3 que tiene interfaz USB conectada directo en el SOC pero me parece que el tema es la alimentación del headset que no la tiene.
¿Alguno tiene experiencia en este tipo de configuración que me pueda dar una idea de qué camino tomar?
Saludos y gracias,
Juan Martín.

Fernando Cassia

unread,
Sep 17, 2026, 5:41:41 AMSep 17
to embeb...@googlegroups.com


On Wed, 16 Sept 2026, 12:16 Juan Martín Guillén, <juanmart...@gmail.com> wrote:
Buenas ¿cómo andan?
Tengo que crear una prueba de concepto con un esp32 en el que tengo que usar un headset para grabar y reproducir audio.
Una opción es por el lado de I2S con un mic como INMP441 y un DAC como el MAX98357A que para prueba de concepto podrían funcionar pero necesito algo más práctico como un headset que el usuario se pueda poner para interactuar con el dispositivo. No encontré ningún headset que tenga la interfaz I2S directamente, lo que sería un golazo.
Por otro lado, lo que me vendría inclusive mejor es usar un headset USB directamente con el esp32.

Asegurate que sea UAC 1.0 y funcionará C ESP32 que soporte  modo host USB.


UAC 1.0 (USB Audio Class 1.0) es el estándar de audio digital por conexión USB sin necesidad de drivers especificos para cada dispositivo, algo asi como UVC para webcams o USB MSD para almacenamiento.
La calidad deaudio es 24 bits/96 kHz y soportar USB 2.0 Full Speed.
Funciona en casi todos los sistemas operativos (Windows, macOS, Linux) y consolas como la Nintendo Switch o Sony PS5.
Sobre las versiones de UAC:
UAC 2.0 admite velocidades de audio mucho más altas (hasta 32 bits/768 kHz y DSD) con una latencia menor (500 microsegundos vs 4ms).
Muchos DAC USB modernos UAC 2.0 incluyen UAC 1.0 como modo de compatibilidad para que el hardware que no entiende UAC 2.0 pueda conectarse igual.
FC

bons

unread,
Sep 17, 2026, 6:29:35 AMSep 17
to Embebidos32
Buenas Juan!

No tengo experiencia con ESP32 pero hice una prueba de concepto similar con STM32 usando ThreadX y el stack USBX. Ese stack implementa audio host hasta UAC 2.0, que era mi interes por tener menor latencia que UAC 1.0 (0.125 ms versus 1 ms). Mi idea era usar interfaces de audio profesionales y fue un fracaso pues USBX no tiene muy desarrollado UAC 2.0, por ejemplo le faltaba en su momento feedback asincrónico y otras yerbas que toco de oído. Los headset que probé funcionaron sin problemas. Mi conclusión fue pasarme a linux embebido: ALSA resulta la mejor opción para compatibilidad con más dispositivos de audio usb.

Mi opinión sería usar headsets de audio con conectores mini trrs (speakers L + R y mic), que tu dispositivo tenga los ADC y DAC para recibir y generar señal de audio analógica y usar el ESP32 con I2S. Son baratos y tu programa puede ser más sencillo, un stack USB agrega bastante complejidad.

Si igual necesitas o querés explorar la opción USB Host, sumo que UAC 2.0 ademas de tener menor latencia (que depende tu aplicación puede ser despreciable), también sopprta más cantidad de canales (que también te podría resultar irrelevante x lo que comentas) y necesita una interfaz High Speed, lo cual no estoy seguro que el ESP32 traiga. Yo en el board nucleo tuve que agregarle una por ULPI y me hizo putear un poco.

No exploré la grabación. Qué necesitas ahí? depende los buffer que precises y la calidad de grabación habría que ver si estás bien de memoria RAM, otro punto para analizar si usas un stack USB o conviene algo más sencillo como el I2S. Habría que ver cuánto demanda cada opción.

Suerte con el proyecto!
Bomba

Juan Martín Guillén

unread,
Oct 1, 2026, 3:12:50 PMOct 1
to embeb...@googlegroups.com
Buenas ¿cómo andan?
Con un ESP32-S3 pude hacer andar mi proyecto con UAC 1.0 para capturar audio y mandarlo a un backend vía Websockets.
Pero cuando quise extenderlo para también reproducir audio no pude hacerlo andar bien.
Voy a probar con un ESP de la serie P4 a ver si funciona y si no voy a tener que usar un Linux en algún SBC de gama baja.
Gracias a ambos por las respuestas,
Juan Martń.

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/embebidos32/6738bfdd-e1f0-4fc3-9d5e-db0afdf411den%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages