Bluetooth Low Energy and Stepper Motor enabled device, compatible with the BlueST Protocol.

Dependencies:   X_NUCLEO_IHM01A1

Bluetooth Low Energy and Stepper Motor enabled device, compatible with the BlueST Protocol.

Committer:
Davidroid
Date:
Tue Apr 17 14:59:28 2018 +0000
Revision:
0:f87cdc08dcd1
Bluetooth Low Energy and Stepper Motor enabled device.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Davidroid 0:f87cdc08dcd1 1 To help you create your own BLE services, we have created this service template.
Davidroid 0:f87cdc08dcd1 2 The LED example demonstrates the use of a read-write characteristic to control a
Davidroid 0:f87cdc08dcd1 3 LED through a phone app.
Davidroid 0:f87cdc08dcd1 4
Davidroid 0:f87cdc08dcd1 5 The template covers:
Davidroid 0:f87cdc08dcd1 6
Davidroid 0:f87cdc08dcd1 7 * Setting up advertising and connection states.
Davidroid 0:f87cdc08dcd1 8 * Assigning UUIDs to the service and its characteristic.
Davidroid 0:f87cdc08dcd1 9 * Creating an input characteristic: read-write, boolean. This characteristic offers control of the LED.
Davidroid 0:f87cdc08dcd1 10 * Constructing a service class and adding it to the BLE stack.
Davidroid 0:f87cdc08dcd1 11
Davidroid 0:f87cdc08dcd1 12 # Running the application
Davidroid 0:f87cdc08dcd1 13
Davidroid 0:f87cdc08dcd1 14 ## Requirements
Davidroid 0:f87cdc08dcd1 15
Davidroid 0:f87cdc08dcd1 16 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 :
Davidroid 0:f87cdc08dcd1 17
Davidroid 0:f87cdc08dcd1 18 - [nRF Master Control Panel](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) for Android.
Davidroid 0:f87cdc08dcd1 19
Davidroid 0:f87cdc08dcd1 20 - [LightBlue](https://itunes.apple.com/gb/app/lightblue-bluetooth-low-energy/id557428110?mt=8) for iPhone.
Davidroid 0:f87cdc08dcd1 21
Davidroid 0:f87cdc08dcd1 22 Hardware requirements are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
Davidroid 0:f87cdc08dcd1 23
Davidroid 0:f87cdc08dcd1 24 *NOTE:* If you have more than a single mbed board (e.g. nrf51dk or mkit) you can
Davidroid 0:f87cdc08dcd1 25 run the BLE_LED and BLE_LEDBlinker at the same time. For more information please
Davidroid 0:f87cdc08dcd1 26 refer to the BLE_LEDBlinker demo.
Davidroid 0:f87cdc08dcd1 27
Davidroid 0:f87cdc08dcd1 28 ## Building instructions
Davidroid 0:f87cdc08dcd1 29
Davidroid 0:f87cdc08dcd1 30 Building instructions for all samples are in the [main readme](https://github.com/ARMmbed/mbed-os-example-ble/blob/master/README.md).
Davidroid 0:f87cdc08dcd1 31
Davidroid 0:f87cdc08dcd1 32 ## Checking for success
Davidroid 0:f87cdc08dcd1 33
Davidroid 0:f87cdc08dcd1 34 **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.
Davidroid 0:f87cdc08dcd1 35
Davidroid 0:f87cdc08dcd1 36
Davidroid 0:f87cdc08dcd1 37 1. Build the application and install it on your board as explained in the building instructions.
Davidroid 0:f87cdc08dcd1 38 1. Open the BLE scanner on your phone.
Davidroid 0:f87cdc08dcd1 39
Davidroid 0:f87cdc08dcd1 40 1. Start a scan.
Davidroid 0:f87cdc08dcd1 41
Davidroid 0:f87cdc08dcd1 42 ![](img/start_scan.png)
Davidroid 0:f87cdc08dcd1 43
Davidroid 0:f87cdc08dcd1 44 **figure 1** How to start scan using nRF Master Control Panel 4.0.5
Davidroid 0:f87cdc08dcd1 45
Davidroid 0:f87cdc08dcd1 46 1. Find your device; it should be named `LED`.
Davidroid 0:f87cdc08dcd1 47
Davidroid 0:f87cdc08dcd1 48 ![](img/scan_results.png)
Davidroid 0:f87cdc08dcd1 49
Davidroid 0:f87cdc08dcd1 50 **figure 2** Scan results using nRF Master Control Panel 4.0.5
Davidroid 0:f87cdc08dcd1 51
Davidroid 0:f87cdc08dcd1 52 1. Establish a connection with your device.
Davidroid 0:f87cdc08dcd1 53
Davidroid 0:f87cdc08dcd1 54 ![](img/connection.png)
Davidroid 0:f87cdc08dcd1 55
Davidroid 0:f87cdc08dcd1 56 **figure 3** How to establish a connection using Master Control Panel 4.0.5
Davidroid 0:f87cdc08dcd1 57
Davidroid 0:f87cdc08dcd1 58 1. Discover the services and the characteristics on the device. The *LED service* has the UUID `0xA000` and includes the *LED state characteristic* which has the UUID `0xA001`. Depending on your scanner, non standard 16-bit UUID's can be displayed as 128-bit UUID's. If it is the case the following format will be used: `0000XXXX-0000-1000-8000-00805F9B34FB` where `XXXX` is the hexadecimal representation of the 16-bit UUID value.
Davidroid 0:f87cdc08dcd1 59
Davidroid 0:f87cdc08dcd1 60 ![](img/discovery.png)
Davidroid 0:f87cdc08dcd1 61
Davidroid 0:f87cdc08dcd1 62 **figure 4** Representation of the Led service using Master Control Panel 4.0.5
Davidroid 0:f87cdc08dcd1 63
Davidroid 0:f87cdc08dcd1 64 1. Open the write pannel of the *LED state* characteristic.
Davidroid 0:f87cdc08dcd1 65
Davidroid 0:f87cdc08dcd1 66 ![](img/write_characteristic.png)
Davidroid 0:f87cdc08dcd1 67
Davidroid 0:f87cdc08dcd1 68 **figure 5** How to read and write a characteristic value using Master Control Panel 4.0.5
Davidroid 0:f87cdc08dcd1 69
Davidroid 0:f87cdc08dcd1 70
Davidroid 0:f87cdc08dcd1 71 1. The characteristic accept a 1 byte value:
Davidroid 0:f87cdc08dcd1 72
Davidroid 0:f87cdc08dcd1 73 ![](img/write_pannel.png)
Davidroid 0:f87cdc08dcd1 74
Davidroid 0:f87cdc08dcd1 75 **figure 6** Write characteristic pannel using Master Control Panel 4.0.5
Davidroid 0:f87cdc08dcd1 76
Davidroid 0:f87cdc08dcd1 77 * `0x00`: LED ON
Davidroid 0:f87cdc08dcd1 78
Davidroid 0:f87cdc08dcd1 79 ![](img/LED_ON.png)
Davidroid 0:f87cdc08dcd1 80
Davidroid 0:f87cdc08dcd1 81 **figure 6** Write characteristic pannel to set the LED on using Master Control Panel 4.0.5
Davidroid 0:f87cdc08dcd1 82
Davidroid 0:f87cdc08dcd1 83
Davidroid 0:f87cdc08dcd1 84 * `0x01`: LED OFF
Davidroid 0:f87cdc08dcd1 85
Davidroid 0:f87cdc08dcd1 86 ![](img/LED_OFF.png)
Davidroid 0:f87cdc08dcd1 87
Davidroid 0:f87cdc08dcd1 88 **figure 6** Write characteristic pannel to set the LED off using Master Control Panel 4.0.5
Davidroid 0:f87cdc08dcd1 89
Davidroid 0:f87cdc08dcd1 90
Davidroid 0:f87cdc08dcd1 91 1. Toggle the LED characteristic value and see the LED turn ON or turn OFF according to the value you set.
Davidroid 0:f87cdc08dcd1 92
Davidroid 0:f87cdc08dcd1 93 If you can see the characteristic, and the LED is turned on/off as you toggle its value, the application is working properly.