Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

BLEnd scheduler implementation for Nordic platform devices


Identifying “who is around” is key in a plethora of smart scenarios. This project provides you an implementation of the BLEnd scheduler to enable your IoT devices to be aware of its surroundings using a low duty cycle continuous neighbor discovery protocol BLEnd:practical continuous neighbor discovery for Bluetooth low energy.

As a communication middleware, this implementation of the blend protocol provides an energy-efficient approach to let your device automatically discovers its peer devices, using ad hoc wireless connections, without infrastructure support(e.g. Access Point).

Applications can also piggyback information in the discovery beacons. For instance, the Stacon system leverages this symmetric and asynchronous peer discovery to enable the ad hoc grouping of sensing devices and collaboration.

Getting Started



Clone this repository, make executable, and run it.


$> git clone
$> cd BLEnd_Nordic
$> chmod u+x
$> ./
($> run SDK setup script in the downloaded directory)

Specify blend parameters

See blend_param_t

Percom Demo (Stacon):

Run the setup script with option 2 and then check out src/blend_project_templates/Thingy_IoT_SensorKit_v2.1.0/percom_demo.

Supported Hardware and SDKs

During installation you will be asked to select one of the supported version before and the script will automatically download and instrument the SDK you need.

Device Description SDK Version
nRF52840 DK Development kit for nRF52840 from Nordic Semiconductors nRF5 v14
nRF52840 DK (Same as above) nRF5 v15
Thingy52 IoT sensor kit from Nordic Semiconductors v2.1.0


Please pay attention to the output of the setup script. You might need to compile the SDK manually (urls to the guide will be provided). It will also prompt the location of an example project. Just go into the directory and try compiling/flashing the application.


(script outputs)
Template project location:  (path_to_directory_on_your_disk)
 All done. You're now ready to compile the SDK and begin your development (with the template project).

$> cd (path_to_directory_on_your_disk)/armgcc
$> make flash

Debug terminal (RTT)

  1. Connect to the DEV board using JLinkExe (or connect Thingy52 via a SWD cable):

    • Start JLinkExe in the terminal.
      JLinkExe  -device nrf52 -if swd -speed 4000;
    • Run connect in JLinkExe:
    • (And you should see a message)
    Cortex-M4 identified.
  2. Open the RTT client:


License and Citation

The BLEnd scheduler and the sample projects are released under the BSD 3-Clause license.

Please use the following reference in your publications if this project helps your research:

BLEnd Scheduler

  title={BLEnd: practical continuous neighbor discovery for Bluetooth low energy},
  author={Julien, Christine and Liu, Chenguang and Murphy, Amy L and Picco, Gian Pietro},
  booktitle={Proceedings of the 16th ACM/IEEE International Conference on Information Processing in Sensor Networks},


No description, website, or topics provided.







No releases published