Loud-ESP32 Board, keine Tonausgabe

Hallo Team,

hab dieses Elecrow Board von Berrybase erworben und kämpfe seit ein paar Tagen, irgendwelche Text zu Sprache Ausgaben hinzubekommen. Das .yaml File habe ich mir aus allen möglichen Quellen zusammengesucht, wird auch sauber kompiliert und geflasht, allein es herrscht Stille….

ESPHome Builder erkennt das Board online, Piper mit Wyoming Protokoll ist installiert, Loud-ESP32 Integration wird erkannt und im Verlauf bekomme ich auch die Ansage dass etwas abgespielt wurde, jedoch hört man eben nichts. Auch der direkte Dienstaufruf tts.speak wird ohne Fehler ausgeführt, ebenfalls tonlos. Ich vermute Fehler in meiner .yaml, nur stehe ich momentan etwas auf dem Schlauch.

Hat eventuell schonmal jemand dieses Teil ans Laufen bekommen und wenn ja wie!? Wäre dankbar für etwas Input!

Grüße!

Matthias


esphome:
  name: loud-esp32-audio
  friendly_name: Loud-ESP32 Audio

esp32:
  board: esp32dev
  framework:
    type: arduino


logger: 
  level:  DEBUG

api:
  encryption:
    key: "9flBf6PJJfWdcJQZHo9nRBaH9l48uL026Yg/3tWAQhM="

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  
i2s_audio:
  - id: i2s_bus
    i2s_lrclk_pin: GPIO25
    i2s_bclk_pin: GPIO26

speaker:
  - platform: i2s_audio
    id: hardware_speaker
    i2s_audio_id: i2s_bus
    i2s_dout_pin: GPIO22
    dac_type: external
    channel: mono
    buffer_duration: 500ms

  - platform: mixer
    id: audio_mixer
    output_speaker: hardware_speaker
    queue_mode: true 
    source_speakers:
      - id: music_channel
      - id: announcement_channel

media_player:
  - platform: speaker
    name: "Loud ESP32 Lautsprecher"
    id: loud_media_player
    buffer_size: 32768
    
    # Kanal 1 für Musik
    media_pipeline:
      speaker: music_channel
      format: FLAC
      num_channels: 1
      sample_rate: 44100

    # Kanal 2 für Durchsagen (TTS)
    announcement_pipeline:
      speaker: announcement_channel
      format: FLAC
      num_channels: 1
      sample_rate: 44100

Hm, vlt. die Lautstärke setzen?

Per yaml oder wie meinst Du das, den Slider der Entität kann ich verschieben, ohne Wirkung.

z.B.: so

service: media_player.volume_set
target:
  entity_id: media_player.i2s_lautsprecher
data:
  volume_level: 0.5  # 50% Lautstärke

Aber davon abgesehen könnte es auch an den Anschlüssen liegen.
Die Pins für I2S etc. hast du geprüft? Dass es die richtigen sind?
Lautsprecher korrekt angeschlossen?
Vergleiche das mal mit den Angaben in der Board Beschreibung Ich gleube deine Pins für Clock und Data sind nicht ganz korrekt.
Der DAC hat noch einen Enable Pin, vlt. muss der noch gesetzt werden?
Cherrs Franky

Ok, danke Dir, ich versuche mal diese Sachen!

Grüße

Matthias

Also ich glaube dass ich mich komplett verrenne was die Änderungen in der .yaml anbelangt. Da fehlt mir der Background.

Der DAC muß sicherlich enabled werden da der Lautsprecher komplett still ist und auch die Pin Zuweisung ist wohl falsch. Ich habe sicherlich eine .yaml die als Basis nicht wirklich taugt….

Grüße!

Matthias

Schau mal da, das sind Beispiele aus der Doku von Berrybase

 # DAC enable pin (actually amp UNMUTE)
  dac_enable_pin: GPIO13
  dac_enable_restore_mode: ALWAYS_OFF
# DAC enable switch
# This package provides a switch to enable/disable the DAC and optionally restore its state on boot.
# Requires substitutions:
#   - dac_enable_pin
#   - dac_enable_restore_mode (e.g., ALWAYS_ON, ALWAYS_OFF, RESTORE_DEFAULT_ON, RESTORE_DEFAULT_OFF)

switch:
  - platform: gpio
    icon: "mdi:speaker"
    name: Enable DAC
    id: enable_dac
    pin:
      number: ${dac_enable_pin}
    restore_mode: ${dac_enable_restore_mode}

Ok, ist halt nur dass man dazu den Syntax beherrschen muß, und davon bin ich zu weit entfernt…:joy:

Ich kann dir zwar ein solches Board designen und routen, bestücken und testen, aber die zugehörige Software wollte sich mir bislang nicht erschließen, ich bekomme keinen Zugang zu Leerzeichen, Einrückungen und dergleichen, kann auch nichts dafür.

Ich möchte auch nicht nerven und deine Zeit in Anspruch nehmen, aber ohne ein halbwegs funktionierendes .yaml bin ich aufgeschmissen.

Grüße!

Matthias

Lac, da geht es dir, wie mir :rofl:

Ich bin darin auch nicht fit, probiere aber solange rum, bis das passt.
Du kannst auch mal das Beispiel aus der Doku nehmen und überall, wo Include steht aus der jeweiligen Datei, den Code genau dahin kopieren, wos include steht, und immer auf die Einrückungen achten, dann wird das schon.
Cheers Franky

Hallo Franky,

