Skip to content

Add Waveshare ESP32-S3 Audio Board device page#1515

Open
jensenbox wants to merge 5 commits intoesphome:mainfrom
jensenbox:add-waveshare-esp32-s3-audio
Open

Add Waveshare ESP32-S3 Audio Board device page#1515
jensenbox wants to merge 5 commits intoesphome:mainfrom
jensenbox:add-waveshare-esp32-s3-audio

Conversation

@jensenbox
Copy link
Copy Markdown

Summary

  • Add device page for the Waveshare ESP32-S3 Audio Board
  • Includes hardware specs, complete GPIO pinout tables, I2C device addresses, TCA9555 I/O expander pin map, and a basic ESPHome configuration example with voice assistant (wake word, microphone, speaker, LED ring, buttons)
  • Links to Waveshare product page, wiki, and the ESPHome config project repo

Test plan

  • Verify the page renders correctly on the esphome-devices site
  • Confirm all links resolve (Waveshare product page, wiki, GitHub repo)
  • Validate the ESPHome YAML example compiles without errors

Add documentation for the Waveshare ESP32-S3 Audio Board including
hardware specs, complete GPIO pinout, I2C device table, TCA9555 I/O
expander pin map, and a basic ESPHome configuration example with
voice assistant support.
Copilot AI review requested due to automatic review settings April 5, 2026 06:05
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 5, 2026

Deploy Preview for esphome-devices ready!

Name Link
🔨 Latest commit 2b1d92e
🔍 Latest deploy log https://app.netlify.com/projects/esphome-devices/deploys/69d413a938457200084c529c
😎 Deploy Preview https://deploy-preview-1515--esphome-devices.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 75 (🔴 down 3 from production)
Accessibility: 97 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new ESPHome Devices documentation page for the Waveshare ESP32-S3 Audio Board, providing hardware details and a starter ESPHome YAML example oriented around voice-assistant use.

Changes:

  • Introduces a new device page with hardware specs, GPIO pinouts, and I2C address tables.
  • Adds a “Basic ESPHome Configuration” example covering I2C/I2S audio, IO expander inputs, LED ring, and voice assistant components.
  • Includes outbound links to the product page, wiki, and a reference configuration repository.

project-url: https://github.com/jensenbox/waveshare-esp32-s3-audio
---

![Waveshare ESP32-S3 Audio Board](https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/e/s/esp32-s3-audio-board-1.jpg "Waveshare ESP32-S3 Audio Board")
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The page uses a hotlinked product image from waveshare.com. This can break if the upstream URL changes and also adds an external dependency at render time. Consider downloading the image into this device folder (as suggested in src/docs/devices/adding-devices.mdx under “Images”) and referencing it via a relative path instead.

Suggested change
![Waveshare ESP32-S3 Audio Board](https://www.waveshare.com/media/catalog/product/cache/1/image/800x800/9df78eab33525d08d6e5fb8d27136e95/e/s/esp32-s3-audio-board-1.jpg "Waveshare ESP32-S3 Audio Board")
![Waveshare ESP32-S3 Audio Board](./esp32-s3-audio-board-1.jpg "Waveshare ESP32-S3 Audio Board")

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed — downloaded the image locally into the device folder.

vad:
model: github://esphome/micro-wake-word-models/models/v2/vad.json
models:
- model: okay_nabu
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

micro_wake_word.models is using the object form (- model: okay_nabu). In other device pages (e.g., src/docs/devices/M5Stack-Tab5/index.md) the built-in models are referenced using the shorthand scalar form (- okay_nabu). If okay_nabu is intended to be a built-in model name, the current structure may not validate/compile; consider switching to the shorthand form or pointing model: to the full github://... URL for the model JSON.

Suggested change
- model: okay_nabu
- okay_nabu

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed — switched to the shorthand scalar form.

Add use_wake_word: false, on_end/on_error/on_client_connected handlers
that properly restart micro_wake_word after speaker finishes, and
on_announcement handler on media_player to avoid audio conflicts.
Restarting the microphone (via wake word) in on_end causes an I2S bus
conflict because on_end fires before the speaker finishes playing TTS
audio. Moving the restart to on_tts_stream_end ensures we wait for the
speaker to finish before reclaiming the I2S bus for the microphone.

- on_end: now only turns off LEDs (no mic restart)
- on_tts_stream_end: waits for speaker, then restarts wake word
- Updated description to explain the pattern
Add restart_mww_fallback script, on_tts_stream_end, on_end, on_error,
and on_client_connected handlers to the basic config example. This
ensures the wake word engine restarts after every interaction, including
silent commands that produce no TTS response.
Download the Waveshare product image locally instead of hotlinking,
and simplify micro_wake_word model entry from `- model: okay_nabu`
to `- okay_nabu`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants