Bluetooth parallel connection - bluetooth

I have few question regarding the Bluetooth devices connectivity with one sender Bluetooth device and many receiver Bluetooth device
can one sender sends same files to many.
can one sender make many connection available at same time(not sending anything, just have connection availability).
with Bluetooth device, can we make both way communication(not one to one, like group chat).
Both sender and receiver can exchange the data at same time.IS it Possible?
thanks for help in advance.

can one sender sends same files to many.
Yes and No, Bluetooth does have capability to broadcast but most platforms does not provide Apis for it.
One way to do it is for your application to repeat the same file fragment to all devices one after the other.
can one sender make many connection available at same time(not sending anything, just have connection availability).
Yes
with Bluetooth device, can we make both way communication(not one to one, like group chat).
Both sender and receiver can exchange the data at same time.IS it Possible?
Yes sure very much - Bluetooth I general can - how to do it for specific platforms and Bluetooth version is dependent on that particular platform and version

Related

How to support multiple simultaneous BLE connections with Notify support with Bluez as peripheral

I would like to support multiple (at least 2) simultaneous BLE connections to Bluez as peripheral with one adapter. I believe it is technically possible since many embedded platforms support this (Silabs, Nordic).
Currently, with the first connection GATT advertisement stops altogether until the connection is dropped again. Is there some way to keep advertising?
Furthermore, if this is even possible, I currently don't see a way to use attribute notifications to a specific connection. One uses the dbus PropertyChanged method for emitting characteristic value notifications, though it seems as if there is no way to specify to which remote devices to send it to. Is there a way to notify only a specific connection of Value changes?
I can do the above on a Silabs EFR32 without issue but would like to get the same on embedded Linux.
Thank you kindly

Bluetooth Connection and Fileshaing

Is it possible to track bluetooth connections that are connected to eachother? and if yes, is it possible to see that they're sharing files/sending data with bluetooth?
It is for a personal chat program, that me and my friends are working on in C#.
The Bluetooth devices and related status can be found using APIs of Windows.Devices.Enumeration namespace that are available for C#. They shall help in getting general information about devices connected to or discoverable by the system. It shall help in finding devices internally connected to the system, externally connected, or nearby over wireless or networking protocols and get information about them. The DeviceWatcher in turn shall help in finding and receiving updates for devices (like getting notifications when devices get added, connected, disconnected, change online status, or change other properties.)

What does bluetooth pairing do technically?

From the Bluetooth client example at http://people.csail.mit.edu/albert/bluez-intro/x502.html, it seems I can simply connect to a remote Bluetooth socket as long as I have the Bluetooth MAC address of the device.
If I can simply connect to a remote Bluetooth device, I am wondering what exactly does Bluetooth pairing do. When is pairing really needed?
Update:
From How does Bluetooth pairing work?, it appears the final result of pairing is that an encryption key gets stored on both sides. I assume, when you open a remote socket connection, the call is intercepted by the local bluetooth daemon. In turn, the daemon encrypts the data and sends to the remote device. The daemon on the remote device decrypts the data and sends to the remote client application:
Device1Client-->Device1Daemon-->Device2Daemon-->Device2Client
Is this assumption correct?
Yes, your assumption is partially correct. Encryption is one of the uses of Passkey.
Bluetooth pairing is necessary whenever two Bluetooth devices connect to each other to share resources. A trusted relationship is established between the devices using a numerical password, commonly referred to as a passkey. Depending on how often one Bluetooth device connects to another, the user might opt to have the passkey saved for future connection attempts or prompt to enter the passkey each time the devices request communication with each other.
This is already explained on Stack Overflow please check- How does Bluetooth pairing work?
In the below answer, I will try to explain what is not mentioned in the above link or answers.
In Pairing process, when the initiating device sends a ‘Pairing Request” to the other device. The two devices then exchange I/O capabilities, authentication requirements, maximum link key size, and bonding requirements. Basically, all this phase consists of, is the two devices exchanging their capabilities and determining how they are going to go about setting up a secure connection. It is also important to note that all data being exchanged during this phase is unencrypted.
Now the question is why this Phase is needed?
As mentioned- “two devices exchanging their capabilities.” The pairing should happen between compatible device there is no point in Pairing you Mouse with a Headphone as Mouse capabilities are different than Headphone.
One more use of Pairing is – “determining how they are going to go about setting up a secure connection.” Here the frequency hopping pattern is determined for two reasons-
To avoid Middle Man Attack.
To avoid Collision
Bluetooth uses 79 radio frequency channels in the band starting at 2402 MHz and continuing every 1 MHz. It is these frequency channels that Bluetooth technology is "hopping" over. The signal switches carrier channels rapidly, at a rate of 1600 hops per second, over a determined pattern of channels. The hopping pattern is determined well during the pairing process so that no other device will know in which band of the frequency the data is being transferred at an instance. Its rare case that frequency hopping pattern can be the same for a couple of devices communicating hence collision is avoided.
Note: If any third device is able to capture the passkey then it can replicate the whole communication pattern and capture the data being transferred. This is how the BT Sniffers work.
I am not able to cover all the details as per SIG specs. I hope the above answers give you a clearer picture of the need for the Pairing process. Feel free to point out, if you want me to explain any specific point in detail.
Below are the reference Links for more information-
http://large.stanford.edu/courses/2012/ph250/roth1/
https://www.bluetooth.com/blog/bluetooth-pairing-part-1-pairing-feature-exchange/

Can a master Bluetooth device use more than one antenna to connect to slaves?

I'm not sure how to correctly phrase this question, as I'm just starting to learn Bluetooth and its ways, but... imagine holding in an iPhone or Android phone in your hand in a large building with many rooms. You pair your device with a Bluetooth master device via an antenna in that room. Then once you move from room to room, your device communicates with other antennas throughout the building, but the device treats it as one pairing.
Is this at all possible? Was Bluetooth developed with this in mind at all?
Would this still work if the antennas were wireless? My idea is for devices to communicate with nodes via Bluetooth, and nodes interact with central base via wi-fi/local router.
Also, third random question: how does using BLE affect any of this?
Please tell me if I'm crazy! Thanks!
Bluetooth 4.0 BLE allows for a slave to connect to one master. 4.1 BLE allows for more than one connection, but I don't know if anything implements that yet.
Either way, there's no sort of "roaming" method pairing devices like with wifi access points with the same SSID. BLE however doesn't require pairing like regular Bluetooth, so you could just connect to a new access point each time you lose a connection.
You can also communicate via advertising packets from the "antenna" in each room. This would facilitate information being passed from those rooms to the phone, but not the other way around. This is basically how you communicate with BLE when you don't pair/connect devices and is how iBeacons work.
If you're writing the software yourself, and installing it in the building and on the phone, then I think it should be totally possible. Bluetooth devices can detect the distance and direction of other bluetooth devices. So if both devices are running software that is designed to, and grants permission to do so, it should be no-big-deal to programmatically auto-reconnect to the new nearest antenna whenever one becomes significantly closer than the one that your phone is currently connected to. As for software that already does this that you wouldn't have to develop from scratch yourself, no idea.

Discover other devices while connected?

Can a bluetooth adapter detect for other discoverable devices while it's already connected to another device? It seems to me that it detects only in the STANDBY state, so being connected to another device puts it in some other non-unconnected state. I could be wrong, of course.
Thanks
yes it can discover while being connected.
It is typically done by time sharing the link between the 2 procedures, most devices handle this very efficiently with no observed impact at the application.

Resources