Can two bluetooth devices work simultaneously
Yes you can be connected to two or more bluetooth devices at the same time. On android, you can specify that your car be used for call audio, while your stereo be used for media audio. You accomplish this by going to the android device settings and adjusting the profiles used for each device.
iPadOS 13: iPad Pro 11-inch; iPad Pro 12.9-inch (second-generation or later); iPad Air (third-generation); iPad mini (fifth-generation). But I can have multiple Bluetooth devices paired to my iPhone.
Simultaneous Bluetooth and Bluetooth LE connections, is it possible?
I’m currently trying to develop a piece of software that would require to connect one bluetooth «classic» device and at least 2-3 Bluetooth Low Energy devices. And of course communicate with these devices, so it’s not enough to be able to pair the devices but also to connect and communicate with them.
I’m using Nexus 4 (Android 4.3) as a unit which connects to these Bluetooth and Bluetooth LE devices.
Is this possible or is there some kind of restriction that only one, or the other, kind of Bluetooth devices can be connected simultaneously?
I’m pretty sure there’s no restriction in the Bluetooth standard for having both regular and LE connections at the same time (on the host side).
However, I think there may be a restriction on having both a regular and a LE connection to the same device at the same time. There’s no reason to do that, though, as all the LE functionality is available through a regular Bluetooth connection on devices that have both abilities.
EDIT: You can restrict a device to not allow both LE and BR/EDR or you can also allow it. I’m not sure why you’d want to connect both on the same device, though.
How to make my two Bluetooth devices play sound, You can connect multiple Bluetooth devices to another Bluetooth device when there is a dual pairing option on one of the Bluetooth devices. It is possible if the single Bluetooth device acts as the Central (Master) but the other device act as Slave. That’s why you cannot connect multiple two Bluetooth …
How to connect multiple Bluetooth device at one time
You can connect your smartwatch, Bluetooth speaker, mobile etc. at one time. This video is mainly for Multiple Bluetooth devices with android. The setting is very simple and you do not need any
Robustly communicating with multiple BLE devices simultaneously on Android
Although undocumented, conventional wisdom using the Android BLE apis is that certain operations like reading / writing Characteristics & Descriptors should be done one at a time (although some devices are more lenient than others). However, I am not clear on whether this policy should apply only to a single connection, or across all active connections.
I’ve heard that its best to initiate connections to devices one at a time. That might be an example of operations (connect / connectGatt) which should be executed serially among all devices.
But for other operations, like reading and writing Characteristics, is it good enough if each connection executes operations serially, or do I need some global operation queue shared among all devices so that between all devices, only one operation is executing?
On Android, per BluetoothGatt object you should only execute one operation at a time (request mtu, discover services, read/write characteristic/descriptor) otherwise things will go wrong. You have to wait until the corresponding callback gets called until you can execute the next operation.
Regarding having pending connections to multiple devices at the same time, if you use autoConnect=true then there is no problem but if you use autoConnect=false then Android’s bluetooth stack will only attempt to connect to one device at a time, meaning it will enqueue the connection requests if there are more than one outstanding. There is one particular bug where it fails to cancel a pending connection that is still in the queue (when you call .disconnect() or .close()) however, that was recently fixed in Android.
Note that there is also a maximum number of connections/pending connections/gatt objects for which the behaviour is completely undocumented what happens when you exceed these limits. In the best cases you simply get a callback with error status but in some cases I’ve seen that the android bluetooth stack gets stuck in an endless loop where it in each iteration tells the bluetooth controller to connect to a device but the controller sends back the error code maximum connections reached.
While I cannot speak for the upper layer, I can relate to what will happen on lower hardware level and that might provide some insights for your design.
Which ever is the stack on upper layer doing, at the end the operation has to be handled by the transceiver chip.
BLE is operating over 40 channel band in which 3 are used for broadcast and other for data transmission. This is done to be able to have multitude of device communicating together limiting the collision by being on other frequency bands.
Those bands are selected based on the one with the lowest noise (or traffic).
The transceiver himself is only able to communicate (speak and listen) in one band at a time and has to switch between bands to reach other devices. This is done by very tight timing of the communication.
Another fact is that a wireless transceiver is basically some sort of half duplex communication with collision detection, it cannot send and listen at the same time, nor can two device emit at the same time on the same band. It is therefore by design (and laws of nature) serial or sequential.
If you implement some sort of operational queue or threaded implementation, at the end everything will have to be treated serially / sequentially by the transceiver.
If you access to it by different threads, the transceiver may have to jump all the time between channels or perhaps gets confused if it is not well handled on the upper level.
The only good reason I may see to treat that on thread would be that the processing time of the transceiver to be significantly lower than the upper stack you have to run, and you would take advantage of multi core processor.
But otherwise unless very specific software need or architecture, I do not believe you will have significant gain of having a different implementation than serial and I would also speak to the slaves one by one rather than all at the same time for the considerations explained above.
BLE is designed to be asynchronous and event driven. You can send the commands however you like and you will get the responses back in no particular order. If you send a command and expect the next packet to be the response, you’re going to get into trouble.
This being said, I’m not sure how the Android library is structured around this.
Bluetooth lowenergy — Robustly communicating with, Another fact is that a wireless transceiver is basically some sort of half duplex communication with collision detection, it cannot send and listen at the same time, nor can two device emit at the same time on the same band. It is therefore by design (and laws of nature) serial or sequential.
Multiple Bluetooth speakers simultaneously
I would like to pair two sticky dude Bluetooth speakers, at one time with my iPhone. With two of them at once it would be like stereo sound. Is there an app or something maybe?
You cannot use the same Bluetooth device profile with more than one deivce at the same time. You won’t be able to do what you want to do.
For a listing of all the different profiles, see this Wikipedia entry.
But I can have multiple Bluetooth devices paired to my iPhone. I have a keyobard, a headset and speakers.
Each uses a different profile. Your keyboard is considered an HID (Human Inteface Device) while your headset uses the HSP profile and your audio (speakers) likely uses the A2DP profile.
These profiles are 1-1. Meaning one profile to one device at a time.
If you want stereo get a stereo receiver that supports Bluetooth.
The new iOS (and ipadoS) audio-sharing feature uses Bluetooth to split audio between two different devices. Specific requirements change depending on which sharing method you use (more on that in a bit), but both users will need a pair of AirPods or Powerbeats Pro wireless earphones, as well as one of the following devices (running iOS or iPadOS 13):
- iOS 13: iPhone 8, 8 Plus, X, XR, XS, or XS Mini; or an iPod Touch (seventh-generation).
- iPadOS 13: iPad Pro 11-inch; iPad Pro 12.9-inch (second-generation or later); iPad Air (third-generation); iPad mini (fifth-generation).
The final iOS/iPadOS 13 release will also allow users to share audio by syncing up two sets of Bluetooth headphones to a single handset.
- Put both pairs of Bluetooth headphones into pairing mode (this varies by model—check your user manual or do a quick internet search if you don’t know how to do this).
- On the iOS/iPadOS 13 device you wish to use for playback, go to Settings > Bluetooth
- Tap the names of each unpaired device to connect both headphones.
- Both headphones will now play the same audio simultaneously, but volume and playback can only be controlled on the iPhone/iPad.
How many Bluetooth modules can work in one room?, 1 Answer Sorted by: 1 without them interfering with each other Two. Bluetooth devices change their communication frequency at about 1600 times per second. That is on purpose so that it is less of an issue when there is interference on some channels.