nRF51 SDK - S110 SoftDevice
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Blood Glucose Application

The Blood Glucose Application is an example that implements the Blood Glucose profile using the hardware delivered in the nRF51 Development Kit.

The application includes the two services in the Blood Glucose profile:

In addition, use of the Battery Service is also demonstrated.

When the application starts, a timer for generating battery measurements is started.

The actual measurements are hard-coded values. They get added when connected and bonded to a central, at each press of the button 1. The timestamps are simulated and it uses the Record Access Control point and implements the filtering on sequence number. It supports only glucose measurement characteristic, not glucose context.

Note
This application is not power optimized!
The application will stop advertising after 3 minutes and go to system-off mode. Push the button 1 to restart advertising.

Setup

The name of the example is ble_app_gls_s110_pca10028. If you are not using the Keil Pack Installer, you can find the source code and project file of the example in the following folder: <InstallFolder>\Nordic\nrf51\examples\ble_peripheral\ble_app_gls

Button assignments:

  • Button 1: Wake up from system-off and restart advertising; in a connection, create a new record.
  • Button 2: Wake up, erase all bonds, and restart advertising.

MITM protection

The Blood Glucose Application secures the bond using Man-in-the-Middle protection (MITM). A passkey must be entered at the central to complete the bonding and ensure MITM protection. The Blood Glucose Application will present the passkey during bonding. It is sent on the UART. It is therefore important that UART is set up correctly on the receiving side. The application uses the following UART settings:

  • Baud rate: 38.400
  • 8 data bits
  • 1 stop bit
  • No parity
  • HW flow control: RTS/CTS

Demonstrating the Blood Glucose Meter Profile

The Blood Glucose Meter Profile uses the Record Access Control Point characteristic to access all measurements. This means that the sensor does not automatically send new measurements, but the collector has to fetch them writing request to the control point (see http://developer.bluetooth.org/Pages/default.aspx for more detail on the RACP characteristic).

Testing

Test the Glucose Meter Application with the nRF Toolbox app, which is available on both iOS (Apple Store) and Android (Google Play).

You can also test the application with the Master Control Panel by performing the following steps:

  1. Compile and program the application. Observe that the BSP_INDICATE_ADVERTISING state is indicated.
  2. Connect and to the device from Master Control Panel (the device will be advertising as 'Nordic_Glucose')
  3. Bond to the device. A new window opens up and asks for a passkey. Enter the key received over the UART.
  4. Perform service discovery. Observe that the BSP_INDICATE_CONNECTED state is indicated.
  5. Click the 'Enable services' button on the Master Control Panel. Observe that Battery Level notifications are received every 10 seconds.
  6. Press Button 1 five times.
  7. Do a Read all records operation:
    • Write 0101 (OpCode : REPORT_STORED_RECORDS, Operator : ALL_STORED_RECORDS) to Record Access
    • Control Point Characteristic (UUID 0x2A52).
    • Observe that you receive five notification of the glucose measurements(UUID 0x2A18) and one indication of the RACP indicating success (06000101);
  8. Read the number of stored records:
    • Write 0401 (OpCode: REPORT_NUM_STORED_RECORDS, Operator: ALL_STORED_RECORDS) to Record Access Control Point
    • Characteristic (UUID 0x2A52).
    • Observe that you get an indication of the RACP giving you the number of records, 5 (05000500).