nRF5 SDK for Mesh v5.0.0
Low Power node example
You can test this example on the following devices: nRF52840, nRF52833, and nRF52832.
This example is not compatible with the nRF52810 and nRF52820 devices.

This example shows the implementation of a device supporting the Low Power node (LPN) feature. It emulates an occupancy sensor device through button presses and a timer.

You can use this example as the starting point for adding the LPN feature to your device, as it demonstrates all the required changes to the application. Read more about the Low Power Node feature in Low Power node feature.

When configured to interact with a device with a Generic OnOff Server model, the device running this example turns on the LED on the light switch server device upon a button press, which emulates triggering the occupancy sensor. It also sends an off message to the light switch server device after five seconds to emulate inactivity.

This example uses GATT provisioning, and instantiates a Generic OnOff Client model that can be used to control light switch servers.

This example also supports the Buttonless Secure DFU Service to perform Device Firmware Upgrade over BLE. The DFU over BLE is disabled by default. See nRF5 SDK Bootloader and DFU modules for more information.

Table of contents

Hardware requirements

You need three compatible development kits for this example:

See Compatibility for information about the compatible development kits.

Software requirements

The Friend feature is supported by this version of the nRF5 SDK for Mesh and it is enabled in the light switch server example.

You can find the light switch server example files in the following folder: <InstallFolder>/examples/light_switch/server

You also need to download and install nRF Mesh mobile app (available for iOS and Android) for Provisioning and configuration.


You can find the source code and the project file of the example in the following folder: <InstallFolder>/examples/lpn

LED and button assignments

These assignments refer to the LPN device only.

Testing the example

To send messages between the LPN device and the light switch server device, complete the following steps:

Building and flashing

To set up the example:

  1. Decide about the Device Firmware Upgrade approach for the Low Power node:
  2. Build the Light switch server example. To build the example, follow the instructions in Building the Bluetooth mesh stack.
  3. Program the Light Switch Server example onto two development kits. See Running examples for the instructions.

All three devices are now running Bluetooth-mesh-enabled firmware.

When building and running the firmware, you might encounter the following error:
app_error_weak.c, 119, Mesh error 4 at 0x00000000
This error means that the bootloader is not flashed. Go to Building and programming the bootloader to flash the bootloader.

Provisioning and configuration

Before a friendship can be established between the LPN device and the Friend device, they both must be provisioned to the same Bluetooth mesh network.

As the Low Power node example only supports the PB-GATT bearer for provisioning, use nRF Mesh mobile app (for iOS or Android) to provision and configure all three devices. See the information on the main Examples page for detailed steps.

The following naming convention is used in the app:

The following model instances must be configured in the app for this example:

When setting publication with nRF Mesh mobile app, use the following procedure specific to the LPN example:

  1. On nRF5x Mesh LPN, in the publication section of the Generic On Off Client model instance menu, tap Set Publication.
  2. Tap the publication address field. A dropdown menu appears.
  3. Set the publication to a group address:
    1. Select an existing group to subscribe or create a new one.
    2. Apply the changes for the client node.
  4. On nRF5x Mesh Light, in the publication section of the Generic On Off Server model instance menu, tap Set Publication.
  5. Tap the publication address field. A dropdown menu appears.
  6. Set the publication to a unicast address of the nRF5x Mesh LPN node.
  7. In the subscriptions section of the Generic On Off Server model instance menu, tap Subscribe.
  8. Set the subscription address to the selected group address.

At the end of the configuration process:

Establishing the friendship

After the initial configuration and provisioning are complete, the LPN device enters the idle state.

To start the friendship establishment process, press button 3 on the LPN device. The device starts searching for an appropriate Friend in the Bluetooth mesh network.

The LPN example always accepts the first friendship it is offered with. Establishing a friendship normally takes less than a second. If the LPN device cannot find a Friend after 5-10 seconds, all LEDs will blink intensively. You have to press button 3 again to retry.

Once the friendship is established, LED 2 turns on and stays lit throughout the friendship.

Pressing button 3 again while the LPN is in a friendship causes it to terminate the friendship and go back to the normal power mode.

Sending messages

You can send on and off messages by pressing buttons 1 and 2, respectively. These buttons also control the LED 1 of the light switch server through the Generic OnOff client model.

This behavior is identical to the one in the light switch client example.

If you connect the RTT viewer to the LPN device, you will see the status messages being received from the servers through the Friend node.

Updating the LPN node firmware through DFU over BLE

Skip this section if you decided to use the node without DFU over BLE.

When the Low Power node is running, you can update it using DFU over BLE:

  1. Add any changes to the Low Power node example, for example change the log message in the initialize() function to the following:
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "----- BLE Mesh LPN Demo (Updated) -----\n");
  2. Rebuild the Low Power node example.
  3. Create a new firmware package with the modified Low Power node example. Refer to Generating a firmware package with the Low Power node example section of the Configuring DFU over BLE using the LPN example page to create a new firmware package.
  4. Upload the new firmware package to the LPN device. Refer to Performing DFU over BLE section of the Configuring DFU over BLE using the LPN example page to upload the new firmware package.
  5. Verify that the new firmware is uploaded be checking the RTT log.

Resetting the device

Pressing button 4 resets and unprovisions the LPN device.

Documentation feedback | Developer Zone | Subscribe | Updated