I'm just at the beginning of a new (my 2nd) project and wanted to ask for some design advice.
I'd like to build a "bluetooth splitter" where I can stream music from a smart phone to a number (2-4) of bluetooth speakers simultaneously.
The board would connect to each of the speakers individually and also to the smart phone. Once connected, the streamed music from the smartphone connection would be sent to each speaker connection.
Is this possible with the Arduino architecture? Which BT modules would I need? Which boards would be needed- Nano....Mega (maybe something small for each speaker and a larger one to handle multiple BT modules?) Any software or BT connection issues I need to be aware of?
Is this possible with the Arduino architecture?
I don't think this is possible using any architecture. I don't think the Bluetooth protocol allows this.
I suppose it could be possible to build a device that acts as both a BT slave and a BT master. It would be a BT slave to the smartphone and a BT master to each of the BT speakers.
One problem you will likely run into is how to synchronize the audio on all of the BT speakers as they will probably all have different latencies from each other (you would hear "echoes" between speakers). My car's BT audio connection with my phone, for example, has a latency of about 2-3 seconds. The BT splitter device will have to have a way to delay the audio that it sends to each BT speaker by different amounts to compensate for the different latencies. This requires keeping a buffer of audio big enough for the speaker with the shortest latency (so it would have the longest delay to compensate). You would need to have a buffer big enough for 192000 bytes per second of delay, assuming stereo, 16-bit, 48kHz audio.
I doubt this would be easy or even possible with any Arduino.