ESPHome voice-assistant firmware made specifically for the M5Stack StickS3 K150 / StickS3. This is not a generic ESP32-S3 firmware image and should only be installed on the matching StickS3 hardware.
- Home Assistant voice satellite
- On-device
hey_jarviswake word - Microphone and speaker support through the StickS3 ES8311 audio codec
- 135 × 240 color LCD with an animated candy-colored robot
- Listening, thinking, and speaking status screens
- Speech transcript and assistant response text on the display
- Battery status icon and Wi-Fi signal on the display
- Battery percentage, battery voltage, and Wi-Fi signal sensors in Home Assistant
- Voice activation using the front button
- Automatic return to the robot screen after a completed response
- Wi-Fi provisioning through USB or the fallback setup portal
- OTA updates after the device joins the network
- Unique device names using a MAC-address suffix
This project targets the M5Stack StickS3 K150 / StickS3, including:
- ESP32-S3-PICO-1-N8R8
- 8 MB flash
- 8 MB PSRAM
- 1.14-inch 135 × 240 ST7789P3 color LCD
- ES8311 audio codec
- Built-in microphone
- Built-in speaker
- Front button
- 250 mAh battery
The StickS3 also includes infrared hardware, an IMU, and an expansion port, but this firmware does not currently enable those features.
Bluetooth Proxy is intentionally disabled to reduce its possible impact on Wi-Fi and voice-assistant performance.
Regular users do not need to install ESPHome, download the source code, or create a GitHub repository.
- Open the StickS3 Voice web installer using desktop Google Chrome or Microsoft Edge.
- Connect the StickS3 to the computer using a USB data cable.
- Select Connect.
- Choose the USB serial port belonging to the StickS3.
- Follow the instructions shown by the installer.
- Keep the device connected until flashing and verification are complete.
- Restart the device and configure Wi-Fi after installation.
Web installation replaces the firmware currently installed on the device and may clear existing network and device settings. Back up any configuration you need before flashing.
Users who prefer another flashing tool can download the compiled firmware directly:
This is a factory image intended for a complete first-time installation and can be written at offset 0x0.
The recommended desktop browsers are:
- Google Chrome
- Microsoft Edge
Web installation requires Web Serial support, and the installer must be served over HTTPS. GitHub Pages provides HTTPS automatically.
Safari and browsers on iPhone or iPad do not support this installation flow. Phones and tablets are not recommended for flashing.
If the StickS3 does not appear in the serial-port list:
- Confirm that the USB cable supports data transfer and is not a charging-only cable.
- Connect directly to the computer when possible instead of using a hub.
- Close other applications that may be using the serial port.
- Reconnect the device and reload the installer.
- If download mode is required, connect USB and hold the side button for approximately two seconds.
- Release the button when the internal green LED begins flashing.
- Select Connect again.
Do not select the following built-in macOS ports:
cu.Bluetooth-Incoming-Port
cu.debug-console
cu.wlan-debug
The StickS3 normally appears as a new USB, Espressif, or cu.usbmodem port.
After firmware installation, keep the StickS3 connected to the computer over USB.
The installer may automatically offer a Wi-Fi configuration option. If it appears, select your Wi-Fi network and enter its password.
If the Wi-Fi configuration option does not appear:
- Wait for the StickS3 to finish starting.
- Open the Wi-Fi settings on a phone or computer.
- Find and connect to:
StickS3 Voice Setup
- The temporary setup network currently has no password.
- The setup page should normally open automatically.
- Select your Wi-Fi network and enter its password.
If the setup page does not open automatically, visit:
http://192.168.4.1/
After the device successfully joins the home Wi-Fi network, it uses the configured network for normal operation.
StickS3 Voice Setup is a fallback provisioning network used when the device cannot connect to another Wi-Fi network. It is not the device’s normal everyday network.
- Make sure the StickS3 and Home Assistant can reach each other on the same network.
- In Home Assistant, open Settings → Devices & services.
- Look for a discovered ESPHome device.
- If it is discovered, follow the prompt to add it.
- If it is not discovered automatically, select Add integration → ESPHome.
- Enter the StickS3 hostname or IP address.
- Complete the ESPHome device setup.
- Select the Home Assistant Assist pipeline and language that the device should use.
The device hostname normally begins with sticks3-voice. A MAC-address suffix is enabled, so the complete hostname may be different for each device.
No Home Assistant API key belonging to the project author is embedded in the firmware.
After the device is connected to Home Assistant, start the voice assistant in either of these ways:
- Say the wake phrase:
Hey Jarvis - Press the blue front button
The display indicates the current state:
- Listening
- Thinking
- Speaking
The display also shows the speech transcript and the Home Assistant response. After the response is complete, the device automatically returns to the robot screen.
Advanced users can install ESPHome 2026.9.x and run the following command from the project directory:
esphome run sticks3-voice.yamlFor a compile-only build:
esphome compile sticks3-voice.yamlLocal build output is written to the .esphome build directory.
The first installation can be performed over USB. After the device joins the network, it can be adopted into a personal ESPHome Dashboard and maintained using OTA updates.
The included GitHub Actions workflow automatically performs the following steps after each push to the main branch:
- Installs ESPHome 2026.9.x.
- Compiles
sticks3-voice.yaml. - Locates the generated
firmware.factory.bin. - Builds the web installer.
- Deploys the installer and firmware to GitHub Pages.
The workflow can also be started manually from the repository’s Actions tab.
After every successful deployment, the installer remains available at the same address:
https://thenexthop2025.github.io/sticks3-voice/
Regular users do not need to operate GitHub or run the Actions workflow themselves.
| Path | Purpose |
|---|---|
sticks3-voice.yaml |
ESPHome firmware configuration |
docs/sticks3-hardware.png |
StickS3 hardware reference image used by both README files |
site/index.html |
Browser-based installer page |
site/manifest.json |
ESP Web Tools firmware manifest |
.github/workflows/pages.yml |
Automatic firmware build and GitHub Pages deployment |
README.md |
English documentation |
README_zh-CN.md |
Simplified Chinese documentation |
- If the battery icon disappears after entering download mode, disconnect USB, double-click the side button to power the device off completely, wait approximately ten seconds, and then press the button once to power it on.
