zephyr/samples/drivers/i2s/echo
Sylvio Alves 72b0f08d0b samples: i2s echo: guard audio_codec configuration
Ensure the I2S echo sample only configures the audio_codec driver
when the `audio_codec` node is defined and enabled in the devicetree.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-07-01 10:15:14 -05:00
..
boards samples: driver: i2s: Support echo and codec on RT1060 EVKC 2025-06-25 14:05:47 +02:00
dts/bindings
src samples: i2s echo: guard audio_codec configuration 2025-07-01 10:15:14 -05:00
CMakeLists.txt
Kconfig samples: drivers: i2s: echo: add options to control sw0/sw1 2024-12-18 18:15:15 +01:00
prj.conf
README.rst doc: boards: nordic: Adopt zephyr:board directives 2025-03-31 22:00:02 +02:00
sample.yaml hwmv2: Introduce Hardware model version 2 and convert devices 2024-03-02 16:56:33 -05:00

.. zephyr:code-sample:: i2s-echo
   :name: I2S echo
   :relevant-api: i2s_interface

   Process an audio stream to add an echo effect.

Overview
********

This sample demonstrates how to use an I2S driver in a simple processing of
an audio stream. It configures and starts both the RX and TX streams and then
mixes the original signal with its delayed form that is buffered, providing
a simple echo effect.

Requirements
************

The sample uses the WM8731 audio CODEC that can be found, for example,
on the Audio Codec Shield, but it can be easily adapted to use other
CODECs. The I2S device to be used by the sample is specified by defining
a devicetree node label named ``i2s_rxtx`` or separate node labels ``i2s_rx``
and ``i2s_tx`` if separate I2S devices are to be used for the RX and TX
streams.

This sample has been tested on :zephyr:board:`nrf52840dk` (nrf52840dk/nrf52840)
and :zephyr:board:`nrf5340dk` (nrf5340dk/nrf5340/cpuapp), using the Audio Codec
Shield, and provides overlay files for both of these boards.

More information about the used shield and the CODEC itself can be found here:

- `Audio Codec Shield`_
- `WM8731`_

Building and Running
********************

The code can be found in :zephyr_file:`samples/drivers/i2s/echo`.

To build and flash the application:

.. zephyr-app-commands::
   :zephyr-app: samples/drivers/i2s/echo
   :board: nrf52840dk/nrf52840
   :goals: build flash
   :compact:

Press Button 1 to toggle the echo effect and Button 2 to stop the streams.

.. _Audio Codec Shield: http://wiki.openmusiclabs.com/wiki/AudioCodecShield
.. _WM8731: https://www.cirrus.com/products/wm8731/