Is it possible that one device can connect to two different bluetooth topologies and thus process two different connections at the same time?
I have a mesh network to which several devices are connected.
One of the devices should also maintain a connection with an external bluetooth device at the same time.
Would such a thing be theoretically possible or not.
if not, are there any alternative or other ideas?
Yes, this should be doable. This is because at its core, mesh is an advert-based topology. In your above diagram, think of your green nodes as just devices sending BLE adverts to each other. This means that theoretically it should be possible for one of those devices (or even multiple of them) to be in a connection with other devices (inside or outside the mesh network). The image below shows that this capability is used to extend the range and technologies of a mesh network:-
I highly recommend going through the links below as they give a good overview of Bluetooth mesh and its evolution from Bluetooth Low Energy:-
From BLE to Mesh
Developing BLE Applications with Mesh
Bluetooth Mesh for Android Developers
I hope this helps.
Related
I'm making a project with ESP32 that involves communication with a mobile application. Currently I'm using BluetoothSerial(built on Classic) just for debugging, but I plan to make a dedicated mobile application to have all kinds of data related to the project, and I'll gather this data from the controller through duplex communication, maybe via a command-response interface.
What I want to know is what kind of Bluetooth would be preferable to communicate with an Android application? Things that I want to keep in consideration:
Auto-connection capabilities when in range.
OTA possibility.
Range.
Hardware Requirements (Like timers and such)
Data Security
Port capability to iOS.
I do not care about:
Battery Usage (If the practical difference is minimal)
Transmission Speeds (I'm just transmitting 2-3 kb numerical data once a second)
It doesn't make a huge difference as most of the things you listed above can be achieved via either method, so it comes down to your personal preference and your existing familiarity with the wireless technology. However, I would personally go for BLE because unlike classic Bluetooth, BLE is now a lot more mature in terms of applications and resources for both Android and iOS. You will end up finding a lot more documentation and source code when it comes to BLE when compared to classic Bluetooth. Futhermore, as Michael Kotzjan mentioned, classic Bluetooth is relatively new on iOS and has a few restrictions.
The links below can maybe give you a nudge in the right direction:-
Bluetooth classic vs BLE on Android
Android Bluetooth vs BLE
Bluetooth security and privacy on iOS
Classic Bluetooth, BLE or WiFi direct
Now many Android phones have already support 2*2 mimo which means there are 2 wifi modules inside the phone. I wanna separately control these modules, one for sending signals and the other for receiving signals. How to directly control the hardware? I do not find relevant information in google documents.
As far as I know, there is no official way / API interface to control the WIFI modules or the antennas directly.
In my opinion, it does not make sense to do so. With MIMO, the best antenna is automatically calculated and used based on the quality of the input signal.
Here is a good explanation from Intel:
MIMO technology uses a natural radio-wave phenomenon called multipath. With multipath, transmitted information bounces off walls, ceilings, and other objects, reaching the receiving antenna multiple times at different angles and slightly different times. In the past, multipath caused interference and slowed down wireless signals. With multipath, MIMO technology uses multiple, smart transmitters and receivers with an added spatial dimension, increasing performance and range.
https://www.intel.com/content/www/us/en/support/articles/000005714/wireless/legacy-intel-wireless-products.html
What you are planning to do, however, would go against this principle and turn the MIMO antennas into two SISO (Single Input Single Output) antennas.
This would only be possible with a rooted smartphone or an XPOSED module.
If you want to find out how many antennas are built into a smartphone, I would recommend the WIFI Alliance website. Here you can find detailed information about all certified smartphones.
Website WIFI Alliance
For Example the Spec Sheet of the Oneplus 6t
Oneplus 6t WIFI Specs
EDIT: So in summary, this is not really possible, because of the scope of the software used to communicate with the antennae is to low level. It would be amazing, if this software was accessible to developers, as it would enable us to make more cool stuff. Unfortunately it isn't
I've had this idea ghosting around my mind for a while, but I don't know if it's possible. Could one develop a mesh network where phones used their internal radios to communicate with each other directly instead of first connecting to a tower? The idea being, that given proper software, cellular networks would no longer be needed. Basically: Imagine you want to use whatsapp but you don't have a data plan and you're out & about so consequently don't have wifi either. Can phone A connect to phone B (provided phone B has an internet connection) and piggyback off it's wifi?
I would like to create an application where near phones/devices can send data between each other.
it should look like that all devices except one turn on some listening function. One device create game and add each of devices from list to game.
I know how to accomplish this task with use of intermediary server. But I would like to achieve this in a different way without server. For example I can create app which find near ibeacons and displays them in a list, and get data from them. Is it possible to make to way communication by bluetooth between phones with bluetooth?
Maybe other technologies? I do not want to use NFC, because range is to short.
Another limitation is that, this solution should be an cordova/phonegap plugin?
Edit:
I need to communicate between users devices. For example I want to make app where two users standing near each other chat together. Messages should be send between phones, without server.
It sounds like iBeacons is the perfect solution for what you're attempting to achieve. It doesn't require NFC or a server–only devices that have Bluetooth 4.0 LE (Low Energy).
If you're unhappy with iBeacons, I recommend the Multipeer Connectivity framework that also became available in iOS7:
https://developer.apple.com/library/ios/documentation/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/
Here's a good tutorial on AppCoda:
http://www.appcoda.com/intro-multipeer-connectivity-framework-ios-programming/
Another benefit to using the Multipeer Connectivity framework as opposed to iBeacons, is that it doesn't require Bluetooth 4.0 LE, which isn't available on iPad 2 and iPhone 4 devices.
I am thinking about an application that will establish a mesh network between smartphones on Android and maybe iOS devices. It'd look like netsukuku between smartphones + Voice, Chat, Data, maybe Local network.
Is it possible by GSM? Any GSM architecture restrictions?
Is it possible to connect phones via GSM in android? and/or iOS?
Can I use Android libs to make it or I need direct access to the GSM module to do it??
There is no way to do this under normal conditions and may not be possible without flashing a modification directly to the underlying GSM radio - not something for the fain at heart. On iOS I am going to guess this is completely impossible.
First of all, there are tons of regulations related to wireless usage. In the US, the FCC takes care of that and each country has its sets of rules that luckily, have some common points. If you want to use a cellphone modem in its current frequency range, you have to modify it and it's not "legal". The frequency range it uses are "owned" by the carriers, they pay big bucks to use it. Second, your cell modem is meant to look for a cell tower and "hook-up" to it. It doesn't have what is necessary to do a mesh. This would require rewriting the firmware in the cell modem itself, and this is only if the chipset support mesh networking (I doubt it). Even after doing all that work, you would have to use available radio frequency band (there's not much) to do that and the cell phone modem antenna is probably not supporting it. So, for your mesh architecture to work, you would have to get some hardware work into it.
Here is an idea: you built a little dungle that would connect to your cell through Bluetooth. This dungle would in turn have a longer reach wireless radio in the ISM band which is license free (you still have to go through FCC... certification). But in the ISM band, the transmission power is also limited so, you mesh will still need to be devices not too far appart.
Simpler and cheaper solution: use the internet to connect your devices together. You can use a server in the cloud where all devices register and then can talk together.