I'm looking to build a True Wireless Stereo speaker pair using ESP32 or ESP32-S3 (if necessary).
I've done a bit of research and I found that there's generally two kinds of configuration that TWS peripherals employ. The first configuration, which I'll refer to as "daisy chained" is where only one peripheral (master) communicates with the host device, and it relays the audio data to the other peripheral (slave). In the other configuration, which I'll refer to as "parallel", both peripherals receive the audio data directly from the host device. The details of the latter, whether there's a master/slave distinction, and whether both or only one of the peripherals replies to the host, isn't quite clear to me. What I suspect is that one peripheral acts as the master, and relays connection information to slave, which can then also receive the audio data packets from the host. Of course there's always auxiliary communication between the two peripherals to synchronize the audio playback.
I think the most straightforward approach to implement TWS on the ESP32 would be to use the daisy chained approach. Of course this would require the device to permit the simultaneous operation of the Bluetooth connection and the auxiliary connection, which I'm not sure the ESP32 or even ESP32-S3 can do, and if it can, does the auxiliary connection have enough left-over bandwidth to transmit the audio data?
The parallel approach, would require a level of API access to export connection information and allow applying that information on the slave peripheral to receive packets without replying to them. I'm not sure if the Bluetooth APIs permit that, or whether the hardware itself is even capable of doing that. This would also still require an auxiliary communication channel to relay that information to the slave.
If anyone has good insight into the ESP32's Bluetooth API, please let me know.
Implement Bluetooth TWS on ESP32 or ESP32-S3
Who is online
Users browsing this forum: No registered users and 116 guests