flutterservicebluetooth-lowenergyuuidxiaomi

Flutter MiBand services


I'm trying to read data from Xiaomi MiBand 5 with Flutter app. So far I've managed to connect to band and read heart rate.

I found which service and UUID is responsible for heart rate and now I'm trying to find which services are responsible for other values.

After discovering all services, it seems that there are 12 of them : 1800, 1801, 180a, 1530, 1811, 1802, 180d, fee0, fee1, 180f, 1812, 3802

180d is responsible for heart rate and I managed to read data from it.

But how can I read steps count?


Solution

  • The list of Bluetooth SIG adopted services are available at:

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

    I suspect some of those are custom services. The Bluetooth Base UUID is

    0000xxxx-0000-1000-8000-00805F9B34FB

    Examples include: 0x180F -> Battery Service UUID (128-bit UUID: 0000180F-0000-1000-8000-00805F9B34FB)

    If the value doesn't follow the base UUID then it will be a custom service.

    There are some generic scanning and exploration tools to explore the services being provided by devices.

    On mobile phones, the nRF Connect app is a good choice:

    https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-mobile

    On desktops machines, if you have a recent version of the Chrome browser then use the url chrome://bluetooth-internals/#devices to scan and inspect devices.