Simple heart rate app / bluetooth reverse engineering

Hi, I would like to get my bluetooth heart rate monitor working with some FOSS apps. So far on the f-droid repository I’ve only seen OpenTracks among the most updated ones but it seems to me it doesn’t work with mine. Is it a complicated thing to reverse engineer a bluetooth device? What FOSS tools are there?

Thanks

Maybe look at infinitime on Microsoft github, and gadgetbridge on F-Droid and codeberg. Pinetime watch can use ble to phone etc., but blobs may be involved.

1 Like

From my understanding most of these heart-rate monitors use a proprietary protocol ontop of Bluetooth called ANT.
Any corresponding apps likely have an ANT library with them for any interactions.
ANT also requires proprietary blobs on the host OS itself too.

1 Like

Depends on the sensor BLE heartrate is really simple (implemented in OpenTracks; code for parsing https://github.com/OpenTracksApp/OpenTracks/blob/35de5b6b264ad43b1c343a8323961db18b4874f4/src/main/java/de/dennisguse/opentracks/util/BluetoothUtils.java#L82 ).
ANT requires a blob and is not that widespread anymore.

For reverse engineering: use bluetoothctl on a Linux system.
Likely, the discovery phase is the problem.
PS/ about which device are we talking about?

3 Likes

openscale solves a similar problem for weight scales. They have a nice recipe here How-to-reverse-engineer-a-Bluetooth-4.x-scale.

1 Like