I spent many hours this week learning about BLE.  I've never used any BLE devices in projects before, so I needed to get up to date.

I found some good training videos online.

This set of videos from Ellisys is very good:

https://www.youtube.com/watch?v=eZGixQzBo7Y&list=PLYj4Cw17Aw7ypuXt7mDFWAyy6P661TD48

Nordic Semiconductor also posted a few BLE videos:

https://www.youtube.com/watch?v=pLgnHuGI69s

https://www.youtube.com/watch?v=YAADUQ_Vxpk

It's interesting that one module can have more than one BLE role at the same time.

The basic protocol for data from a sensor is by declaring it as a service characteristic.

Some of the BLE definitions can be found in BLE_PeripheralServer.h

 

/** \brief Start of <i>Manufacturer Specific Data</i> containing ON
 * Semiconductor <i>Company Identifier Code</i> <t>0x0362</t>.
 */
#define BDK_BLE_MANUFACTURER_ID        "\xff\x62\x03"
#define BDK_BLE_MANUFACTURER_ID_LENGTH 3

 

Some of these services and characteristic UUIDs are already defined in the BLE spec.

https://www.bluetooth.com/specifications/

https://www.bluetooth.com/specifications/gatt/characteristics/

https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members/

 

Other useful information comes from road test reviews like the one from shabaz

ON Semi RSL10-SENSE-DB-GEVK Sensor Board - Review

I spent some time "fiddling" with his RSL10 browser app.

Then I found the ON semiconductor docs:

C:\Users\username\ON_Semiconductor\PACK\ONSemiconductor\RSL10\3.2.608\documentation\ceva

Now I feel confident enough to try and modify the example code.