5605

The popular ESP32 controllers are used in thousands of IoT, Smart Home and other remote control projects out there. However, they have also a good I2S interface, which can output and input Audio digitally. Together with a I2S DAC, an I2S ADC and an SD card, many kinds of Audio projects will be possible. In this project we integrate all this, together with a nRF24 for data and audio transmission, on a solder-friendly PCB.

The popular ESP32 controllers are affordable, fast and easy to program, for example with the Arduino IDE. Equipped with Wi-Fi, they are used in thousands of IoT, Smart Home and other remote control projects out there, and we can hardly count the Elektor projects of that kind. However, ESP32 have also built-in a quite good I2S driver. Via this interface, you can output and input Audio streams digitally (see textbox). What you additionally need for playing Audio, is an I2S DAC which takes the I2S data from the ESP32 and transforming it into an analogue signal. For sampling audio, you need an Audio ADC with I2S interface. For this project, we put a powerful ESP32-S3 based module together with an ADC/DAC I2S module on a carrier PCB. We also integrated an option to put on a Nordic nRF24 wireless module, to transmit and receive digital audio streams with a very low latency. An SD card, several extension connectors and different power supply options complete the project.

First Milestone: In the Circuit Special 2025, you find the first article about the Board, where Saad Imtiaz and me are presenting the block diagram, circuit diagram, the PCB and a first demo software: playing WAV files from a SD card. Pls find the software below.
Here you can find the Design Files of the PCB: https://github.com/ElektorLabs/Audio-Transceiver

Second Milestone: a wireless transmission of audio between 2 boards, with 32 kHz/16 bit mono (so, for stereo, you would have to build 2 transmitters and 2 receivers). In the September/October 2025 edition of Elektor, find a comprehensive article about the history of that project, issues I had to solve or still have to solve, and the hardware and software for sender and receiver. The demo software is available below.

Third Milestone: a wireless transmission of audio, with 32 kHz/16 bit stereo. Additionally, I equipped the receiver board with 2 nRf24 modules, listening on 2 different radio channels. With 2 transmitters sending out the same stereo stream on different radio channels, you have double reliability. It works: The receiver switches seamlessly between the channels when packets are late/missing. I will report on that in the November/December 2025 edition.

Forth Milestone (in progress, but not sure yet if it will work properly): Instead of 32 kHz/16 bit stereo, we send out 48 kHz/16 bit mono, plus a timestamp for each of the packets transmitted. Independant receivers can then synchronize themselves to the transmitter, so they are also in sync amongst themselves. This would be a solution for stereo issues, when you have one receiver for the left channel and one receiver for the right channel. I made the experience that even jumps of 150 µs in the time can cause problems.