Biofeedback in the browser
Using the Bluetooth WebAPI to get heart rate variability data from a chest strap, in a browser.
This project uses the WebBluetooth API, which requires specific browser configurations to function correctly.
For detailed instructions on enabling WebBluetooth in your browser, please refer to the following resources:
- Chrome: Enabling WebBluetooth in Chrome
- Firefox: Enabling WebBluetooth in Firefox
- Safari: Currently, Safari does not support the WebBluetooth API.
Testing with a Polar H9 chest strap. Should hopefully work with others.
To calculate frequency domain metrics, our approach will be to:
- Calculate them in real-time via a sliding window.
- Introduce the concept of a logged session and be able to fully compute the frequency domain metrics for a whole session or across windows of that session.
This project couldn't have been done without the work of those who came before:
- Elite HRV - One of the best HRV tracking tools, who for years have been evangelizing the practice of HRV biofeedback. They've been superheroes in making HRV accessible and actionable.
- OpenHRV built one of the most robust and friendliest HRV apps in Python. Their work made it really easy to go beyond counting BPM data with the BLE heart rate sensors.
- ble-heart-rate-demo which showed how straightforward it was to read from the bluetooth webapi and start working with raw heart rate data.
- roaders/ble-hrm which showed how cleanly the heart rate datastream could cleanly be wrapped up in a module with the core HRV inputs captured.