69 lines
2.4 KiB
ReStructuredText
69 lines
2.4 KiB
ReStructuredText
.. zephyr:code-sample:: ble_mesh
|
|
:name: Mesh
|
|
:relevant-api: bt_mesh bluetooth
|
|
|
|
Use basic Bluetooth LE Mesh functionality.
|
|
|
|
Overview
|
|
********
|
|
|
|
This sample demonstrates Bluetooth Mesh functionality. It has several
|
|
standard mesh models, and supports provisioning over both the
|
|
Advertising and the GATT Provisioning Bearers (i.e. PB-ADV and PB-GATT).
|
|
The application also needs a functioning serial console, since that's
|
|
used for the Out-of-Band provisioning procedure.
|
|
|
|
On boards with LEDs, a Generic OnOff Server model exposes functionality for
|
|
controlling the first LED on the board over the mesh.
|
|
|
|
On boards with buttons, a Generic OnOff Client model will send Onoff messages
|
|
to all nodes in the network when the button is pressed.
|
|
|
|
Requirements
|
|
************
|
|
|
|
* A board with Bluetooth LE support, or
|
|
* QEMU with BlueZ running on the host
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
This sample can be found under :zephyr_file:`samples/bluetooth/mesh` in the
|
|
Zephyr tree.
|
|
|
|
See :zephyr:code-sample-category:`bluetooth` samples for details on how
|
|
to run the sample inside QEMU.
|
|
|
|
For other boards, build and flash the application as follows:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/bluetooth/mesh
|
|
:board: <board>
|
|
:goals: flash
|
|
:compact:
|
|
|
|
Refer to your :ref:`board's documentation <boards>` for alternative
|
|
flash instructions if your board doesn't support the ``flash`` target.
|
|
|
|
To run the application on an :ref:`nrf5340dk_nrf5340`, a Bluetooth controller application
|
|
must also run on the network core. The :zephyr:code-sample:`bluetooth_hci_ipc` sample
|
|
application may be used. Build this sample with configuration
|
|
:zephyr_file:`samples/bluetooth/hci_ipc/nrf5340_cpunet_bt_mesh-bt_ll_sw_split.conf`
|
|
to enable mesh support.
|
|
|
|
Interacting with the sample
|
|
***************************
|
|
|
|
The sample can either be provisioned into an existing mesh network with an
|
|
external provisioner device, or self-provision through a button press.
|
|
|
|
When provisioning with a provisioner device, the provisioner must give the
|
|
device an Application key and bind it to both Generic OnOff models.
|
|
|
|
When self-provisioning, the device will take a random unicast address and
|
|
bind a dummy Application key to these models.
|
|
|
|
Once provisioned, messages to the Generic OnOff Server will be used to turn
|
|
the LED on or off, and button presses will be used to broadcast OnOff
|
|
messages to all nodes in the same network.
|