Wireless audio multipoint Solution

Hi there

I've been exploring ways to connect one device to multiple speakers and have encountered some challenges in my research. It seems I might not be using the correct search terms.

Specifically, I want to establish a connection where a device connects to a primary or 'host' speaker, and then multiple 'slave' speakers can be linked to the host.

While I've noticed some other companies implementing this, it's not widely discussed. I've come across terms like 'multipoint' and 'mesh network,' but I'm uncertain if they are relevant in the context of audio technology.

Additionally, I'm interested in potential DSP features in the future, though that's not my immediate focus.

Could you please guide me on where to start my research for audio connectivity solutions?

Thank you for your assistance.
- Mathias / Vikson

Parents
  • Hello Mathias,

    You've come to the right place! :) 
    The technology you are looking for here is LE Audio, which is a new addition to the BLE specification which is the new standard for wireless audio playback.
    With the new standard there are two ways to achieve what you describe, depending on your requirements - you could either use Connected Isochronous Channels (CIS) to form a coordinated set of devices, or you could use the all new Broadcast functionality which will let you broadcast (one-directional) to an unlimited number of devices in the vicinity.
    What sort of Audio requirements does your application have (audio quality, battery power, latency), and what else than streaming and receiving audio will the devices be doing?

    As a starting point you can take a look at these two articles:

    LE Audio | BluetoothRegistered Technology Website

    LE Audio Through A Technical Lens | BluetoothRegistered Technology Website
    It is a lot to take in at first, so please do not hesitate to ask if you should have any questions or if anything's unclear! :) 

    Best regards,
    Karl

  • Hi Karl,
    Thank you very much for your quick reply.
    Regarding requirements, audio quality is, of course, important. I'm not set on the sample rates and clock frequency just yet, as I'm not quite sure about the pros and cons of better or worse audio quality, aside from power draw.
    The system will run on I2S, possibly with an analog AUX input/output, but that's not a strict requirement. The speakers will be battery-powered, and I plan to use a 50-60Wh battery, so I'm not overly concerned about the power usage of the Bluetooth component. Lower power consumption is, of course, desirable, but I've noticed that most Bluetooth solutions these days are quite energy-efficient, so it's not my top priority.

    As for latency, that's a crucial aspect. I understand that there will always be some latency, but I'm hoping for synchronized audio and a low enough latency that users won't notice a delay when connecting the speaker to e.g their TV.

    At this stage, I don't have the budget for a customized app to control features like EQ, bass, treble, etc., but I'm confident that such features could be implemented in the future.
    Therefore, my current requirements are centered around the ability to stream audio to the speaker(s) with decent audio quality, reasonable power consumption, and low enough latency to avoid any noticeable delays when watching videos.

    While I'd like to avoid needing a separate app, I still want some control over how speakers connect. I've been thinking about a simple solution: using 'channels,' like numbers from 0 to 100. This way, I can assign specific speakers to different channels. It means I can create separate groups of speakers in one area without them interfering with each other. This gives users a way to customize their audio setup without needing a complex app. Therefor im guessing broadcast will not be an option? the speakers will be in mono. I was hoping to be able to connect 10+ speakers together to one but im not sure if that will be possible when not using broadcast? 

    Last but least i was hoping i could make a small usb dongle to be able to accept sound input and transmit/broadcast it to the assigned "channels" 0-100. 


    Thanks alot again :)
    Mathias 

  • Hello,

    Mathias Vikson said:
    Thank you very much for your quick reply.

    No problem at all, Mathias - I am happy to help! :) 

    Mathias Vikson said:
    I'm not set on the sample rates and clock frequency just yet, as I'm not quite sure about the pros and cons of better or worse audio quality, aside from power draw.
    The system will run on I2S, possibly with an analog AUX input/output, but that's not a strict requirement. The speakers will be battery-powered, and I plan to use a 50-60Wh battery, so I'm not overly concerned about the power usage of the Bluetooth component. Lower power consumption is, of course, desirable, but I've noticed that most Bluetooth solutions these days are quite energy-efficient, so it's not my top priority.

    No worries about the quality configurations - you can test this out and get a better feel for it before deciding. Have you got a hold of some nRF5340 Audio DKs yet? These would let you start testing this application very quickly :) 
    You are also completely correct that BLE communication these days are very efficient - the upside to this with the LE Audio specification is that you can choose to expend more power to increase the audio quality, or to lower the latency, and even then you will see a significant reduction in power consumption compared to Bluetooth Classic.

    Mathias Vikson said:
    As for latency, that's a crucial aspect. I understand that there will always be some latency, but I'm hoping for synchronized audio and a low enough latency that users won't notice a delay when connecting the speaker to e.g their TV.

    Are you here talking about end-to-end latency (i.e the time between the audio on the TV and the playback of the speaker), or are you talking about inter-device latency (i.e that one or more of the speakers may play the received audio out of synch with the other speakers)?
    In case of the former our current nRF5340 LE Audio reference application has an end-to-end latency between 28-35 µs depending on optimization, which makes it imperceptible when you are listening to somebody speaking in a microphone some 1-2m away.
    In case of the latter you will not need to worry about this since synchronized playback is an inherent feature of the new LE Audio standard, and so while the speakers may receive the audio data at different times they will still play it back synchronized.

    Mathias Vikson said:
    At this stage, I don't have the budget for a customized app to control features like EQ, bass, treble, etc., but I'm confident that such features could be implemented in the future.
    Therefore, my current requirements are centered around the ability to stream audio to the speaker(s) with decent audio quality, reasonable power consumption, and low enough latency to avoid any noticeable delays when watching videos.

    You can quickly give this a try for yourself with the nRF5340 Audio DKs mentioned earlier - in fact, you will barely have to make any modifications to the reference application at all :) 
    Please keep in mind that the LE Audio reference application is not power optimized in itself (since this is very much dependent on the requirements and constraints of the application being developed).

    Mathias Vikson said:
    While I'd like to avoid needing a separate app, I still want some control over how speakers connect. I've been thinking about a simple solution: using 'channels,' like numbers from 0 to 100. This way, I can assign specific speakers to different channels. It means I can create separate groups of speakers in one area without them interfering with each other. This gives users a way to customize their audio setup without needing a complex app. Therefor im guessing broadcast will not be an option? the speakers will be in mono. I was hoping to be able to connect 10+ speakers together to one but im not sure if that will be possible when not using broadcast? 

    How big of an area are you thinking here, and how many listeners will it be?
    Will the speakers provide any input back to the source of the stream, or will they simply play what they receive?
    I do think that broadcasts would be a good fit for your description here, since you can just name them different names, and have them exist in the same space. For instance, you could have multiple different language streams in a single room, so that people can tune into the broadcast with the language which they are interested in.
    Would this work for your application, or is there some other consideration I am not covering here?

    Mathias Vikson said:
    Last but least i was hoping i could make a small usb dongle to be able to accept sound input and transmit/broadcast it to the assigned "channels" 0-100.

    That will definitely be possible, yes :) 

    Best regards,
    Karl

  • Hi Karl, Thanks for the answer

    Have you got a hold of some nRF5340 Audio DKs yet?

    No, I haven't. I'm not determined on which Bluetooth chip to choose yet, but it seems like the nRF5340 fits my needs, and the support seems to be great too. The price is another thing, though. My company is in the startup phase, so the budget is quite limited. I'm funding the project out of my own pocket, but I might have to invest in it. Is there no other options? Without knowing the full capability of the nRF5340 audio, my impression is that it is capable of doing a lot more than what I need, maybe im wrong here. I was thinking about if there was a cheaper/simpler solution that would still meet my requirements? Or is the nRF5340 the best choice? - here im thinking about the chip itself and not the development kit - thats hopefully just a one time buy :)

    The reason I'm asking is that I don't want to pay a higer than needed price for a chip if it's capable of doing a lot of unnecessary things I don't need, and if I can make do with something cheaper.

    our current nRF5340 LE Audio reference application has an end-to-end latency between 28-35 µs

    Well latency will not be a problem then it seems like. I throught we were close to talking miliseconds :) It sounds promising so far.

    How big of an area are you thinking here, and how many listeners will it be?

    Area-wise, I'm hoping to fill up a larger room with multiple speakers, for instance, a DJ being able to cover a banquet hall and connect wirelessly to a phone or DJ controller. So maybe up to 20 meters from the transmitter, and if an external antenna could extend it further, that would be perfect. As for the number of listeners, if you mean how many connected speakers can "listen" to the broadcast, I would like to be able to connect up to 10 together. My plan is to create a full wireless stereo setup, including subwoofers, a pair of satellite speakers, and possibly multiple pairs connected together. 

    I do think that broadcasts would be a good fit for your description here, since you can just name them different names, and have them exist in the same space. For instance, you could have multiple different language streams in a single room, so that people can tune into the broadcast with the language which they are interested in.
    Would this work for your application, or is there some other consideration I am not covering here?

    I do think that would work. To clarify for my application, I simply want to be able to set up a wireless system in one room and then have a wireless system in the room next door without interference or being able to choose what should play where. Would it be possible to have the speakers automatically connect back to the last paired device or broadcast if they somehow lose their connection, like if a speaker runs low on battery and disconnects, but then automatically reconnects when a new battery is installed?

    Thank you, Mathias

  • Hello Mathias,

    Mathias Vikson said:

    I was thinking about if there was a cheaper/simpler solution that would still meet my requirements? Or is the nRF5340 the best choice? - here im thinking about the chip itself and not the development kit - thats hopefully just a one time buy :)

    The reason I'm asking is that I don't want to pay a higer than needed price for a chip if it's capable of doing a lot of unnecessary things I don't need, and if I can make do with something cheaper.

    I of course understand this concern, but I unfortunately do not have much information on price points specifically - the possibilities here would be best to discuss with someone from the sales team. Please let me know if you would like me to have one of them reach out to you to discuss the requirements of your application and which chip might be best for this purpose.

    I should also mention that the nRF5340 is the only SoC that we support LE Audio development on directly, but I do know of third-parties that have made a Bluetooth stack for LE Audio that runs on the nRF52840 as well. I dont have much knowledge of this either, unfortunately, since it is not a Nordic product, but you could check with Packetcraft about this to see if it could be an option. To my knowledge the nRF5340 is more expensive then the nRF52840 at least, which might bring down the costs a little, but then again you would also have to license the stack from Packetcraft and lose out on our support during the firmware development.

    I can only speak to the technical aspects, but for what it is worth I am personally not aware of any other LE Audio development platform that is as mature as Nordics, but you could definitively argue that my perspective is biased here :)

    Mathias Vikson said:
    Well latency will not be a problem then it seems like. I throught we were close to talking miliseconds :) It sounds promising so far.

    Yes, the new standard opens a lot of doors and use-cases that previously was not possible with the old standard, especially in terms of latency, power consumption, and audio quality.

    Mathias Vikson said:
    Area-wise, I'm hoping to fill up a larger room with multiple speakers, for instance, a DJ being able to cover a banquet hall and connect wirelessly to a phone or DJ controller. So maybe up to 20 meters from the transmitter, and if an external antenna could extend it further, that would be perfect. As for the number of listeners, if you mean how many connected speakers can "listen" to the broadcast, I would like to be able to connect up to 10 together. My plan is to create a full wireless stereo setup, including subwoofers, a pair of satellite speakers, and possibly multiple pairs connected together. 

    20 meters should definitely be do-able, especially so if you are able to get the antenna a little higher than most peoples heads (I imagine such a hall to be full of people/guests that would block RF reception). Alternatively you can attach a FEM like the nRF21540 to amplify your signal, which will give you much bigger range.
    If you go for using a broadcast the audio will be available to any number of broadcast receivers in the vicinity.

    Do you intend for any of these speakers to also communicate something at all back to the DJ? Such as in the case of a remote control, or a microphone to be mixed in with the streams, or similar? In this case you might have to make use of a regular BLE connection alongside the broadcast, or look into the possibility of using CIS(connected) instead of BIS (broadcast).

    Mathias Vikson said:
    To clarify for my application, I simply want to be able to set up a wireless system in one room and then have a wireless system in the room next door without interference or being able to choose what should play where. Would it be possible to have the speakers automatically connect back to the last paired device or broadcast if they somehow lose their connection, like if a speaker runs low on battery and disconnects, but then automatically reconnects when a new battery is installed?

    The way broadcasts work is that there is no connection between the two devices - the initiator (broadcaster) will advertise the music streams, and it is then up to each receiver to 'tune into' each broadcast. This way, so long as the speaker is able to pick up the broadcast it will be able to play the music. However, this also mean that there is no communication from the acceptor (speaker) to the initiator in this case, so the initiator will not know if the acceptor stops playing or runs out of power.
    But to answer your question: Yes, so long as the broadcast name matches what the acceptor is looking for when it powers up again it will be able to start playing the music immediately, without any need to reconnect or negotiate a connection.

    Additionally, If you would like to limit the reach of the audio to a particular set of devices (to avoid anyone with a LE Audio Auracast headset within range to listen into the broadcast) you can also encrypt it so that each speaker will need a code in order to listen in (which you can share in the specific room, or similar).

    Best regards,
    Karl

