Table of Contents

Bluetooth Low Energy

Bluetooth is a standardized protocol for sending and receiving data via a 2.4GHz wireless link. It's a secure protocol, and it's perfect for short-range, low-power, low-cost, wireless transmissions between electronic devices.

Since Software version 4.4.0.100 all netmodule device support Bluetooth Low Energy via SDK. The following step by step description will guide you to configure a BLE Scanner on a NB800.

Step 1. Change Bluetooth Mode

For using bluetooth via SDK you need to enable the interface for the SDK environment via the WEB GUI:

Step 2. Run Script

Afterwards you can run the following BLE Script. The script is scanning the surrounded available BLE device/tags and will show you the bluetooth advertising data. It will stop automatically after 20 detected devices/tags.

BLE_Scan.are
nb_bt_mode(BT1, BT_MODE_SCAN);
for (i = 0; i < 20; i++) {
    
    devices = nb_bt_dev_list(BT1);
    printf("%d: %d\n", i, length(devices));
    for (d = 0; d < length(devices); d++) {
        dev_info = nb_bt_dev_info(BT1, devices[d]);
      
    }
    sleep(1);
}
nb_bt_mode(BT1, BT_MODE_OFF);

For more BLE SDK functionality, please check our SDK API

You can check the available data details of the surrounded beacons with adding “dump(dev_info);” into the FOR Loop.The Output will look this:

dump(dev_info); Output
 
struct(15): {
  .Name = string[12]: "ThermoBeacon"
  .Trusted = bool: false
  .Adapter = int: 0
  .LegacyPairing = bool: false
  .Paired = bool: false
  .ServicesResolved = bool: false
  .Alias = string[12]: "ThermoBeacon"
  .Connected = bool: false
  .ManufacturerData = array(1): {
                        [0] struct(2): {
                              .Value = array(20): {
                                         [0] int: 0
                                         [1] int: 0
                                         [2] int: 140
                                         [3] int: 7
                                         [4] int: 0
                                         [5] int: 0
                                         [6] int: 71
                                         [7] int: 233
                                         [8] int: 126
                                         [9] int: 1
                                         [10] int: 238
                                         [11] int: 13
                                         [12] int: 0
                                         [13] int: 0
                                         [14] int: 252
                                         [15] int: 0
                                         [16] int: 167
                                         [17] int: 140
                                         [18] int: 0
                                         [19] int: 0
                                       }
                              .Key = int: 17
                            }
                      }
  .Address = string[17]: "E9:47:00:00:07:8C"
  .Blocked = bool: false
  .RSSI = int: -68
  .Addresstype = string[6]: "public"
  .UUIDs = array(1): {
             [0] string[36]: "0000fff0-0000-1000-8000-00805f9b34fb"
           }
  .TxPower = int: 0
}