... | @@ -394,7 +394,7 @@ Bluetooth Mesh is a relatively new Bluetooth standard that supports multi-hop co |
... | @@ -394,7 +394,7 @@ Bluetooth Mesh is a relatively new Bluetooth standard that supports multi-hop co |
|
* https://www.bluetooth.com/wp-content/uploads/2019/03/Mesh-Technology-Overview.pdf
|
|
* https://www.bluetooth.com/wp-content/uploads/2019/03/Mesh-Technology-Overview.pdf
|
|
* https://www.bluetooth.com/bluetooth-resources/controlling-bluetooth-mesh-networks-with-android-applications/
|
|
* https://www.bluetooth.com/bluetooth-resources/controlling-bluetooth-mesh-networks-with-android-applications/
|
|
|
|
|
|
The mesh stack shares some lower layers with the BLE stack in smartphones, but it also has some higher layers that aren't implemented in smartphones. So when a phone interacts with a mesh, it does so via a device called a proxy that implements both stacks. As far as we were able to tell, a mesh can't be formed from just smartphones.
|
|
The mesh stack shares some lower layers with the BLE stack in smartphones, but it also has some higher layers that aren't implemented in smartphones. So when a phone interacts with a mesh, it does so via a device called a proxy that implements both stacks. As far as we can tell, a mesh can't be formed from just smartphones.
|
|
|
|
|
|
There are several projects that implement the higher layers of the mesh stack in software, on Linux at least:
|
|
There are several projects that implement the higher layers of the mesh stack in software, on Linux at least:
|
|
|
|
|
... | @@ -404,7 +404,7 @@ There are several projects that implement the higher layers of the mesh stack in |
... | @@ -404,7 +404,7 @@ There are several projects that implement the higher layers of the mesh stack in |
|
|
|
|
|
The existence of these projects suggests that the higher mesh layers can be implemented in software if the platform allows access to the lower layers that are common to the mesh and non-mesh stacks. So it may be possible that in future, Android or iOS might either allow that kind of low-level access, or more likely provide their own software implementation of the higher layers of the mesh stack.
|
|
The existence of these projects suggests that the higher mesh layers can be implemented in software if the platform allows access to the lower layers that are common to the mesh and non-mesh stacks. So it may be possible that in future, Android or iOS might either allow that kind of low-level access, or more likely provide their own software implementation of the higher layers of the mesh stack.
|
|
|
|
|
|
However, given the use cases that are described in the Bluetooth Mesh docs (eg smart lightbulbs), it's not clear if it would provide much value to typical smartphone users if the phone was able to act as a full mesh node, rather than being used for provisioning and control of mesh nodes via a proxy, as is currently the case. So there isn't an obvious reason for Google/Apple to add a mesh stack to a smartphone OS in future, even if it's technically possible.
|
|
However, given the use cases that are described in the Bluetooth Mesh docs (eg smart lightbulbs), it's not clear if it would provide much value to typical smartphone users if the phone was able to act as a full mesh node, rather than being used for provisioning and control of mesh nodes via a proxy, as is currently the case. So there isn't an obvious reason for Google or Apple to add a mesh stack to a smartphone OS in future, even if it's technically possible.
|
|
|
|
|
|
In short, Bluetooth Mesh doesn't appear to be usable for creating smartphone-based mesh networks at present, and seems unlikely to become usable for that purpose in future.
|
|
In short, Bluetooth Mesh doesn't appear to be usable for creating smartphone-based mesh networks at present, and seems unlikely to become usable for that purpose in future.
|
|
|
|
|
... | @@ -453,6 +453,10 @@ The following comment suggests that NSD service resolution will fail for network |
... | @@ -453,6 +453,10 @@ The following comment suggests that NSD service resolution will fail for network |
|
|
|
|
|
On at least some devices, NSD works when the LAN is a Wi-Fi Direct legacy mode access point. Tested with Samsung A21s as access point, Nokia 1.3 as client and vice versa. Tested with the `wifi-direct-and-nsd` branch.
|
|
On at least some devices, NSD works when the LAN is a Wi-Fi Direct legacy mode access point. Tested with Samsung A21s as access point, Nokia 1.3 as client and vice versa. Tested with the `wifi-direct-and-nsd` branch.
|
|
|
|
|
|
|
|
Some devices (Huawei P8 Lite 2015, Moto G 4G, Moto E3) don't receive the attributes map in the NSD advertisement. This appears to be an Android bug that was fixed in Android 7 (API level 24):
|
|
|
|
|
|
|
|
https://issuetracker.google.com/issues/37020436
|
|
|
|
|
|
#### Service Resolution Issues
|
|
#### Service Resolution Issues
|
|
|
|
|
|
When discovering services via NSD, one needs to resolve a discovered service to find out its current IP address and port. `NsdManager` has a method `resolveService()` for this. Only one service can be resolved at a time: an error with code `FAILURE_ALREADY_ACTIVE` will appear when a second simultaneous resolve request is submitted. Hence it is important not to call that method right away when new services have been discovered. Instead, a queue needs to be maintained and worked on one by one. Resolving a service can succeed or fail, and after either event it should be possible to resolve the next service.
|
|
When discovering services via NSD, one needs to resolve a discovered service to find out its current IP address and port. `NsdManager` has a method `resolveService()` for this. Only one service can be resolved at a time: an error with code `FAILURE_ALREADY_ACTIVE` will appear when a second simultaneous resolve request is submitted. Hence it is important not to call that method right away when new services have been discovered. Instead, a queue needs to be maintained and worked on one by one. Resolving a service can succeed or fail, and after either event it should be possible to resolve the next service.
|
... | | ... | |