Reply
  • Hello Mathias,

    Mathias Vikson said:

    I was thinking about if there was a cheaper/simpler solution that would still meet my requirements? Or is the nRF5340 the best choice? - here im thinking about the chip itself and not the development kit - thats hopefully just a one time buy :)

    The reason I'm asking is that I don't want to pay a higer than needed price for a chip if it's capable of doing a lot of unnecessary things I don't need, and if I can make do with something cheaper.

    I of course understand this concern, but I unfortunately do not have much information on price points specifically - the possibilities here would be best to discuss with someone from the sales team. Please let me know if you would like me to have one of them reach out to you to discuss the requirements of your application and which chip might be best for this purpose.

    I should also mention that the nRF5340 is the only SoC that we support LE Audio development on directly, but I do know of third-parties that have made a Bluetooth stack for LE Audio that runs on the nRF52840 as well. I dont have much knowledge of this either, unfortunately, since it is not a Nordic product, but you could check with Packetcraft about this to see if it could be an option. To my knowledge the nRF5340 is more expensive then the nRF52840 at least, which might bring down the costs a little, but then again you would also have to license the stack from Packetcraft and lose out on our support during the firmware development.

    I can only speak to the technical aspects, but for what it is worth I am personally not aware of any other LE Audio development platform that is as mature as Nordics, but you could definitively argue that my perspective is biased here :)

    Mathias Vikson said:
    Well latency will not be a problem then it seems like. I throught we were close to talking miliseconds :) It sounds promising so far.

    Yes, the new standard opens a lot of doors and use-cases that previously was not possible with the old standard, especially in terms of latency, power consumption, and audio quality.

    Mathias Vikson said:
    Area-wise, I'm hoping to fill up a larger room with multiple speakers, for instance, a DJ being able to cover a banquet hall and connect wirelessly to a phone or DJ controller. So maybe up to 20 meters from the transmitter, and if an external antenna could extend it further, that would be perfect. As for the number of listeners, if you mean how many connected speakers can "listen" to the broadcast, I would like to be able to connect up to 10 together. My plan is to create a full wireless stereo setup, including subwoofers, a pair of satellite speakers, and possibly multiple pairs connected together. 

    20 meters should definitely be do-able, especially so if you are able to get the antenna a little higher than most peoples heads (I imagine such a hall to be full of people/guests that would block RF reception). Alternatively you can attach a FEM like the nRF21540 to amplify your signal, which will give you much bigger range.
    If you go for using a broadcast the audio will be available to any number of broadcast receivers in the vicinity.

    Do you intend for any of these speakers to also communicate something at all back to the DJ? Such as in the case of a remote control, or a microphone to be mixed in with the streams, or similar? In this case you might have to make use of a regular BLE connection alongside the broadcast, or look into the possibility of using CIS(connected) instead of BIS (broadcast).

    Mathias Vikson said:
    To clarify for my application, I simply want to be able to set up a wireless system in one room and then have a wireless system in the room next door without interference or being able to choose what should play where. Would it be possible to have the speakers automatically connect back to the last paired device or broadcast if they somehow lose their connection, like if a speaker runs low on battery and disconnects, but then automatically reconnects when a new battery is installed?

    The way broadcasts work is that there is no connection between the two devices - the initiator (broadcaster) will advertise the music streams, and it is then up to each receiver to 'tune into' each broadcast. This way, so long as the speaker is able to pick up the broadcast it will be able to play the music. However, this also mean that there is no communication from the acceptor (speaker) to the initiator in this case, so the initiator will not know if the acceptor stops playing or runs out of power.
    But to answer your question: Yes, so long as the broadcast name matches what the acceptor is looking for when it powers up again it will be able to start playing the music immediately, without any need to reconnect or negotiate a connection.

    Additionally, If you would like to limit the reach of the audio to a particular set of devices (to avoid anyone with a LE Audio Auracast headset within range to listen into the broadcast) you can also encrypt it so that each speaker will need a code in order to listen in (which you can share in the specific room, or similar).

    Best regards,
    Karl

Children
No Data
Related