|  | .. _ble_mesh_provisioner: | 
|  |  | 
|  | Bluetooth: Mesh Provisioner | 
|  | ########################### | 
|  |  | 
|  | Overview | 
|  | ******** | 
|  |  | 
|  | This sample demonstrates how to use the Bluetooth Mesh APIs related to | 
|  | provisioning and using the Configuration Database (CDB). It is intended | 
|  | to be tested together with a device capable of being provisioned. For | 
|  | example, one could use the sample in | 
|  | :zephyr_file:`samples/bluetooth/mesh` | 
|  | or :zephyr_file:`tests/bluetooth/mesh_shell`. | 
|  |  | 
|  | The application provisions itself and loads the CDB with an application | 
|  | key, then waits to receive an Unprovisioned Beacon from a device. If the | 
|  | board has a push button connected via GPIO and configured using the | 
|  | ``sw0`` :ref:`devicetree <dt-guide>` alias, the application then waits | 
|  | for the user to press the button, which will trigger provisioning using | 
|  | PB-ADV. If the board doesn't have the push button, the sample will | 
|  | provision detected devices automatically. Once provisioning is done, the | 
|  | node will be present in the CDB but not yet marked as configured. The | 
|  | application will notice the unconfigured node and start configuring it. | 
|  | If no errors are encountered, the node is marked as configured. | 
|  |  | 
|  | The configuration of a node involves adding an application key, getting | 
|  | the composition data, and binding all its models to the application key. | 
|  |  | 
|  | 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_provisioner` in the Zephyr tree. | 
|  |  | 
|  | See :ref:`bluetooth samples section <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_provisioner | 
|  | :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 :ref:`bluetooth-hci-ipc-sample` 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. |