Skip to content

ASSIST-IoT-SRIPAS/infinitime-heart-rate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

About

This repository is a fork of the InfiniTime project, developed for the purposes of Pilot 2: Smart Safety of workers of the ASSIST-IoT Horizon 2020 project. It deploys a neural network based model to improve the quality of readings from the onboard heart rate sensor. The model has been developed keeping in mind the principles of frugality, which ensures that all existing InfiniTime functionalities operate smoothly.

The repository is archived in Zenodo: DOI

Contents

  • The main implementation of the model is in the HeartRateService.cpp file.
  • The model itself is in the model directory.
    • model.h5 is the model in the Keras H5 format.
    • filter_hr.c and filter_hr.h is the model converted to C by the keras2c library.

Authors

  • Kajetan Rachwał – implementation of the model and the preprocessing stages in InfiniTime, integration
  • Piotr Sowiński – training the model and designing the preprocessing stages

Used libraries

The implementation of the model uses the keras2c library by Rory Conlin. keras2c is licensed under the MIT license.

Reproducibility

The following software was used for building the RTOS and evaluating its performance:

  • Python 3.10.12
  • node: v17.9.1
  • npm: 8.19.3
  • lv_font_conv: "^1.5.2"

Images built with different versions of the software may yield different results.

Acknowledgements

This work is part of the ASSIST-IoT project that has received funding from the EU’s Horizon 2020 research and innovation programme under grant agreement No 957258.


What follows is the description of the InfiniTime project, which includes instructions for building and deployment of the solution on the PineTime smartwatch.

InfiniTime logo

Fast open-source firmware for the PineTime smartwatch with many features, written in modern C++.

New to InfiniTime?

Companion apps

Note : We removed mentions to NRFConnect as this app is closed source and recent versions do not work anymore with InfiniTime (the last version known to work is 4.24.3). If you used NRFConnect in the past, we recommend you switch to Gadgetbridge.

Development

Contributing

Build, flash and debug

API

Architecture and technical topics

Project management

Licenses

This project is released under the GNU General Public License version 3 or, at your option, any later version.

It integrates the following projects:

Credits

I’m not working alone on this project. First, many people create PR for this project. Then, there is the whole #pinetime community : a lot of people all around the world who are hacking, searching, experimenting and programming the Pinetime. We exchange our ideas, experiments and code in the chat rooms and forums.

Here are some people I would like to highlight:

  • Atc1441 : He works on an Arduino based firmware for the Pinetime and many other smartwatches based on similar hardware. He was of great help when I was implementing support for the BMA421 motion sensor and I²C driver.
  • Koen : He’s working on a firmware based on RiotOS. He integrated similar libs as me : NimBLE, LittleVGL,… His help was invaluable too!
  • Lup Yuen Lee : He is everywhere: he works on a Rust firmware, builds a MCUBoot based bootloader for the Pinetime, designs a Flutter based companion app for smartphones and writes a lot of articles about the Pinetime!