Voice Pyramid provides the hardware required for audio input, audio output, and voice applications. Use it with a compatible M5Stack controller.
| Item | Information |
|---|---|
| Product Name | Voice Pyramid |
| SKU | A167 |
| Main Functions | Hardware interfaces for audio input, audio output, and voice applications |
| Communication Interfaces | I2C, I2S |
| ESPHome Components | i2s_audio、es8311、es7210、microphone、speaker、pi4ioe5v6408 and aw87559, si5351, pyramidrgb, pyramidtouch (external components) |
| ESPHome Version | 2025.11.3 or later |
Some Voice Pyramid hardware drivers are provided by the M5Stack ESPHome external component repository:
external_components:
- source: github://m5stack/esphome-yaml/components
components: [aw87559, si5351, pyramidrgb, pyramidtouch]
refresh: 0s Configure the I2S audio bus to provide data channels for the microphone and speaker:
i2s_audio:
- id: i2s_audio_bus
i2s_lrclk_pin: GPIO8
i2s_bclk_pin: GPIO6 The PI4IOE5V6408 expander, AW87559 amplifier, and SI5351 clock generator use the base-side I2C bus. All three declarations are required to initialize the Voice Pyramid audio hardware:
pi4ioe5v6408:
- id: audio_io_expander
i2c_id: ext_bus
address: 0x43
aw87559:
id: audio_amp
i2c_id: ext_bus
address: 0x5B
si5351:
id: clock_gen
i2c_id: ext_bus
address: 0x60 audio_dac:
- platform: es8311
id: es8311_dac
i2c_id: ext_bus
bits_per_sample: 16bit
sample_rate: 16000 audio_adc:
- platform: es7210
id: es7210_adc
i2c_id: ext_bus
address: 0x40
bits_per_sample: 16bit
sample_rate: 16000 microphone:
- platform: i2s_audio
id: i2s_mic
sample_rate: 16000
i2s_din_pin: GPIO5
bits_per_sample: 16bit
adc_type: external
channel: stereo speaker:
- platform: i2s_audio
id: i2s_speaker
i2s_dout_pin: GPIO7
dac_type: external
bits_per_sample: 16bit
sample_rate: 16000
channel: mono
audio_dac: es8311_dac The pyramidtouch platform provides four touch channels and slide events. The basic configuration can create only the touch entities; add slide actions as needed in the application logic.
sensor:
- platform: pyramidtouch
i2c_id: ext_bus
address: 0x1A
update_interval: 50ms
touch1:
name: "Touch 1"
touch2:
name: "Touch 2"
touch3:
name: "Touch 3"
touch4:
name: "Touch 4" The two Voice Pyramid light strips are driven by the pyramidrgb hub and output platform. Map the red, green, and blue outputs for each strip separately, then combine them into an RGB light. The following example configures the first strip:
pyramidrgb:
- id: pyramid_rgb1
i2c_id: ext_bus
address: 0x1A
strip: 1
brightness: 80
output:
- platform: pyramidrgb
id: pyramid_rgb1_red
pyramidrgb_id: pyramid_rgb1
channel: 0
color: red
- platform: pyramidrgb
id: pyramid_rgb1_green
pyramidrgb_id: pyramid_rgb1
channel: 0
color: green
- platform: pyramidrgb
id: pyramid_rgb1_blue
pyramidrgb_id: pyramid_rgb1
channel: 0
color: blue
light:
- platform: rgb
name: "Pyramid RGB 1"
red: pyramid_rgb1_red
green: pyramid_rgb1_green
blue: pyramid_rgb1_blue