Skip to content

jbravo94/simple-ble-glucose-reader

Repository files navigation

Introduction

This project shows the proof of concept to read data via Bluetooth from a glucometer with a React Native application.

An showcase of the prototype can be viewed on YouTube by clicking on the image or here https://youtu.be/pEUnmSh7OcE:

Simple BLE Glucose Reader

UML

User Flow

User Flow

Bluetooth Communication Flow

BLE Flow

Observations

  • Roche its Accu-Chek Guide Glucometer is certified against Continua Guidelines which mention among others the standards IEEE 11073-10417 (Personal Health Device/Glucose Meter) and IEEE 11073-20601 (Personal Health Device/Optimized Exchange Protocol). It also is certified against the Bluetooth specification SIG Glucose Profile and Glucose Service.
  • Bytes in a data type greater that byte are transferred with ordering Little-Endian (https://en.wikipedia.org/wiki/Endianness).
  • Glucose data is stored as 16 bit signed float. The IEEE-11073 16-bit SFLOAT differes from the IEEE 754 16-bit!
  • The HCI Log, a raw bluetooth communication dump, was hughely useful when explored with Wireshark.
  • Bluetooth services must first be retrieved before any command can be sent which does modification e.g. write, enable notification, etc.
  • Some commands can only be performed after authentication and securing the transmission - this is usually done via normal pairing.

Tested Devices

Glucometer

  • Roche Accu-Chek Guide

Smartphone

  • Samsung Galaxy S20 (Android)

Links

Open Source Glucometer App xDrip

Relevant React Native Libraries

Bluetooth HCI Log

Signed Float in Bluetooth Standard