Skip to content
MCU Atlas
ESP32ESP32-S3ESP32Draft

ESPHome wake-word voice assistants for Home Assistant

Official ESPHome configs that turn ESP32-S3 boxes into local wake-word voice satellites for Home Assistant Assist.

Difficulty:BeginnerCost:Source available

Photos

ESPHome wake-word voice assistants for Home Assistant photo 1
ESPHome wake-word voice assistants for Home Assistant photo 2

Photos: esphome.io

Key Facts

  • Chip: ESP32-S3
  • Framework: ESPHome
  • Wake word: on-device (microWakeWord)
  • Platform: Home Assistant Assist

About This Project

This repository holds the ESPHome team's ready-made configurations for voice assistant hardware such as the ESP32-S3-BOX-3, M5Stack ATOM Echo and the Home Assistant Voice Preview Edition. Wake-word detection runs on the device with microWakeWord, then audio streams to Home Assistant's Assist pipeline for speech-to-text and intent handling. You can flash these from the browser, which makes local, privacy-friendly voice control one of the easiest ESP32 projects to try.

Source & Attribution

Source: GitHub
License: Apache-2.0
Last verified: 10/16/2026
ESPHome wake-word voice assistants for Home Assistant
How to Build It
ESPHome's official firmware repo provides ready-made voice assistant configs for devices such as the ESP32-S3-BOX-3, Home Assistant Voice PE and M5Stack ATOM Echo. They detect the wake word on the device with microWakeWord and pass your speech to Home Assistant's Assist pipeline, so you get a local, private smart speaker.
Draft: steps not yet verified

Parts Needed

  • One supported device: ESP32-S3-BOX-3, Home Assistant Voice PE, or M5Stack ATOM Echo
  • A running Home Assistant install with Assist configured
  • USB data cable

Steps

  1. 1

    Set up Assist first

    In Home Assistant, set up a voice pipeline under Settings > Voice assistants. Speech-to-text and text-to-speech can run locally (Whisper and Piper add-ons) or through Home Assistant Cloud.

  2. 2

    Flash from the browser

    Open the ESPHome voice assistant install page (built on ESP Web Tools), connect the device over USB in Chrome or Edge, and install the prebuilt firmware for your model.

  3. 3

    Join Wi-Fi

    Enter your Wi-Fi details when the installer asks, or use Improv over BLE or serial on supported devices.

  4. 4

    Adopt in Home Assistant

    Home Assistant will find the new ESPHome device. Add it, then assign it to your voice pipeline and choose a wake word such as 'Okay Nabu'.

  5. 5

    Customise (optional)

    Adopt the device into the ESPHome dashboard to edit its YAML (LEDs, wake words, media player settings) and push changes over the air.

  6. 6

    Tips

    These devices need a 2.4GHz network. If the wake word misfires, try another supported wake-word model or adjust the sensitivity in the config.

Parts List (BOM)
Partial parts list
partial
PartQtyRoleEst. PriceBuy
1main board$40–$55View
1alternative$59–$69View
1alternative$13–$18View
Estimated Total$40–$55 USD

Not included: 3D-printed case, wire, solder, USB cable

Download CSV

Related Projects

Watchy: open-source ESP32 e-ink smartwatch
Illustration
ESP32Draft
An open-source smartwatch with a 1.54in e-paper screen and ESP32, hackable watch faces in Arduino.
Beginner·Under $15·Code
2 parts listed
Low-power ESP32 e-paper weather display (7.5in)
Illustration
ESP32Draft
A wall-mounted 7.5in e-paper weather display on an ESP32 that runs for months on one battery charge.
Intermediate·Cost varies·Code
5 parts listed
OpenEPaperLink: reuse e-ink shelf labels with an ESP32 access point
Illustration
ESP32ESP32-S3Draft
Turns cheap second-hand electronic shelf labels into a Wi-Fi-managed e-ink display fleet via an ESP32 access point.
Advanced·Under $15·Code
3 parts listed