Bluetooth mesh provisioning handler for Nordic DKs¶
This application-side module is a basic implementation of the provisioning process handling for Development Kits from Nordic Semiconductor. It supports four types of out-of-band (OOB) authentication methods and uses the Hardware Information driver to generate a deterministic UUID to uniquely represent the device. For more information about provisioning in Bluetooth® mesh, see the Provisioning page in Zephyr.
Used primarily in Bluetooth mesh sample applications, this handler acts as a reference implementation for the application-specific part of provisioning.
It is enabled with the
CONFIG_BT_MESH_DK_PROV option and by calling
bt_mesh_dk_prov_init() in main.
The handling of the OOB authentication methods is closely tied to the hardware parameters of the Development Kits from Nordic Semiconductor. For deployments with custom hardware, do not extend this module. Instead, create a similar custom module that is tailored specifically to your board capabilities.
The provisioning handler provides the following OOB authentication methods during provisioning:
- Output: Display number
The Display number OOB method requires access to the application log through a serial connection. If selected, the node will print an authentication number in its serial log. Enter this number into the provisioner.
- Output: Display string
The Display string OOB method requires access to the application log through a serial connection. If selected, the node will print an authentication string in its serial log. Enter this number into the provisioner.
- Output: Blink
The Blink OOB method blinks the LEDs a certain number of times. Enter the number of blinks into the provisioner. The blinks occur at a frequency of two blinks per second, and the sequence is repeated every three seconds.
- Input: Push button
The Push button OOB method requires the user to press a button the number of times specified by the provisioner. After three seconds of inactivity, the button count is sent to the provisioner.
It is also possible for the provisioner to select “No authentication” and skip the OOB authentication. This is not recommended, as it compromises the mesh network security.
The provisioning handler uses
hwinfo_get_device_id() from the
hwinfo driver to generate a unique, deterministic UUID for each device.
The UUID is used in the unprovisioned beacon and the broadcasted Mesh Provisioning Service data. It allows the Provisioners to uniquely identify the device before starting provisioning.