ESP32 remote speaker and WLED audio data source

Hey community,

I’m working on a project that implements RAOP (Airplay1) on an ESP32, based on the squeezelite-esp32 and shairport-sync projects. I specifically needed it to work with OwnTone, and the squeezelite implementation has a known issue.

So here’s ESP Air Sync - a project for any ESP32 with external PSRAM (tested with WROVER-B and S3-N16R8) and a PCM5102a DAC. It’s an Airplay receiver that plays in sync with other Shairport-Sync outputs. There’s a wifi AP when the device first boots, and a web ui for configuration and OTA updates.

The newest feature allows you to broadcast FFT data on your network, and configure a WLED instance in audio reactive mode. You have to visit Settings > Usermods, scroll to the bottom, and change sync mode to “Receieve” and it will work on the default port.

I’m hoping to add a snapcast client module to it as well, which should let it connect to Music Assistant easily. However, I’m new to snapcast, so it may take me a while to get it dialed in properly.

Release binaries are available for the two chip architectures I have here. I’m using the ESP-IDF VSCode extension, and version 5.5.1 of the IDF. Pretty happy with the performance and stability so far.

Feedback is welcome, I’d love to hear what you think.

Cheers,
James

1 Like