https://github.com/jeija/esp32-lyrat-passthrough
Example for ESP32-LyraT: Passthrough Digital Audio over I²S, Baseline for Realtime DSP Applications
https://github.com/jeija/esp32-lyrat-passthrough
dsp es8388 esp32 esp32-lyrat i2s
Last synced: 9 months ago
JSON representation
Example for ESP32-LyraT: Passthrough Digital Audio over I²S, Baseline for Realtime DSP Applications
- Host: GitHub
- URL: https://github.com/jeija/esp32-lyrat-passthrough
- Owner: Jeija
- License: mit
- Created: 2020-01-02T09:54:29.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-02T09:54:47.000Z (almost 6 years ago)
- Last Synced: 2025-03-16T21:11:23.538Z (9 months ago)
- Topics: dsp, es8388, esp32, esp32-lyrat, i2s
- Language: C
- Size: 3.91 KB
- Stars: 20
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ESP32-LyraT Audio Passthrough
### Short Description
This [esp-idf](https://github.com/espressif/esp-idf)-based application for the [ESP32-LyraT](https://www.espressif.com/en/products/hardware/esp32-lyrat) reads stereo samples from the board's analog "AUX IN" input jack and outputs them through the "PHONE JACK" analog output again. It does so without all the overhead that [esp-adf](https://github.com/espressif/esp-adf) brings at the cost of not being as portable as [esp-adf's pipeline_passthrough](https://github.com/espressif/esp-adf/tree/master/examples/audio_processing/pipeline_passthru).
By default, this application uses a word length of 16 bits (bits per channel) and a sample rate of 44100kHz. It first configures the ES8388 audio codec chip on the ESP32-LyraT board through I²C and then transfers digital audio samples bidirectionally over I²S.
This project can be used as a starting point for implementing **digital filters** such as FIR / IIR / biquad filters and other digital signal processing (DSP) applications on the ESP32 plattform. The ESP32's Tensilica Xtensa processor architecture is well-know for its DSP capabilities. For instance, FIR filters can be efficiently implemented on the ESP32 thanks to support for special 16-bit multiply-accumulate instructions with optional parallel loading (**MAC16** option for Tensilica Xtensa LX6).. See [esp-dsp](https://github.com/espressif/esp-dsp) and the Xtensa Instruction Set Architecture (ISA) Reference Manual for more information.
### Build and Flash
Make sure to have a recent [esp-idf](https://github.com/espressif/esp-idf) version with support for cmake-based projects installed. Then compile and flash this project as usual using the following steps:
* `idf.py all` to compile everything
* Put your ESP32-LyraT into download mode: Press and hold `Boot`, press and release `RST`, release `Boot`
* `idf.py -p /dev/ttyUSBX flash`to flash everything
* Reset your ESP32-LyraT by pressing `RST`
### License
This project is licensed under the MIT license. See `LICENSE` for details.