summaryrefslogtreecommitdiff
path: root/src/libs/mynewt-nimble/docs/mesh/index.rst
diff options
context:
space:
mode:
authorJF002 <JF002@users.noreply.github.com>2020-05-16 16:15:38 +0200
committerGitHub <noreply@github.com>2020-05-16 16:15:38 +0200
commitd58f57b1b5a616debf893f209f1d96cac101489e (patch)
tree9df19606a2615586bb533d39fb42c84be8774092 /src/libs/mynewt-nimble/docs/mesh/index.rst
parent24a1f87a78584d3b67f07ea7972ea0d8e1f8167c (diff)
parentd6c6ac4cf5801e17caf7bfc0878423703ed0413b (diff)
Merge pull request #30 from JF002/nimble
Nimble
Diffstat (limited to 'src/libs/mynewt-nimble/docs/mesh/index.rst')
-rw-r--r--src/libs/mynewt-nimble/docs/mesh/index.rst95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/libs/mynewt-nimble/docs/mesh/index.rst b/src/libs/mynewt-nimble/docs/mesh/index.rst
new file mode 100644
index 00000000..6ad75363
--- /dev/null
+++ b/src/libs/mynewt-nimble/docs/mesh/index.rst
@@ -0,0 +1,95 @@
+Bluetooth Mesh
+--------------
+
+.. toctree::
+ :hidden:
+ :titlesonly:
+
+ sample
+
+.. contents::
+ :local:
+ :depth: 2
+
+Introduction to Mesh
+~~~~~~~~~~~~~~~~~~~~
+
+Bluetooth Mesh is a new standard from Bluetooth SIG that was released in 2017. It enables many-to-many device
+communication (as opposed to point-to-point approach in BLE) and is optimised for large-scale networks like building
+automation or sensors network. It utilizes managed flood based approach where only mains-powered nodes relay messages
+making it very power efficient (battery powered low-power nodes that don't relay messages can operate in mesh network for years).
+
+Bluetooth Mesh is complementary to Bluetooth specification and requires features from 4.0 release only. This allows
+deployment of networks using hardware already available on the market.
+
+Topology
+~~~~~~~~
+
+.. figure:: mesh_topology.jpg
+ :alt: Bluetooth Mesh Topology (source: Mesh Profile Specification 1.0)
+
+Bluetooth Mesh defines few features (roles) for devices in network. Those are:
+
+- Relay - receive and retransmit mesh messages over the advertising bearer to enable larger networks
+- Proxy - receive and retransmit mesh messages between GATT and advertising bearers.
+- Low Power - operate within a mesh network at significantly reduced receiver duty cycles only in conjunction with a
+ node supporting the Friend feature
+- Friend - the ability to help a node supporting the Low Power feature to operate by storing messages destined for those nodes
+
+Bearers
+~~~~~~~
+
+Mesh Profile specification allows two kinds of bearers for transmitting data:
+
+- Advertising Bearer
+
+ - Uses LE advertising to broadcast messages to all nodes that are listening at this time
+ - Uses non-connectable advertising only
+ - 29 octets of network message
+
+- GATT Bearer
+
+ - Uses LE Connections to send messages
+ - Uses standard GATT service (one for Provisioning and one for Proxy)
+
+Provisioning
+~~~~~~~~~~~~
+
+Provisioning is a process of adding an unprovisioned device to a mesh network managed by a Provisioner. A Provisioner
+provides the unprovisioned device with provisioning data that allows it to become a mesh node (network key, current IV
+index and unicast address). A Provisioner is typically a smart phone or other mobile computing device.
+
+Models
+~~~~~~
+
+Models define basic functionality of nodes on a mesh network. Mesh Profile Specification defines foundation models used
+to configure and manage network. Mesh Model Specification includes models defininig functionality that is standard
+across device types. Those consists of:
+
+- Generics - root models
+
+ - On/Off
+ - Level
+ - Battery Server
+ - Location
+ - Client Property
+ - and others
+
+- Sensors - defines a standard way of interfacing with sensors
+- Time and Scenes - defines a set of functionalities related to time and saved states on devices
+- Lighting - defines a set functionalities related to lighting control
+
+Complex models e.g. Lighting may contain other models eg Generic On/Off. The following image shows an example of Light
+Lightness Server Model.
+
+.. figure:: mesh_lightning_model.jpg
+ :alt: Light Lightness Server model (source: Mesh Model Specification 1.0)
+
+Mesh Node features supported by Apache Mynewt
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Advertising and GATT bearers
+- PB-GATT and PB-ADV provisioning
+- Foundation Models (server role)
+- Relay support
+- GATT Proxy