Skip to content

IoT: Unreal Engine Polar H10 Heart Rate Monitoring Integration using LabStreamingLayer – UE 5.3

License

Notifications You must be signed in to change notification settings

brugr9/Heartbeat53

Repository files navigation

Unreal Engine Project "Heartbeat" – Readme


Animation Screenshot of Map_LSL_Demo PIE, Heartbeat Update

Unreal Engine Project "Heartbeat": Heart Rate Monitoring Integration

Description

An Unreal® Engine project as proof of concept for receiving physiological data from Polar® H10 heart rate sensor via Bluetooth and LabStreamingLayer.

  • Index Terms: Physiological Measuring, Electrocardiogram, Heart Rate Monitoring, Integration, Messaging, Internet of Things
  • Technology: Polar H10 HR Sensor with Chest Strap, Bluetooth Low Energy, LabStreamingLayer, Unreal Engine
  • Tags: BLE, ECG, HR, HRM, IoT, LSL, PolarH10, UE

Table of Contents

1. Concept

We setup a data flow as follows (see figure 1.1.):

Data Flow
Figure 1.1.: Data Flow

The Polar H10 sensor sends its data via Bluetooth Low Energy BLE (cp. [1]). Using the App PolarBLE we fetch the data and forward the same as LabStreamingLayer LSL streams (cp. [2] and [4]).

In the Unreal Engine we use the LabStreamingLayer Plugin (cp. [6]).

  • The plugin comes with an Actor Component LSLInlet. With the Inlet a LSL stream can be accessed in the Blueprint System and the received data can be processed.
  • The plugin comes also with an Actor Component LSLOutlet. The Outlet can be accessed in the Blueprint System and data can be streamed via LSL.

We record all the LSL streams using App Lab Recorder (cp. [5]).

2. Setup

2.1. Polar H10

  1. Wear the Polar H10 HR Sensor with Chest Strap.
  2. Assure that Polar H10 is visible via Bluethooth, resp. configure the H10 using Polar Beat App or Polar Flow App (see figures 2.1.1. and 2.1.2.).
  3. On your laptop activate Bluetooth and pair Polar H10, e.g., via Bluetooth LE Explorer (cp. [2], see figures 2.1.3., 2.1.4. and 2.1.5.).
App Polar Beat, Polar H10 Settings App Polar Flow, Polar H10 Settings
Figure 2.1.1.: App Polar Beat, Polar H10 Settings Figure 2.1.2.: App Polar Flow, Polar H10 Settings

Bluetooth LE Explorer, Tab Discover listing Polar H10
Figure 2.1.3.: Bluetooth LE Explorer, Tab Discover listing Polar H10

Bluetooth LE Explorer listing paired Polar H10
Figure 2.1.4.: Bluetooth LE Explorer listing paired Polar H10

Windows System Settings listing Polar H10 as connected
Figure 2.1.5.: Windows System Settings listing Polar H10 as connected

2.2. PolarBLE

Install application PolarBLE (cp. [4]). Start the same and push the 'Scan'-Button (see figure 2.2.1.). Search for the listed Polar H10 and click on the same to start streaming (see figure 2.2.2.). We may use app Lab Recorder (cp. [5]) to check if the streams are up and running (see figure 2.2.3.).

PolarBLE listing Polar H10 PolarBLE streaming from Polar H10
Figure 2.2.1.: PolarBLE scanning and listing Polar H10 Figure 2.2.2.: PolarBLE streaming from Polar H10

Lab Recorder listing LSL Streams from Polar H10 ACC and ECG Data
Figure 2.2.3.: Lab Recorder listing LSL Streams from Polar H10 ACC and ECG Data

2.3. Unreal Engine

  1. Using Epic Games Launcher install Unreal Engine version 5.3.
  2. Purchase Unreal Engine LabStreamingLayer Plugin as found on the Epic Games Marketplace FAB (cp. [6]) and install the same to Unreal Engine version 5.3.
  3. Clone UE project "Heartbeat53" using git, e.g., by git clone https://github.com/brugr9/Heartbeat53.git.

Epic Games Launcher listing Project Heartbeat53 and LabStreamingLayer Plugin
Figure 2.3.1.: Epic Games Launcher listing Project Heartbeat53 and LabStreamingLayer Plugin

3. UE Project Heartbeat

3.1. Startup

Startup the UE project "Heartbeat53". In the Unreal Engine Editor the LabStreamingLayer plugin is found under "Edit > Plugins > Installed > Input Devices > LabStreamingLayer Plugin" (see figure 3.1.2.).

Splash Screen of UE Project Heartbeat
Figure 3.1.1.: Splash Screen of UE Project "Heartbeat"

Unreal Engine Plugins Browser Tab listing LabStreamingLayer Plugin
Figure 3.1.2.: Unreal Engine Plugins Browser Tab listing "LabStreamingLayer Plugin"

3.2. Assets

3.3. LSL Actor Components

3.3.1. LSL Inlet

ECG:

LSL timestamp; sensor timestamp [ns]; timestamp [ms]; ecg [uV]
2022-07-19T00:57:03.166;599616465930684049;0.0;10952

ACC:

