About the Bluetooth Mesh SDK#

The Silicon Labs Bluetooth mesh stack is an advanced Bluetooth mesh protocol stack implementing the Bluetooth mesh standard. It can run alongside the Bluetooth Low Energy (LE) stack, using a common link layer, which allows using LE features in parallel. The Silicon Labs Bluetooth mesh stack is meant for Silicon labs Wireless Gecko SoCs and modules.

The Silicon Labs Bluetooth mesh stack provides multiple APIs for the developer to access the Bluetooth mesh functionality. Two modes are supported.

  1. Standalone mode (also referenced as SoC mode), where both the Bluetooth mesh stack and the application run in a Wireless Gecko SoC or module. The application can be developed with the C programming language. It can be running on bare metal or can use an operating system such as FreeRTOS or Micrium OS.

    Standalone modeStandalone mode

  2. Network Co-Processor (NCP) mode, where the Bluetooth stack runs in a Wireless Gecko and the application runs on a separate host MCU. For this use case, the Bluetooth stack can be configured into NCP mode where the API is exposed over a serial interface such as UART. For more information, see AN1259: Using the Silicon Labs Bluetooth® Stack v3.x and Higher in Network Co-Processor Mode.

    NCP modeNCP mode

Bluetooth Mesh Stack Features#

The features of the Silicon Labs Bluetooth mesh stack are listed in the following table. For details on the features of the Bluetooth Low Energy stack, refer to QSG169: Bluetooth® Quick-Start Guide for SDK v3.x and Higher.

Feature

Value and Comment

Bluetooth mesh version

Bluetooth mesh 1.1

Node types

Relay, Proxy, Friend, and Low Power Node (LPN)

Provisioning bearers

PB-ADV

PB-GATT

PB-Remote (Remote Provisioning, RPR)

GATT services

Proxy

Provisioning

Security

ECDH

AES-128 encryption, authentication, and obfuscation

OoB authentication

Certificate-based provisioning

Replay protection

Key refresh (reject list)

Host (NCP) interfaces

4-wire UART with RTS/CTS control or 2-wire UART without RTS/CTS GPIOs for sleep and wake-up management

Secure NCP option for data encryption between NCP target and host

Wi-Fi Coexistence

Using Packet Trace Arbitration (PTA)

Bootloaders

Secure Gecko Bootloader supporting authenticated and encrypted updates over OTA (over GATT) or UART and Secure Boot. The Gecko Bootloader also supports flash partitioning and both internal and external (SPI) flash.

Non-volatile memory

EFR32[B|M]G12, EFR32[B|M]G13: NVM3 or Persistent Store (PS). (Note: Example applications in the SDK use NVM3 by default.)

EFR32[B|M]G21, EFR32[B|M]G22, EFR32[B|M]G24, EFR32[B|M]G27: NVM3

Mesh 1.1 new features

Device Firmware Update (Mesh DFU), Mesh Blob Transfer, Mesh Remote Provisioning, Certificate-Based Provisioning, Mesh Private Beacons, Enhanced Device Composition Data page, i.e. Large Composition Data, Configurable SAR timing, Proxy Service Solicitation, On-Demand Private Proxy

Supported Models#

Model

SIG Model ID

Example App (1)

Model Group: NA

Vendor

N/A

N/A

Model Group: Foundation

Configuration Server

0x0000

All

Configuration Client

0x0001

BT Mesh Host Provisioner

Health Server

0x0002

N/A

Health Client

0x0003

N/A

Remote Provisioning Server

0x0004

N/A

Remote Provisioning Client

0x0005

N/A

Mesh Private Beacon Server

0x000A

N/A

Mesh Private Beacon Client

0x000B

N/A

Model Group: Generic

Generic OnOff Server

0x1000

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller, PyBGAPI NCP Host Light

Generic OnOff Client

0x1001

SoC Switch CTL, SoC Switch CTL Low Power, NLC Dimming Control, NLC Dimming Control Low Power, PyBGAPI NCP Host Switch

Generic Level Server

0x1002

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller, PyBGAPI NCP Host Light

Generic Level Client

0x1003

NLC Basic Scene Selector, NLC Dimming Control

Generic Default Transition Time Server

0x1004

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Generic Default Transition Time Client

0x1005

N/A

Generic Power OnOff Server

0x1006

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Generic Power OnOff Setup Server

0x1007

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Generic Power OnOff Client

0x1008

N/A

Generic Power Level Server

0x1009

N/A

Generic Power Level Setup Server

0x100A

N/A

