How to add mesh into nRF5 SDK v14.1/v15 BLE application ?

What do I need to know to add mesh functionality into a normal BLE application ?

  • This is an update for combining Mesh SDK v2.0.1 and nRF5 SDK v15


    In Mesh SDK v2.0.1 it's now easier to be used concurrently with the SDKv15. There is only a few modification needed. 

    To add mesh into your BLE project you would need:

    • Extract a fresh copy of nRF Mesh SDK to \components\mesh

    • Include all the source file from Mesh example you want to clone. 

    • Include all header folders from Mesh example in Project Option -> Common -> Preprocessor -> Include Directories

    • Include Preprocessor Definitions in mesh example ( same setting tab as above).

    • Remove mesh_softdevice_init.c and any call to it in main.c The softdevice is handled by nrf_sdk_ble module already. 
    • Edit main.c to add mesh init functions and defines.
    • Add nrf_mesh_evt_handler to SOC observer list with NRF_SDH_SOC_OBSERVER for example:

      void nrf_mesh_evt_handler(uint32_t sys_evt, void * p_context) {



      NRF_SDH_SOC_OBSERVER(m_nrf_mesh_observer, 0, nrf_mesh_evt_handler, NULL);

    • Increase BLE advertising interval. We are seeing Mesh performance affected when advertising interval <100ms. 


    Attached here is an example combining ble_app_uart with light switch server. To test this you would need:

    • Extract nRF Mesh SDK into \SDKv15\components\mesh
    • Extract the example into \SDKv15\examples\ble_peripheral
    • Test it using the mesh's light switch provisioner and client in Mesh SDK v2.0.1








Reply Children
No Data