nRF5 SDK for Mesh v5.0.0
Remote provisioning example
You can test this example on the following devices: nRF52840, nRF52833, nRF52832, nRF52820, and nRF52810.

This example demonstrates the PB remote models, which allows you to provision devices that are outside of the provisioner's radio range. Normally, you have to be within radio range of the device you want to provision, but PB remote channels your commands through the Bluetooth mesh.

This solution allows to save time and usability by allowing you to provision all the nodes in the network after all of them have been installed, for example in an ecosystem with one controller and a large set of preinstalled light fixtures spread on a considerable area.

This example uses its own static OOB value. For this reason, this example cannot be used with other examples. For more information, see the Examples main page.

The Remote provisioning example consists of two parts:

For more information about remote provisioning API, see the PB-remote API reference.

Table of contents

Hardware requirements

You need at least three compatible development kits for this example:

The servers act as provisionees until they are included in the network, after which they will be able to act as servers to help provision new devices.

See Compatibility for information about the compatible development kits.

Software requirements

For this example, you need to use both the remote provisioning client and the remote provisioning server. Do not use them separately.


You can find the source code of this example and its minor examples in the following folder: <InstallFolder>/examples/pb_remote

Testing the example

To test the remote provisioning example:

  1. Build the examples by following the instructions in Building the Bluetooth mesh stack.
  2. Flash the examples by following the instructions in Running examples, including:
    1. Erase the flash of your development boards and program the SoftDevice.
    2. Flash the client firmware on one board, and the server firmware on other boards.
  3. Start the RTT viewer to interact with the provisioner. The provisioner prints details about the provisioning and the configuration process in the RTT log.
  4. Provide the following commands to the client:
    1. Send 1 to start normal PB-ADV on the first unprovisioned device.
    2. Send 2N, where N is the handle of the newly provisioned device, to set the handle of the remote provisioning server.
    3. Send 3 to start remote scanning on the current server.
    4. Send 4 to cancel remote scanning on the current server.
    5. Send 5N, where N is the device number, to start remote provisioning of the first unprovisioned device known to the current provisioning server.

The provisionees are now provisioned remotely.

Documentation feedback | Developer Zone | Subscribe | Updated