rikard-engstrom / esp32-ble-hrm-garmin

Basic example to explore what is needed to be able to create a service that a garmin watch can connect to.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Heart rate service that a garmin watch can connect to

It was easy to create a heart rate service and to connect to it with nrfConnect

I started with implementing the bare minimum. Since most parts of the hrm specifications are optional, the first step was to do these parts.

 Service: Heart Rate UUID: 180D
    Characteristic: Heart Rate Measurement UUID: 2A37
        Descriptor: Client Characteristic Configuration UUID: 2902

Examin the service with nrfConnect it looks like it was working fine with working notifications.

My Garmin FR935 could discover the service but failed to connect to it.

I tried different things with advertising and descriptors. I eventually started to explor what a Wahoo TICKR exposed and implemented the services one by one. Nothing changed until i added body sensor location. With that in place the watch could use the service.

I haven't done any tests by removing things again to se what is needed but i think the only thing needed is.

 Service: Heart Rate UUID: 180D
    Characteristic: Heart Rate Measurement UUID: 2A37
        Descriptor: Client Characteristic Configuration UUID: 2902
    Characteristic: Body Sensor Location UUID: 2A38

About

Basic example to explore what is needed to be able to create a service that a garmin watch can connect to.

License:The Unlicense


Languages

Language:C++ 100.0%