Project timeline

A project log for uECG - a very small wearable ECG

It's cheap, doesn't use a specialized heart rate AFE and can blink LEDs with your pulse :)

the_3d6the_3d6 03/22/2019 at 15:190 Comments

We started this project in November 2018. At some point we just realized that we can make quite good ECG device, so why not? ))
At the end of December we assembled its first version. We (naturally) made a mistake in the PCB and due to it had to bypass buffer amplifier, directly connecting AFE to skin, which is a really bad option here - AFE has input impedance of only ~30 kOhm, while skin has impedance in 3 MOhm range, so signal is 100x times smaller than it could have been.
But even in such conditions signal was relatively ok (we had about 6 bit resolution) and allowed us to implement heart beat detector, so we blinked on-board LED and then made it blink a new year lights.

During Jan-Feb 2019 we slowly improved firmware and app, added on-board calculation of BPM, and some heart rate variability parameters such as SDNN, RMSSD, pNN50.

Then we made a significant improvement - increased ADC frequency from 122 Hz to 976 Hz (that involved changing readout procedure from poll-based to interrupt-based, and introduction of memory buffers for signal processing, so firmware got quite an update). At this rate, it became possible to take a closer look at 50 Hz noise from mains (in Europe frequency is 50 Hz, while in USA it is 60 Hz). In some conditions this noise becomes even stronger than signal, and often it is of comparable amplitude (it all depends on how close you are to a major power line at the moment).

Typical signal with noise

Instead of rather standard approach of filtering out 50 Hz band using FFT, we decided to use a different method: we estimate amplitude/phase of 50 Hz sine wave that best fits the signal during last few seconds, and subtract that wave from current signal. Wave parameters are slowly adjusting as new data become available, but slowly enough to almost ignore R peaks if they happen to have significant 50 Hz component. This way, mains noise is removed almost without affecting useful signal.

After filtering noise

This is the current state of the project, we expect to get much better signal once we'll assemble the second PCB version (which should happen really soon).