LSL timestamp; sensor timestamp [ns]; X [mg]; Y [mg]; Z [mg]
2022-07-19T00:57:22.763;599616485954551349;-746;56;631

3.3.2. LSL Outlet

While PIE, in app Lab Recorder push the Update-Button and check if the "UE_Heartbeat" stream gets listed (see figure 3.3.2.1.).

Lab Recorder listing LSL Streams from Polar H10 as well as from Unreal Engine
Figure 3.3.2.1.: Lab Recorder listing LSL Streams from Polar H10 as well as from Unreal Engine

Appendix

Acronyms

  • ACC — Acceleration
  • BLE — Bluetooth Low Energy
  • ECG — Electrocardiogram
  • HR — Heart Rate
  • IoT — Internet of Things
  • LSL — LabStreamingLayer
  • PIE — Play-in-Editor
  • PoC — Proof-of-Concept
  • SCCN — Swartz Center for Computational Neuroscience
  • UCSD — University of California, San Diego
  • UE — Unreal Engine

Glossary

System Integration and Coupling

System integration and coupling are central concepts in modern software development, enabling the support of complex and diverse workflows through tailored solutions:

  • System integration refers to the unification of functionalities within a single software, data into a shared structure, or processes through a common platform.
  • System coupling, on the other hand, describes the collaboration of specialized tools via well-coordinated interfaces.

mip Consult GmbH, https://mip-software.com/system-integration-and-coupling/

What is the Bluetooth transmission range of Polar H9/H10 HR sensor?

The transmission range with H9/H10 is 5 meters (16.4 ft) at the minimum in optimal conditions. Typically the range varies between 10 to 35 meters (32.8 to 114.8 ft), and in extremely rare top outdoors conditions, on an open field, the range can reach even up to 100 meters (328.1 ft). There are several variables that affect the range and therefore an exact range cannot be stated. The best range is achieved with line-of-sight positioning between the sensor and receiver. Indoors, obstacles such as concrete walls will attenuate the radio signal when passing through and the effective range will be drastically reduced, but on the other hand the radio signal can bounce from walls and thereby improve the range inside the room in cases where there is no direct line-of-sight situation between the sensor and receiver (for example, in a sports hall or gym).

Some other variables affecting the range are signals from other wireless devices (such as Wi-Fi stations or a large number of other Bluetooth devices nearby; even a microwave oven can interfere with the Bluetooth signal) and the quality of the receiver. Polar receivers are confirmed to meet the requirements. High air humidity can also affect the range in some cases. Furthermore, a human body creates considerably high attenuation for the Bluetooth radio signal and therefore, if you hold your receiver behind your back near your skin, the connection might be lost (for example, while speed skating)

Polar Electro Support, https://support.polar.com/en/support/what_is_the_bluetooth_transmission_range_of_polar_h10_hr_sensor

A. References

B. Readings

  • Chęć, A.; Olczak, D.; Fernandes, T. and Ferreira, H. (2015): Physiological Computing Gaming - Use of Electrocardiogram as an Input for Video Gaming. In: Proceedings of the 2nd International Conference on Physiological Computing Systems - PhyCS, ISBN 978-989-758-085-7; ISSN 2184-321X, pages 157-163. DOI: 10.5220/0005244401570163
  • Kothe, Christian et al. (2024): The Lab Streaming Layer for Synchronized Multimodal Recording. In: bioRxiv – The Preprint Server for Biology. Cold Spring Harbor Laboratory. DOI: 10.1101/2024.02.13.580071

C. Acknowledgements

D. Attribution

  • The word mark Unreal and its logo are Epic Games, Inc. trademarks or registered trademarks in the US and elsewhere.
  • The word mark Polar and its logos are trademarks of Polar Electro Oy.
  • The Bluetooth word mark and logos are registered trademarks owned by Bluetooth SIG, Inc.
  • Windows is a registered trademark of Microsoft Corporation.
  • From the Website of LabStreamingLayer:
    • "The Lab Streaming Layer was originally created by Christian Kothe while at the Swartz Center for Computational Neuroscience at the University of California, San Diego. The project is currently maintained by an international team of developers (see contributors), with contributions from LSL community users and hardware/software vendors."
    • "The LSL project has been funded in part by the Army Research Laboratory (under Cooperative Agreement Number W911NF-10-2-0022) and the National Institute of Neurological Disorders and Stroke (grant 3R01NS047293-06S1)."

E. Disclaimer

This documentation has not been reviewed or approved by the Food and Drug Administration FDA or by any other agency. It is the users responsibility to ensure compliance with applicable rules and regulations—be it in the US or elsewhere.

F. Citation

To acknowledge this work, please cite

Bruggmann, R. (2025): Unreal® Engine Project "Heartbeat" [Computer software], Version v5.3.1. Licensed under Creative Commons Attribution-ShareAlike 4.0 International. Online: https://github.com/brugr9/Heartbeat53


Creative Commons Attribution-ShareAlike 4.0 International License

Unreal® Engine Project "Heartbeat" © 2025 by Roland Bruggmann is licensed under Creative Commons Attribution-ShareAlike 4.0 International

About

IoT: Unreal Engine Polar H10 Heart Rate Monitoring Integration using LabStreamingLayer – UE 5.3

Topics

Resources

License

Stars

Watchers

Forks