M5 Atom Echo: is it possible to disable the speaker?


Is it possible to disable the speaker of the Echo? I’ve written some scripts that output TTS responses through a Sonos speaker, but the TTS responses are also being played through the Echo’s speaker, which I would like to avoid.

Any ideas?

1 Like

Yeah it should be. I have been trying to get the M5Stack AtomU to work which has no speaker. And as I was learning about configuring that I got it to work. So you should be able to do the same. But the only way I found to get it to work was to clone the github repo and modify it. Then make a local install through the ESP32 web interface.

I am on the hunt for the same. What I tried in the config is commenting out the speaker. However, that works exactly one time and then wakeword detection stops and the thing hangs itself. Any ideas welcome

#speaker: echo_speaker

But the only way I found to get it to work was to clone the github repo and modify it

Too bad, I actually didn’t want to deal with all the Echo devices with every update. Therefore, I’m waiting/hoping for a native solution. Nevertheless, thank you very much for your response.

What I tried in the config is commenting out the speaker.

I’ve tried exactly that as well, but unfortunately without success. If I comment out the speaker:

  speaker: null

it will still be included again when installing the new configuration (shown in the config validation):

  speaker: echo_speaker

I have also considered whether I could simply set the speaker’s volume to 0, but even if that’s possible, I get the impression that my above-mentioned scripts are only executed once the Echo has finished its audio output.

So, basically, I want one of two options:

  1. Either get the Echo to use a media_player as output, or
  2. Deactivate the speaker so that there is no attempt to output the response on it in the first place."

Currently, I don’t see a way to implement either of the two options and would appreciate any further ideas.

I got it to work by changing the GPIO pin of the speaker to 21:

  - platform: i2s_audio
    id: echo_speaker
    i2s_dout_pin: GPIO21
    dac_type: external
    mode: mono

Looking for this. Could you give more instructions on where this was added? I guess it is not in the configuration.yaml since that tells me that there is no speaker integration.

Sorry for my sparse message earlier. You have to change the configuration file for the firmware of ESPHome and then upload this new configuration to the M5Stack.

The original configuration file is here: https://github.com/esphome/firmware/blob/97e1ee17a1ce83cad60f270c066a58302368dd3f/voice-assistant/m5stack-atom-echo.yaml

Sorry to take your time but I’m googling with no results. How do you upload the config file into the Echo? The options I saw are only for the *bin file (esphome web tools). I’m probably missing something very basic here. Thanks in advance!

You can find the documentation for uploading a new firmware here: Getting Started with the ESPHome Command Line — ESPHome

The easiest method would be probably via docker.

Has anyone been able to get these to work with amazon echo speakers? I have been trying for about a week with no success

Couldnt get that to work for me - using SmartHome junkie tutorial to add my Sonos as the audio playback and works fine - but speakers reply
When i chaneg GPIO22 to 21 and reinstall then nothing works - not even the microphone :frowning:
Now i am trying and even though i am on GPIO21 i am getting audio out both. Will continue to play - its to bad these couldnt be set in the GUI like microphone off an on

Think i got it - needed to delete the old M5 stack from HA - did a reboot and now sonos only is working

Has anyone been able to get this to work on the esp32-s3-box-3? I want to mute the responses and pipe them out to a whole home speaker. Tried setting the speaker to null in the voice_assistant section but that didnt do anything.

I’m not so great at esphome stuff outside of what others have created and I can hack it a bit, but I certainly can’t figure this one out…

Could someone take the m5Stack Atom Echo and create some configuration variables to allow you to chose the onboard speaker, or disable it… and an option to select any media player.

I can hard-code to get it to play on a HomePod but thinking it would be nicer to have a selector… and I can’t seem to disable the onboard speaker.

1 Like

I just submitted a change to esphome that fixes a crash that occurs when you remove the speaker parameter of the voice assistant component. In the next release you should be able to just delete the speaker and on_tts_stream sections and be all set.

1 Like