BangleApps/apps/bthrm
Gordon Williams 0ba8cef33c Convert Yes/No On/Off in settings to checkboxes, add /*LANG*/ to some more text strings 2023-02-23 11:46:49 +00:00
..
ChangeLog bthrm - Bump version 2022-12-03 00:05:48 +01:00
README.md bthrm - Update readme and changelog 2022-07-02 11:44:37 +02:00
app-icon.js Bluetooth Heart Rate Monitor - Overrides Bangle.js's build in heart rate monitor with an external Bluetooth one. 2021-10-21 13:42:46 +01:00
app.png Bluetooth Heart Rate Monitor - Overrides Bangle.js's build in heart rate monitor with an external Bluetooth one. 2021-10-21 13:42:46 +01:00
boot.js bthrm - Move code into lib to boot faster if disabled 2022-10-30 16:41:28 +01:00
bthrm.js Convert Yes/No On/Off in settings to checkboxes, add /*LANG*/ to some more text strings 2023-02-23 11:46:49 +00:00
default.json bthrm - Add debug option for active scanning 2022-11-16 17:30:52 +01:00
lib.js bthrm - Emit copies of events when changing 2022-12-03 00:05:43 +01:00
metadata.json bthrm - Correctly handle 0 values 2022-12-04 16:53:16 +01:00
recorder.js bthrm - Fix recording internal sensor 2022-11-12 22:47:03 +01:00
screen.png bthrm - Correctly handle 0 values 2022-12-04 16:53:16 +01:00
settings.js bthrm - Add debug option for active scanning 2022-11-16 17:30:52 +01:00

README.md

Bluetooth Heart Rate Monitor

When this app is installed it overrides Bangle.js's build in heart rate monitor with an external Bluetooth one.

HRM is requested it searches on Bluetooth for a heart rate monitor, connects, and sends data back using the Bangle.on('HRM') event as if it came from the on board monitor.

This means it's compatible with many Bangle.js apps including:

It it NOT COMPATIBLE with Heart Rate Monitor as that requires live sensor data (rather than just BPM readings).

Usage

Just install the app, then install an app that uses the heart rate monitor.

Once installed you will have to go into this app's settings while your heart rate monitor is available for bluetooth pairing and scan for devices.

To disable this and return to normal HRM, uninstall the app or change the settings

Modes

  • Off - Internal HRM is used, no attempt on connecting to BT HRM.
  • Default - Replaces internal HRM with BT HRM and falls back to internal HRM if no valid measurements received.
  • Both - The BT HRM needs to be started explicitly by an app that wants to use it. BT HRM has its own event and is completely separated from the internal HRM. Apps not supporting the BT HRM will not see the BT HRM measurements.
  • Custom - Combine low level settings as you see fit.

Compatible Heart Rate Monitors

This works with any heart rate monitor providing the standard Bluetooth Heart Rate Service (180D) and characteristic (2A37). It additionally supports the location (2A38) characteristic and the Battery Service (180F), reporting that information in the BTHRM event when they are available.

So far it has been tested on:

  • CooSpo Bluetooth Heart Rate Monitor
  • Polar H10
  • Polar OH1
  • Wahoo TICKR X 2

Recorder plugin

The recorder plugin can record the BT HRM event (blue) and the original unchanged HRM event (green). This is mainly useful for debugging purposes or comparing the BT with the internal HRM, as the resulting "merged" HRM can be recordet using the default HRM recorder.

Internals

This replaces Bangle.setHRMPower with its own implementation.

TODO

  • A widget to show connection state?

Creator

Gordon Williams