BLE GAP Button example

This example is a fork of the following mbed-os example:

https://developer.mbed.org/teams/mbed-os-examples/code/mbed-os-example-ble-GAPButton/

Please read the documentation in this page.

Committer:
mbed_official
Date:
Thu Jul 28 23:14:40 2016 +0100
Revision:
1:7f4e41bacb3c
Parent:
0:8f898b781de2
Child:
2:e532bbe3fd8e
Merge branch 'master' of https://github.com/ARMmbed/mbed-os-example-ble


Commit copied from ./src/github.com/ARMmbed/mbed-os-example-ble

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 1:7f4e41bacb3c 1 # Button count over GAP
mbed_official 1:7f4e41bacb3c 2
mbed_official 1:7f4e41bacb3c 3 This application shows how to use GAP to transmit a simple value to disconnected peer listening for advertisement every time that a value is updated:
mbed_official 1:7f4e41bacb3c 4
mbed_official 1:7f4e41bacb3c 5 1. The value is a count of how many times a button on the device was pressed (the code actually monitors the button's releases, not press downs).
mbed_official 1:7f4e41bacb3c 6
mbed_official 1:7f4e41bacb3c 7 1. We transmit the value in the SERVICE_DATA field of the advertising payload.
mbed_official 1:7f4e41bacb3c 8
mbed_official 1:7f4e41bacb3c 9 # Running the application
mbed_official 1:7f4e41bacb3c 10
mbed_official 1:7f4e41bacb3c 11 ## Requirements
mbed_official 1:7f4e41bacb3c 12
mbed_official 1:7f4e41bacb3c 13 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 :
mbed_official 1:7f4e41bacb3c 14
mbed_official 1:7f4e41bacb3c 15 - [nRF Master Control Panel](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) for Android.
mbed_official 1:7f4e41bacb3c 16
mbed_official 1:7f4e41bacb3c 17 - [LightBlue](https://itunes.apple.com/gb/app/lightblue-bluetooth-low-energy/id557428110?mt=8) for iPhone.
mbed_official 1:7f4e41bacb3c 18
mbed_official 1:7f4e41bacb3c 19 Hardware requirements are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
mbed_official 1:7f4e41bacb3c 20
mbed_official 1:7f4e41bacb3c 21 ## Building instructions
mbed_official 1:7f4e41bacb3c 22
mbed_official 1:7f4e41bacb3c 23 Building instructions for all samples are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
mbed_official 1:7f4e41bacb3c 24
mbed_official 1:7f4e41bacb3c 25 ## Checking for success
mbed_official 1:7f4e41bacb3c 26
mbed_official 1:7f4e41bacb3c 27 **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.
mbed_official 1:7f4e41bacb3c 28
mbed_official 1:7f4e41bacb3c 29 1. Build the application and install it on your board as explained in the building instructions.
mbed_official 1:7f4e41bacb3c 30
mbed_official 1:7f4e41bacb3c 31 1. Open the BLE scanner on your phone.
mbed_official 1:7f4e41bacb3c 32
mbed_official 1:7f4e41bacb3c 33 1. Start a scan.
mbed_official 1:7f4e41bacb3c 34
mbed_official 1:7f4e41bacb3c 35 ![](img/start_scan.png)
mbed_official 1:7f4e41bacb3c 36
mbed_official 1:7f4e41bacb3c 37 **figure 1** How to start scan using nRF Master Control Panel 4.0.5.
mbed_official 1:7f4e41bacb3c 38
mbed_official 1:7f4e41bacb3c 39 1. Find your device; it should be named `GAPButton`; and look at the advertisement broadcasted by your device (there is no need to connect to your device).
mbed_official 1:7f4e41bacb3c 40
mbed_official 1:7f4e41bacb3c 41 ![](img/discovery.png)
mbed_official 1:7f4e41bacb3c 42
mbed_official 1:7f4e41bacb3c 43 **figure 2** Scan results using nRF Master Control Panel 4.0.5.
mbed_official 1:7f4e41bacb3c 44
mbed_official 1:7f4e41bacb3c 45 1. The Service Data field of the advertisement packet broadcasted by your device reflects the button press count. The starting value is 0.
mbed_official 1:7f4e41bacb3c 46
mbed_official 1:7f4e41bacb3c 47 ![](img/initial_state.png)
mbed_official 1:7f4e41bacb3c 48
mbed_official 1:7f4e41bacb3c 49 **figure 3** Initial state of the button using nRF Master Control Panel 4.0.5.
mbed_official 1:7f4e41bacb3c 50
mbed_official 1:7f4e41bacb3c 51 1. Press the button on the device.
mbed_official 1:7f4e41bacb3c 52
mbed_official 1:7f4e41bacb3c 53 ![](img/first_press.png)
mbed_official 1:7f4e41bacb3c 54
mbed_official 1:7f4e41bacb3c 55 **figure 3** State after 1 button press using nRF Master Control Panel 4.0.5.
mbed_official 1:7f4e41bacb3c 56
mbed_official 1:7f4e41bacb3c 57 1. The Service Data field value of the advertisement packet should change every time you press the button.
mbed_official 1:7f4e41bacb3c 58
mbed_official 1:7f4e41bacb3c 59 ![](img/result.png)
mbed_official 1:7f4e41bacb3c 60
mbed_official 1:7f4e41bacb3c 61 **figure 3** State after 6 button press using nRF Master Control Panel 4.0.5.
mbed_official 1:7f4e41bacb3c 62
mbed_official 1:7f4e41bacb3c 63 ## Note
mbed_official 1:7f4e41bacb3c 64
mbed_official 1:7f4e41bacb3c 65 Since broadcasting is not reliable and your phone may scan intermittently, it is possible that your phone will miss button updates.