Can Bluetooth masters be connected together? - bluetooth

I am wondering if two Bluetooth masters can be connected to each other.
I think it is not possible because there should be only one master in each piconet.
Anyways, here is one scenario.
Suppose that there are two smart phones, each one is using bluetooth headset or connected to some device, thus both phones are working as masters.
Now, one smart phone wants to send files via bluetooth to the other smart phone.
In this case, is it possible that the phones are connected?
If they support role switch, one may be switched to a slave.
But in this case, I think the already established connections would be broken because they will lose the master.
If I want to send files from one master to another master, how can I do this?
Is it possible or impossible??

Bluetooth can support the capability called "Scatternet" which basically allows the devices to be part of multiple piconet (typically I have seen 2-3 piconets)
With this a device can be a master in one piconet and slave in another or slave in 2 piconets, ect.
So the scenario you mentioned is possible if one of the phone can support scatternet.

Related

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.

Can Two Bluetooth LE (4.0) Devices talk to each other?

Can Two Bluetooth LE (4.0) Devices talk to each other ?
A good example can be if two FitBit devices talk to each other .Just pass basic information ?
or One Coin Device communicate each to other ? (https://onlycoin.com/)
As of today we see most BLE Devices like fitbit communicate back to Iphone/Android Only .
Wont it be possible to have both FitBit deices communicate each other ?
I am thinking of creating a "Card 1: Bluetooth Card(LE 4.0)" which when Contacted with another "Card 2: Bluetooth Card(LE 4.0)" can exchange some date . After the exchange Card 1 will send the data it got from Card 2 to an IOS /Android device and the same applies to Card 2 . Is this possible at all ?
What you want to achieve is currently not doable. Bluetooth Low Energy (v4.0) only allows the star topology configuration, i.e. Only one master and multiple slaves; the master can talk to the slaves at the same time but the slaves cannot talk to each other. According to the Bluetooth website, they state:
"Bluetooth low energy technology uses a 32 bit access address on every packet for each slave, allowing billions of devices to be connected. The technology is optimized for one-to-one connections while allowing one-to-many connections using a star topology. With the use of quick connections and disconnections, data can move in a mesh-like topology without the complexities of maintaining a mesh network".
One way to achieve what you want is to switch roles between transmissions (i.e. the device that was once a slave then becomes a master) but this will be very complicated and many BLE chips do not support this feature.
I hope that this helps.

Is there possible for communicate between piconet to another piconet

In my previous question posted in how to communicate with mobile devices using bluetooth in j2me have asked question based on bluetooth. I got i some ideas for implementing client server communication. Now i am here to ask question based on communication between piconet to another piconet. Is it possible? Master device has to communicate with the slave in a piconet as well as to the master and slave to another piconet by slave of its own piconet.
Can anyone please give me some guideline and articles for my problem.
please help me..
Thankx in advance
In Bluetooth, the master initiates communications with a slave. At the baseband level the master polls the slave. However, at the application (API) level, that is abstracted away allowing both the master to send to the slave and the slave to send to the master.
The situation you describe is a scatternet. The Bluetooth specification allows for a scatternet to occur. The Bluetooth stack you are using may impose restrictions on whether a scatternet is allowed and, more generally, what master/slave configurations are allowed (e.g., the number of concurrent slaves allowed).
You'll find that, when interacting with some devices, a role switch is requested to prevent scatternets. For example, a remote device (master) may initiate a connection with a cell phone (slave); once the connection is established, the cell phone requests a role switch, becoming the master. This allows the phone to remain the master in all connections and prevents scatternets from forming. Depending on the API, this role switch may be completely transparent to your application. You won't know it happened without an air trace from a protocol analyzer. You will notice a performance hit, as the slave cannot transmit as often as the master can (since the slave does not "drive" the connection).
JSR-82 does not allow you to request a role switch, per se. If you look at ServiceRecord.getConnectionURL(int, boolean), you see that you can require that your device be the master (by passing true) or you can allow master or slave mode (by passing false).
The Bluetooth specification (available here) is a good place to start to understand how piconets and scatternets work. You should refer to the JSR-82 documentation and, if possible, your stack's documentation to get a better feel for some of the stack-specific limitations that may be present.

how to programatically determine Bluetooth master/slave roles?

So in a bluetooth piconet, there is one master with upto seven slaves. The master sets the clock and frequency hop that the slaves sync with. But is there a way to determine which device is the master and which is the slave? I'm mainly interested in portable devices (Android,iPhone) but beggars can't be choosers, if anybody has info in this field I would be interested.
Thanks
I don't think it's possible to do it programatically.The master/slave roles which a device assumes is invisible to the user(application).The same device can act as a master of one piconet and a slave in an (adjacent) piconet.What needs to be decided in your application is whether the device will act as a client or a server or both and what will be the services(profiles) that it supports.
It depends on the platform you are using.
It should be possible to read the information associated with a connected device and the role of the device should ideally be part of that information in the API.
So if the connected device is Primary you can infer that you are secondary and so on.
-Dennis

'Conference' type operations using Bluetooth?

Is it possible to implement Bluetooth devices to provide conference rather than one-to-one operation.
Are there any development toolkits that will allow me to configure BT devices in this way, or modifications that can be done to the BT stack or an add-on protocol.
I need to configure several Bluetooth adaptors to simultaneously communicate with one another. I think BT allows up to 10 'pico-nets' but I need specialiced advice.
I would welcome any links to resources, or replies from Bluetooth experts.
Thanks in anticipation.
I've heard of something close to this, called a piconet. Googling "bluetooth piconet" should point you in the right direction.
A master device can be networked in this way with up to 255 slave devices, but only 7 can be active at any one time. This is more of a one-to-many communication than many-to-many, but could potentially be approximated by having the master device act like a network switch.
Update: I just read that slaves in one piconet can participate in another piconet as either a master or slave, forming a "scatternet".

Resources