substitutions: name: "audio-test" friendly_name: "Audio Test" # AP fallback password (8+ chars) ap_password: "SYOMYqzKWbfl" esphome: name: ${name} friendly_name: ${friendly_name} on_boot: priority: 600.0 then: # PCM5102 SCK pin is tied to GND on the breakout; this GPIO is also # soldered to that node, so we hold it LOW to avoid driving against GND. - output.turn_off: sck_pin_low esp32: board: esp32-s3-devkitc-1 framework: type: esp-idf psram: mode: quad speed: 80MHz logger: api: encryption: key: !secret api_encryption_key ota: - platform: esphome password: !secret ota_password wifi: ssid: !secret wifi_ssid password: !secret wifi_password power_save_mode: none ap: ssid: "${friendly_name} Fallback" password: ${ap_password} captive_portal: http_request: timeout: 10s verify_ssl: false output: - platform: gpio pin: GPIO15 id: sck_pin_low i2s_audio: id: i2s_bus i2s_lrclk_pin: GPIO18 # A0 -> LCK i2s_bclk_pin: GPIO16 # A2 -> BCK speaker: - platform: i2s_audio id: pcm5102_dac i2s_audio_id: i2s_bus i2s_dout_pin: GPIO17 # A1 -> DIN dac_type: external sample_rate: 48000 bits_per_sample: 16bit channel: stereo timeout: never buffer_duration: 100ms - platform: mixer id: audio_mixer output_speaker: pcm5102_dac num_channels: 2 task_stack_in_psram: true source_speakers: - id: announcement_mixer_input timeout: never - id: media_mixer_input timeout: never - platform: resampler id: media_resampler output_speaker: media_mixer_input sample_rate: 48000 bits_per_sample: 16 - platform: resampler id: announcement_resampler output_speaker: announcement_mixer_input sample_rate: 48000 bits_per_sample: 16 sendspin: id: sendspin_hub task_stack_in_psram: false media_source: - platform: http_request id: http_media_source buffer_size: 500000 - platform: http_request id: http_announcement_source buffer_size: 250000 - platform: sendspin id: sendspin_media_source media_player: - platform: sendspin id: sendspin_group_media_player - platform: speaker_source id: external_media_player name: "Media Player" media_pipeline: format: FLAC num_channels: 2 sample_rate: 48000 speaker: media_resampler sources: - http_media_source - sendspin_media_source announcement_pipeline: format: FLAC num_channels: 1 sample_rate: 48000 speaker: announcement_resampler sources: - http_announcement_source on_mute: - mixer_speaker.apply_ducking: id: media_mixer_input decibel_reduction: 51 duration: 0.4s - mixer_speaker.apply_ducking: id: announcement_mixer_input decibel_reduction: 51 duration: 0.4s on_unmute: - mixer_speaker.apply_ducking: id: media_mixer_input decibel_reduction: 0 duration: 0.4s - mixer_speaker.apply_ducking: id: announcement_mixer_input decibel_reduction: 0 duration: 0.4s external_components: - source: # https://github.com/esphome/esphome/pull/14933 type: git url: https://github.com/kahrendt/esphome ref: 7a6cf5c8472b7e2fa18ee0fc314f66a80d249e32 components: [const, media_source, sendspin] - source: # https://github.com/esphome/esphome/pull/12429 type: git url: https://github.com/esphome/esphome ref: ff8ce89556748509d7ee8724e12d9d43d3c8c1e8 refresh: 0s components: [http_request]