My small ble testing program

Dependencies:   BleSerial Cli ConfigFile MbedJSONValue

Committer:
twixx
Date:
Wed Jan 03 17:08:52 2018 +0000
Revision:
1:d4e23495812a
Parent:
0:1d8829c32cd5
no changes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
twixx 0:1d8829c32cd5 1 This example creates and updates a standard Battery Level service containing a single
twixx 0:1d8829c32cd5 2 GATT characteristic.
twixx 0:1d8829c32cd5 3
twixx 0:1d8829c32cd5 4 The [battery service transmits](https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.battery_service.xml) a device's battery level in percentage, with 100% being a fully charged battery and 0% being a fully drained battery.
twixx 0:1d8829c32cd5 5
twixx 0:1d8829c32cd5 6 Although the sample application runs on a BLE device, it doesn't show the device's real battery level (because that changes very slowly and will make for a dull example). Instead, it transmits a fake battery level that starts at 50% (half charged). Every half second, it increments the battery level, going in single increments until reaching 100% (as if the battery is charging). It then drops down to 20% to start incrementing again.
twixx 0:1d8829c32cd5 7
twixx 0:1d8829c32cd5 8 # Running the application
twixx 0:1d8829c32cd5 9
twixx 0:1d8829c32cd5 10 ## Requirements
twixx 0:1d8829c32cd5 11
twixx 0:1d8829c32cd5 12 The sample application can be seen on any BLE scanner on a smartphone. If you don't have a scanner on your phone, please install :
twixx 0:1d8829c32cd5 13
twixx 0:1d8829c32cd5 14 - [nRF Master Control Panel](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) for Android.
twixx 0:1d8829c32cd5 15
twixx 0:1d8829c32cd5 16 - [LightBlue](https://itunes.apple.com/gb/app/lightblue-bluetooth-low-energy/id557428110?mt=8) for iPhone.
twixx 0:1d8829c32cd5 17
twixx 0:1d8829c32cd5 18 Hardware requirements are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
twixx 0:1d8829c32cd5 19
twixx 0:1d8829c32cd5 20 ## Building instructions
twixx 0:1d8829c32cd5 21
twixx 0:1d8829c32cd5 22 Building instructions for all samples are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
twixx 0:1d8829c32cd5 23
twixx 0:1d8829c32cd5 24 ## Checking for success
twixx 0:1d8829c32cd5 25
twixx 0:1d8829c32cd5 26 **Note:** Screens captures depicted below show what is expected from this example if the scanner used is *nRF Master Control Panel* version 4.0.5. If you encounter any difficulties consider trying another scanner or another version of nRF Master Control Panel. Alternative scanners may require reference to their manuals.
twixx 0:1d8829c32cd5 27
twixx 0:1d8829c32cd5 28 1. Build the application and install it on your board as explained in the building instructions.
twixx 0:1d8829c32cd5 29 1. Open the BLE scanner on your phone.
twixx 0:1d8829c32cd5 30 1. Start a scan.
twixx 0:1d8829c32cd5 31
twixx 0:1d8829c32cd5 32 ![](img/start_scan.png)
twixx 0:1d8829c32cd5 33
twixx 0:1d8829c32cd5 34 **figure 1** How to start scan using nRF Master Control Panel 4.0.5
twixx 0:1d8829c32cd5 35
twixx 0:1d8829c32cd5 36 1. Find your device; it should be named `BATTERY`.
twixx 0:1d8829c32cd5 37
twixx 0:1d8829c32cd5 38 ![](img/scan_result.png)
twixx 0:1d8829c32cd5 39
twixx 0:1d8829c32cd5 40 **figure 2** Scan results using nRF Master Control Panel 4.0.5
twixx 0:1d8829c32cd5 41
twixx 0:1d8829c32cd5 42 1. Establish a connection with your device.
twixx 0:1d8829c32cd5 43
twixx 0:1d8829c32cd5 44 ![](img/connection.png)
twixx 0:1d8829c32cd5 45
twixx 0:1d8829c32cd5 46 **figure 3** How to establish a connection using Master Control Panel 4.0.5
twixx 0:1d8829c32cd5 47
twixx 0:1d8829c32cd5 48 1. Discover the services and the characteristics on the device. The *Battery service* has the UUID 0x180F and includes the *Battery level* characteristic which has the UUID 0x2A19.
twixx 0:1d8829c32cd5 49
twixx 0:1d8829c32cd5 50 ![](img/discovery.png)
twixx 0:1d8829c32cd5 51
twixx 0:1d8829c32cd5 52 **figure 4** Representation of the Battery service using Master Control Panel 4.0.5
twixx 0:1d8829c32cd5 53
twixx 0:1d8829c32cd5 54 1. Register for the notifications sent by the *Battery level* characteristic.
twixx 0:1d8829c32cd5 55
twixx 0:1d8829c32cd5 56 ![](img/register_to_notifications.png)
twixx 0:1d8829c32cd5 57
twixx 0:1d8829c32cd5 58 **figure 5** How to register to notifications using Master Control Panel 4.0.5
twixx 0:1d8829c32cd5 59
twixx 0:1d8829c32cd5 60
twixx 0:1d8829c32cd5 61 1. You should see the battery level value change every half second. It begins at 50, goes up to 100 (in steps of 1), resets to 20 and so on.
twixx 0:1d8829c32cd5 62
twixx 0:1d8829c32cd5 63 ![](img/notifications.png)
twixx 0:1d8829c32cd5 64
twixx 0:1d8829c32cd5 65 **figure 6** Notifications view using Master Control Panel 4.0.5
twixx 0:1d8829c32cd5 66
twixx 0:1d8829c32cd5 67 If you can see the characteristic, and if its value is incrementing correctly, the application is working properly.
twixx 0:1d8829c32cd5 68