Generic Power Level Client

0x100B

N/A

Generic Battery Server

0x100C

N/A

Generic Battery Client

0x100D

N/A

Generic Location Server

0x100E

N/A

Generic Location Setup Server

0x100F

N/A

Generic Location Client

0x1010

N/A

Generic Admin Property Server

0x1011

N/A

Generic Manufacturer Property Server

0x1012

N/A

Generic User Property Server

0x1013

N/A

Generic Client Property Server

0x1014

N/A

Generic Property Client

0x1015

N/A

Model Group: Sensors

Sensor Server

0x1100

SoC Sensor Thermometer, NLC Occupancy Sensor, NLC Ambient Light Sensor

Sensor Setup Server

0x1101

SoC Sensor Thermometer, NLC Occupancy Sensor, NLC Ambient Light Sensor

Sensor Client

0x1102

SoC Sensor Client

Model Group: Times and Scenes

Time Server

0x1200

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Time Setup Server

0x1201

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Time Client

0x1202

N/A

Scene Server

0x1203

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller, PyBGAPI NCP Host Light

Scene Setup Server

0x1204

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Scene Client

0x1205

SoC Switch CTL, SoC Switch CTL Low Power, NLC Basic Scene Selector, PyBGAPI NCP Host Switch

Scheduler Server

0x1206

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Scheduler Setup Server

0x1207

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Scheduler Client

0x1208

N/A

Model Group: Lighting

Light Lightness Server

0x1300

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller, PyBGAPI NCP Host Light

Light Lightness Setup Server

0x1301

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Light Lightness Client

0x1302

SoC Switch CTL, SoC Switch CTL Low Power, PyBGAPI NCP Host Switch

Light CTL Server

0x1303

SoC Light CTL, PyBGAPI NCP Host Light SoC Light CTL

Light CTL Setup Server

0x1304

SoC Light CTL

Light CTL Client

0x1305

SoC Switch CTL, SoC Switch CTL Low Power, PyBGAPI NCP Host Switch

Light CTL Temperature Server

0x1306

SoC Light CTL

Light HSL Server

0x1307

SoC Light HSL

Light HSL Setup Server

0x1308

SoC Light HSL

Light HSL Client

0x1309

N/A

Light HSL Hue Server

0x130A

SoC Light HSL

Light HSL Saturation Server

0x130B

SoC Light HSL

Light LC Server

0x130F

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Light LC Setup Server

0x1310

SoC Light CTL, SoC Light HSL, NLC Basic Lightness Controller

Light LC Client

0x1311

N/A

Model Group: Firmware Update

BLOB Transfer Server

0x1400

SoC DFU Distributor

BLOB Transfer Client

0x1401

N/A

Firmware Update Server

0x1402

SoC DFU Distributor

Firmware Update Client

0x1403

N/A

Firmware Distribution Server

0x1404

SoC DFU Distributor

Firmware Distribution Client

0x1405

SoC DFU Distributor

(1) In Simplicity Studio 5, example app names are preceded with "Bluetooth Mesh -".

Additional Models for Mesh 1.1 features: Remote Provisioning, Private Beacon, On-demand Private Proxy, SAR Configuration, Large Composition Data, Solicitation PDU Replay Protection List Configuration, Firmware Distribution, Firmware Update, BLOB Transfer.

Bluetooth Mesh Stack Limitations#

Component

Feature

Value and Comment

Mesh Node (EFR32)

Network Keys on a node(1)

Maximum of 7

Application Keys on a node

Maximum of 8

Number of nodes that can be communicated with

Maximum of 4096 (depending on available RAM and NVM3)

Concurrent segmented messages being received

Maximum of 255 (depending on available RAM)

Concurrent segmented messages being sent

Maximum of 255 (depending on available RAM)

Parallel provisioning sessions

Maximum of 1

Faults reported on the health server

Maximum of 5

Mesh Provisioner (EFR32)

Maximum number of supported nodes

512

Maximum number of network keys per node

Maximum of 7

Maximum number of application keys per node

Maximum of 8

Replay protection list size

Maximum of 4096 (depending on available RAM and NVM3. Network size limit is still 512)

Parallel provisioning sessions

1

Concurrent key refresh operations

Maximum of 16

Mesh Provisioner (ADK)

Replay protection list size (max network node count)

32768

Maximum number of network keys per node

Maximum of 7

Maximum number of application keys per node

Maximum of 8

Parallel provisioning sessions

1

(1) The node belongs to a single network, but the network may have multiple network keys to encrypt the traffic.