| .. 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. |