beatmonitor
Naturalistic measurement of multi-person cardiac activity using open source smartwatch technology
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.4%) to scientific vocabulary
Keywords
Repository
Naturalistic measurement of multi-person cardiac activity using open source smartwatch technology
Basic Info
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 2
Topics
Metadata Files
README.md
Record cardiac activity with Bangle.js 2 smartwatches

Main publication
Publication forthcoming (see our poster)
Authors
Maya B. Flannery, Lauren Fink
Overview
BEATMonitor is a system for collecting cardiac activity data from multiple individuals simultaneously in naturalistic environments. The system uses open-source and low-cost technology (Bangle.js 2 smartwatches) to ensure it is accessible and shareable. We hope that the system is easy to setup and use, making it practical for diverse research and other applications. Additionally, the system aims to be customizable and easy to modify for other purposes, while also being well-tested to guarantee reliability. We encourage feedback to be used for further development and improvements.
This project contains two applications:
- A Bangle.js 2 smartwatch application that records timestamped heart rate and raw PPG sensor data at ~25 Hz.
- A node.js (local) web application that connects to multiple Bangle.js 2 watches via Bluetooth. This app allows for remote monitoring, starting/stopping records, time synchronization, and large file transfers.
Setup
This system was developed and tested (so far) on M1/M3 MacBooks (MacOS 14 Sonoma; MacOS 15 Sequoia).
[!NOTE] Testing required:
- [ ] Other Mac versions
- [ ] Linux
- [ ] Windows
1. Setting up the Bangle.js 2 watches
2. Setting up the multi-watch monitoring dashboard
3. Post-processing data
See Post-processing documentation and tutorial
Troubleshooting
Please let us know if you have any questions, problems, or suggestions by creating an issue here.
Studies
Research studies using BEATMonitor have included:
- LIVELab 10th Anniversary: The Innocents
- VOICES (That's What She Said)
- LIVELab 10th Anniversary: Double Pendulum – Synaptic Rodeo
- LIVELab 10th Anniversary: John Ellison – Some Kind of Wonderful
- LIVELab 10th Anniversary: Santee Smith and Kaha:wi Dance Theatre – Continuance Immersive Commemoration (Continuance)
- Canadian federal leaders' debate
License
BEATMonitor - Multi-person photoplethysmography using open-source smartwatch technology
Copyright (C) 2025 BEAT Lab
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Citation
This repository contains a CITATION.cff file. If you use this project, please cite it using the information in the file or use the "Cite this repository" button on GitHub for citation info.
Owner
- Name: beatlab-mcmaster
- Login: beatlab-mcmaster
- Kind: organization
- Repositories: 1
- Profile: https://github.com/beatlab-mcmaster
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: BEATmonitor
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Maya
family-names: Flannery
email: mayabflannery@gmail.com
affiliation: McMaster University
orcid: 'https://orcid.org/0000-0002-4763-7565'
- given-names: Lauren
family-names: Fink
email: finkl1@mcmaster.ca
affiliation: McMaster University
orcid: 'https://orcid.org/0000-0001-6699-750X'
repository-code: 'https://github.com/beatlab-mcmaster/BEATmonitor'
abstract: >-
BEATMonitor is a system for collecting cardiac activity
data from multiple individuals simultaneously in
naturalistic environments. The system uses open-source and
low-cost technology (Bangle.js 2 smartwatches) to ensure
it is accessible and shareable.
keywords:
- heartbeat
- dashboard
- photoplethysmography
- PPG
- smartwatch
- app
- node-js
- bluetooth
- python
license: GPL-3.0
commit: Revision 250427
version: v0.2.250427
date-released: '2025-04-27'
identifiers:
- type: doi
value: 10.5281/zenodo.15297806
GitHub Events
Total
- Release event: 1
- Push event: 4
- Public event: 1
- Create event: 1
Last Year
- Release event: 1
- Push event: 4
- Public event: 1
- Create event: 1
Dependencies
- 615 dependencies
- @babel/cli ^7.24.8 development
- @babel/core ^7.25.2 development
- @babel/node ^7.25.0 development
- @babel/preset-env ^7.25.3 development
- @babel/preset-typescript ^7.24.7 development
- @types/d3 ^7.4.3 development
- @types/express ^4.17.21 development
- @types/node ^22.5.0 development
- concurrently ^8.2.2 development
- nodemon ^3.1.4 development
- typescript ^5.5.4 development
- @abandonware/noble ^1.9.2-25
- @canvasjs/charts ^3.10.16
- csv ^6.3.10
- d3 ^7.9.0
- express ^4.19.2
- fs ^0.0.1-security
- socket.io ^4.7.5
- winston ^3.14.2
- dask 2024.12.1.*
- datashader 0.16.3.*
- flatten-dict 0.4.2.*
- holoviews
- jupyterlab 4.3.4.*
- neurokit2 0.2.10.*
- pandas 2.2.2.*
- plotly 5.24.1.*
- pyarrow 18.1.0.*
- python 3.11.0.*
- python-kaleido 0.2.1.*
- pytz 2024.2.*
- pyyaml 6.0.2.*
- selenium
- xarray 2025.1.1.*