PROTOTYPE

HIOS WiFi Speaker

Parlante WiFi + Bluetooth con ESP32: **2× amplificador I2S MAX98357 en estéreo**, display LCD 16×2 y batería 2S recargable por USB-C. Reproduce radios WiFi, audio de YouTube (vía Invidious) y actúa como sink Bluetooth A2DP, con control por interfaz web.
1 / 6
Der Moment

"Der erste Testton, der über WiFi lief. Keine Kabel, kein Rauschen, nur Musik."

I2S mit dem MAX98357 einzurichten war einfacher als mit dem PCM5102, aber WiFi-Streaming hat seine eigenen Tücken. Buffer Underrun, Latenz, automatisches Reconnect...

HIOS WiFi Speaker

Parlante WiFi + Bluetooth con ESP32: 2× amplificador I2S MAX98357 en estéreo, display LCD 16×2 y batería 2S recargable por USB-C. Reproduce radios WiFi, audio de YouTube (vía Invidious) y actúa como sink Bluetooth A2DP, con control por interfaz web.

Quick Start

cd projects/speaker
pio run -t upload             # compilar y flashear (PlatformIO)
pio device monitor -b 115200  # monitor serial

¿Qué es?

Un hub de audio de escritorio. Modos (enum Mode en src/main.ino):
  • WiFi Radio — streams de radio (presets + URL custom).
  • YouTube — audio de YouTube vía la API de Invidious.
  • Bluetooth A2DP — sink: le mandás audio desde el celu/PC.
  • Config por BT serial — seteás el WiFi desde una terminal Bluetooth, sin recompilar.
Todo sale por I2S a los dos MAX98357 (estéreo real, un ampli por canal). El LCD muestra modo, volumen y título.

Cableado

La hoja verificada contra el firmware es la guía /pinouts/speaker (se auto-verifica contra src/main.ino en cada npm run test:wiring). Resumen:
BusESP32A
I2S DINGPIO25DIN de ambos MAX98357 (bus compartido)
I2S BCLKGPIO26BCLK de ambos
I2S LRCGPIO27LRC de ambos
I2C SDA / SCLGPIO21 / GPIO22LCD 16×2 (0x27)
VBATGPIO34divisor 100k/100k del pack (IO34 es input-only)
5V / GNDVIN / GNDdel LM2596 (buck a 5.0V)
El canal L/R lo elige el pin SD de cada ampli — MEDÍ, no asumas. El bus I2S es compartido; lo único distinto entre los dos módulos es SD. Left = SD→Vin (medí >1,4V); Right = SD→Vin por ~220–330k (medí 0,77–1,4V). Ver el paso "medir SD" en la guía. El viejo dato "1MΩ→GND=Left" es datasheet-dudoso: no lo uses.

Componentes (BOM)

Estéreo, pack 2S:
ComponenteFunciónSpecs clave~USD
ESP32 DevKit (WROOM-32)Micro + WiFi + BTsolo 2.4GHz$8
MAX98357Ampli I2S (L + R)3.2W @4Ω, clase D, 2.5–5.5V, THD+N 0.015%$6
parlante 63mmSalida (L + R)4Ω, 3W, 87dB, F0 ~135Hz$6
LCD 16×2 + backpack I2CDisplay de estadoHD44780, 0x27 (a veces 0x3F), 5V$4
LM2596S c/displayBuck 5.0V1.25–37V ajust., ~3A c/disipador, ~95%$4
Cargador 2S USB-CBMS + carga8.4V full, 2.2A carga, requiere 5V/4A$5
18650 (serie/2S)Batería7.4V nom → 8.4V full$12
Resistencias2× 100k (divisor VBAT) · 1 R para SD (valor medido)
⚠️ Batería en SERIE (2S), no en paralelo. El pack es 7.4V nominal (8.4V a plena carga) y el cargador USB-C es 2S. Un portapilas en paralelo (3.7V) es de una versión vieja y no sirve acá.
Compra (AR/MercadoLibre): "esp32 devkit v1" · "max98357 i2s amplificador" (×2) · "lcd 16x2 i2c" · "fuente lm2596 step down display" · "cargador litio 2s usb-c" · "porta pila 18650 serie" · "parlante 4 ohm 3w 63mm" (×2).

Armado (el orden importa)

Cada fase se prueba antes de pasar a la siguiente:
  1. Energía primero. Cargá el pack 2S, conectá al LM2596 y ajustá el buck a 5.0V con el multímetro. NO conectes nada más hasta tener 5V estables.
  2. ESP32 — OUT+ del buck → VIN, OUT− → GND. Probá un Blink por USB.
  3. Amplis (×2) — Vin→5V, GND→masa común, bus I2S (25/26/27) a los dos. Parlante 4–8Ω directo a la salida de cada ampli (class-D filterless, sin filtro).
  4. LCD — VCC→5V, GND, SDA=21 / SCL=22.
  5. Firmwaretests/test_basic.ino (debe dar un tono) → después src/main.ino.
Soldadura: 350–380°C con plomo (380–400 sin), contacto 2–3s, estañá puntas y pads primero. Antes de encender: continuidad de GND (0Ω entre todas las masas), sin corto VIN↔GND (∞), buck a 5.0V. Fotos de referencia en pics/build/ y pics/modules/.

Troubleshooting (aprendido a los golpes)

  • Se reinicia al usar WiFi: los picos de TX piden ~500mA → cap 470µF en la entrada del ESP32 (y ojo con cable USB fino / fuente floja = brownout).
  • Zumbido / ruido: una sola masa (no cablees el GND del ESP32 y del ampli por separado = ground loop); 100nF cerámico + 100µF electrolítico cerca de cada MAX98357; alejá el ampli de la antena; ferrita en los cables de audio; I2S corto (<10cm) y trenzado.
  • Distorsión: buck a 5V estables; bajá el volumen (el MAX98357 satura con señal muy fuerte).
  • Sale un solo canal: SD mal seteado en un ampli → medí SD, no asumas la R.
  • WiFi no conecta: el ESP32 es solo 2.4GHz. El voltaje del display del LM2596 es la salida (5V), no la batería.
Consumo típico: idle ~80mA · reproduciendo ~150mA · volumen máx ~300mA. La autonomía depende de la capacidad de las celdas.

Estado

En desarrollo — prototipo funcional. Firmware andando: WiFi radio, YouTube/Invidious, BT A2DP, config por BT serial, LCD y lectura de VBAT. Pendiente: PCB custom.

Licencia

Open Hardware — usá, modificá y compartí libremente.

HIOS — HI Open Systems · openhios.dev/projects/speaker

Spezifikationen

AudioI2S digital, 44.1kHz 16-bit
VerstärkerMAX98357A, 3.2W @ 4Ω
KonnektivitätWiFi 802.11 b/g/n
Akku7.4V 5000mAh (2x18650)
Akkulaufzeit8-16 Stunden geschätzt
SteuerungWeb interface, mDNS

Stückliste (BOM)

ComponenteCant.PrecioNotas
ESP32 DevKit V11$8WiFi + Bluetooth
MAX98357 I2S Amp2$63W Verstärker x2 (Stereo)
LM2596S w/Display1$4Einstellbare 5V-Versorgung
18650 Battery2$12Li-Ion 3500mAh
USB-C Charger 2S1$5BMS mit Schutz
Speaker 63mm 4Ω 3W1$3Breitband-Lautsprecher
Ungefährer Gesamtbetrag$56 USDOhne Versand
Demnächst
Echtes Audio-Streaming (HTTP/WebSocket)
Spotify Connect
AirPlay-kompatibel
Multi-Room-Sync
Android-Steuerungs-App
Web-Equalizer
OTA-Updates
Was funktioniert
  • I2S Audio — digitale Qualität, kein Rauschen
  • Web-Steuerung — von jedem Gerät
  • USB-C Akku — schnelles Laden
  • Spannungsanzeige — immer sichtbar
  • mDNS — Zugriff per Name, nicht IP
Was verbessert werden muss
  • Echtes Streaming — bisher nur Testton
  • Kein Gehäuse — offene Elektronik
  • WiFi-Reichweite — hängt vom Router ab

Willst du eines?

Bau es selbst. Es gehört jetzt dir.<br/>Alle Codes, Schaltpläne und Anleitungen sind verfügbar.

Project Toolbox

Archivos técnicos listos para flujo embebido diario: abrir, descargar o visualizar por tipo.
Documentación
ASSEMBLY.md
public
COMPONENTS.md
public
HIOS_Speaker_Soldering_Guide.md
public
HIOS_Speaker_Soldering_Guide.pdf
source
HIOS_Speaker_Soldering_Guide.pdf
public
PINOUT.md
public
README.md
source
README.md
public
TROUBLESHOOTING.md
public
Firmware / Config
platformio.ini
source
src/main.ino
source
tests/test_basic.ino
source
Funktionsfähiger Prototyp. Bau deinen eigenen.
Soll ich es für dich bauen? Schreib mir