ich hab in der Zwischenzeit endlos mit Google rumgemacht und welch Wunder, die haben es tatsächlich geschafft eine funktionierende .yaml zu erstellen. Ich bin doch einigermaßen geflasht was da mittlerweile so geht, Hut ab!

Mach nun noch etwas Feintuning und stelle das dann mal hier ein, vielleicht hilft es ja jemand!

Grüße

Matthias

Na also, geht doch :grin: :waving_hand:
Umsomehr kannst du nun deinen Erfolg genießsen!
Und ja, die Google AI ist ganz brauchbar und vor Allem kostet als Anwender nix.

Grüße Franky

Hallo,

und wen es interessiert, hier eine funktionierende .yaml für das Elecrow Board Loud-ESP32. Wie gesagt, Google hat hier den entscheidenden Beitrag geliefert!

Viel Spaß

Matthias

# Board: Generic ESP32 Board (Generic)
# Definition: definitions/boards/generic-esp32/manifest.yaml

esphome:
  name: loud-esp32-audio
  friendly_name: Loud-ESP32 Audio
  on_boot:
    priority: 900.0
    then:
      - switch.turn_on: amp_power_pin
      - switch.turn_on: dac_enable_pin

esp32:
  board: esp32dev
  framework:
    type: esp-idf
    advanced:
      sram1_as_iram: true 

# 🚀 SCHRITT 1: DAS INTERNE PSRAM-MODUL DES WROVER-CHIPS AKTIVIEREN
# Behebt den Compiler-Fehler. Das zwingt ESPHome, die 8 MB RAM anzusteuern.
psram:
  mode: quad
  speed: 40MHz

# Schritt 2: Weist das Audio-Framework an, den frisch aktivierten Speicher zu nutzen
substitutions:
  task_stack_in_psram: "true"

logger: 
  level: ERROR 

api:
  encryption:
    key: "9flBf6PJJfWdcJQZHo9nRBaH9l48uL026Yg/3tWAQhM="

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  power_save_mode: NONE

switch:
  - platform: gpio
    pin: GPIO13
    id: amp_power_pin
    restore_mode: ALWAYS_ON

  - platform: gpio
    pin: GPIO21
    id: dac_enable_pin
    restore_mode: ALWAYS_ON
 
i2s_audio:
  - id: i2s_bus
    i2s_bclk_pin: GPIO26
    i2s_lrclk_pin: GPIO25
      
speaker:
  - platform: i2s_audio
    id: hardware_speaker
    i2s_audio_id: i2s_bus
    i2s_dout_pin: GPIO22 
    dac_type: external   
    channel: stereo 
    buffer_duration: 1000ms # Großer Hardware-Puffer dank der 8 MB RAM!
    timeout: never

media_player:
  - platform: speaker
    name: "Loud ESP32 Lautsprecher"
    id: loud_media_player
    # 🎛️ MAXIMALER SPEICHER: Puffer extrem vergrößert, da der RAM nun verfügbar ist
    buffer_size: 262144
    volume_initial: 80%
    task_stack_in_psram: true
        
    announcement_pipeline:
      speaker: hardware_speaker
      format: WAV
      num_channels: 2
      sample_rate: 44100 # Endlich flüssige, hochauflösende 44.1 kHz CD-Qualität!

Hi, sind das wirklich nur 40MHz?? Nicht 80MHz? erscheint mir wenig! Auch der Quad Mode bedeutet nur 4Bit breiter Datenpfad, octal 8Bit breiter Datenpfad und höhere Übertragungsraten → leistungsfähiger :upside_down_face:
Versuchs mal damit, bin gespannt, wies läuft.

psram:
  mode: octal
  speed: 80MHz

Aus der Doku des Boards
Cheers Franky

80MHz ja, den octal Mode lässt ESPHome nicht zu !? Das hängt wohl mit dem Chip zusammen (N8R8), es ist vermutlich seitens ESPHome auch viel in Bewegung.

Grüße!

Welche Revision des Boards hast du?

N8R8 heisst nur, 8MB Flash, 8MB PSRAM, das sagt nichts darüber aus, wie das PSRAM angebunden ist. Und warum lässt ESPHOME den Octal mode nicht zu? Ich habe verschiedene Boards mit PSRAM, die laufen alle mit 80MHz und Mode Octal

Es ist 11/24 Rev. E1, also die Revision des Loud- Boards, auf dem ESP Modul steht lediglich WROVER E1 und MGN8R8.

Hm,
Jep, im Datenblatt (Seite 8) des Chips sieht man, dass das PSRAM nur mit 4 Leitungen angebunden ist - also doch nur quad :rofl: hattes recht.
Es müsste auch noch mit 50MHz laufen, die 80MHz sind nur im Octal Mode.
Kannst ja mal testen, wie viel man da noch zugeben kann :upside_down_face:

Funktioniert auch mit 120MHz, gerade probiert!

1 „Gefällt mir“

Nice! Unglaublich, was da doch noch geht :upside_down_face:

Hi Matthias,

wie zufrieden bist du denn mit dem Board? Wie ist der Klang und die Leistung?
Hab nämlich gerade dieses Video gefunden …

Cheaper than Sonos or WiiM with great sound

…und direkt nach Beiträgen zum Loud-ESP32 gesucht. :slightly_smiling_face:

Bin schon länger am basteln eines voice assistent und mediaplayer mit einem ESP32 S3. Nur die Standard Verstärkermodule (MAX98357A) sind einfach zu schwach.

Wobei ich sehe gerade dass in dem Datenblatt von deinem Board auch nur 2x 3W steht. :confused:
Das Board in dem Video hat deutlich mehr Leistung.

Grüße
Fabian