[Bug] Waveshare Touch 1.54: AEC/VAD false triggers and breaks playback when master volume is reduced
Before submitting
- I have tested the latest applicable firmware and searched for an existing issue reporting the same problem.
Device or development board
Waveshare ESP32-S3-Touch-LCD-1.54 (Molded cube, Product Link: https://waveshare.com)
Firmware version
v2.5.0
Firmware source or filename
Built via official Xiaozhi AI Control Panel (Firmware Builder web console)
Problem and reproduction steps
Problem Description
There is a critical balance issue with the Acoustic Echo Cancellation (AEC) / Voice Activity Detection (VAD) loop on Waveshare ESP32-S3-Touch-LCD-1.54.
When active echo cancellation is enabled in the firmware builder, the device constantly interrupts its own text-to-speech output. The cube stops talking mid-sentence because it detects its own speaker output as user interruption.
Crucial Symptom & Reproduction Steps
- Enable Echo Cancellation (AEC) in the Xiaozhi Firmware Builder.
- Ask the cube to say a long sentence — it will often stop talking mid-sentence because it "hears itself".
- Now, ask the cube to lower its master playback volume ("make the speaker quieter").
- Try again — the issue gets significantly worse. The cube starts breaking and interrupting its monologue much more frequently at lower volumes.
This behavior points directly to a mismatch between the digital attenuation of the audio output and the loopback reference signal fed into the AEC algorithm. When the volume drops, the internal I2S reference track doesn't scale properly or track the dynamic changes of the ES8311 codec output, causing the AEC to over-correct, distort the mic input, and falsely trigger the VAD.
Expected result
The AEC reference signal should dynamically adapt and perfectly scale alongside the speaker's master volume level, ensuring that the cube can converse smoothly at any volume setting without self-interrupting.
Hardware Details
- Board: Waveshare ESP32-S3-Touch-LCD-1.54 (Molded cube)
- Product Link: https://www.waveshare.com/esp32-s3-lcd-1.54.htm?srsltid=AfmBOoqiq1bo_8HdtS8j7ymNDcoHEV1y84ztq7eMCWJU6Bvb-YbPXnbm
- Hardware Docs: https://www.waveshare.com/esp32-s3-lcd-1.54.htm?srsltid=AfmBOoqiq1bo_8HdtS8j7ymNDcoHEV1y84ztq7eMCWJU6Bvb-YbPXnbm
- Audio Hardware: Onboard ES8311 (DAC/Codec) + ES7210 (ADC for echo cancellation)
Logs or other evidence
No serial logs available at the moment, but the issue is easily reproducible on any stock Waveshare 1.54 cube with AEC turned on.Optional photos, videos, or log files
No response
Source: 78/xiaozhi-esp32