Friday, October 23, 2020

Movesense Medical ECG - improving the waveform and HRV accuracy

One of the troublesome issues involving the Movesense Medical ECG module has been waveform distortion.  For most arrhythmia identification purposes this probably has minimal impact, however with HRV matters it could be critical.  In particular, the fractal related DFA a1 should be affected by loss of RR peak precision.  The following waveform is what we want:

This is from a Biopac MP 36, high quality ECG with a sample rate of 1000 Hz.

Unfortunately, this is what we can get from the Movesense ECG:

There are many permutations of how the R peak sways side to side - which should create a timing issue for an index of fractal dynamics and self similarity (DFA a1).

Well, I finally figured it out and how to fix it!  I have tried about everything to tame the distortion and noticed that if I held my breath it looked ok.  On the other hand, during a deep inspiration, the wave looked like this:

Now we are getting somewhere.  So, some sort of muscular or thoracic motion is throwing off the signal.  What I did next was use the gel electrode kit.


Putting the electrodes high on the lateral upper chest gave me this beautiful waveform (at 250 Hz sample rate):

This is almost identical to the Biopac ECG signal above.  In addition, during an hour session of cycling, the signal remained this way - no distortion, sway or broadening.

Next step was to compare the Movesense to the commonly used Polar H10.  I'm not implying that the Polar is a gold standard device, but it's the only other HRM I have (that I trust).   

A standard cycling ramp was done - 5 watts/min, 20 minutes, 130 to 230 watts.  The session also involved a 3 minute max, 1 minute max and zone 1 intensity (2 hour total).  To verify proper synchronization of time points, here is a Bland Altman analysis of heart rate.  For those not familiar with the Bland Altman, it's simply the difference between methods on the Y axis vs the average between the methods on the X axis.  The closer to zero the mean line (thick blue) is, the better.  The average artifact for the Polar was between 1 and 6% depending on intensity.  Artifact in the Movesense was near zero for the ramp, but picked up for the sprints to about 5%.

  • What we see here is throughout the entire ramp, the heart rate pairs deviated from each other by an average of near zero (including 170 bpm).

The ramp:

  • The Movesense medical and H10 tracked very closely over time.  The Polar H7 seems to have under read the DFA a1 somewhat.  This was reflected in the Bland Altman plot between paired values over time:

  • The Polar mean difference was about 5% below the Movesense through the range of DFA a1.  The scatter (standard deviations - dashed blue lines) did widen at low DFA a1 (high intensity) and trended downward, signifying the potential for the H7 to read lower than the Movesense.

This was not a formal validation study, but you can get a sense that the numbers are close. 

Now that we have a solid waveform, a conjecture on why deep breathing (also seen at high intensity) will distort the waveform.  The diaphragm is a large muscle in the right location to interfere with a chest belt form factor ECG.  Some athletes may have more diaphragmatic mass, especially if the muscle is trained on a regular basis.  As per an old post, I have been doing regular diaphragm training for many months.  My suspicion is that this is the culprit in waveform distortion, hence, it should affect only a subset of users.  The fix is to shift the ECG sensors higher on the chest.

Chest belt worn high:

Here is an example of a waveform when the chest belt is worn high.  I did need to stabilize the belt with a piece of tape.  This is with a 250 sample rate:

With the resulting wave:


  • The Movesense ECG is capable of near gold standard R waveform morphology.  If one is plagued by waveform distortion, moving the sensor higher on the chest as shown in the above example should eliminate diaphragm related effects.  
  • To confirm diaphragm activity related effects, simply observe the waveform during deep breathing and brief breath holding.  
DFA a1 - running ramp and sample rate observations with the Movesense ECG 

Friday, October 9, 2020

Movesense Medical ECG V2.0 Firmware brief review

New firmware was just released today for the Movesense ECG module.  I thought it would be interesting to take a quick look at any potential changes or improvements.  One of the vexing issues I've encountered is the non uniform R wave peak seen at high zoom resolution.  I was most curious about this as well as the impact of the firmware on HRV precision (particularly DFA a1).  One of the easiest ways to compare the DFA a1 during exercise is to simply do an incremental ramp and plot the values over time.  We will take a look at that as well as the waveform in this post.

Although upgrading the firmware was not difficult, caution is recommended.  The bootloader needs to be updated as well, which opens the possibility of not being able to go back to the old firmware or even bricking the device (or in this case "coining", since it's the size of a coin).  Unfortunately, after the flash, the module was "dead", no LED light present and not seen by my phone.  After a battery pull, I was able to get it into bootloader mode and flashed it again - and it was successful.  Bottom line - be careful.

The android app is the same as previous with a max sample rate of 512 Hz.  I chose 500 Hz and had no issues with my Samsung S20.  Although I could not get the app to split screen or be present as a popup (force closes), it did stay active in the background with no issues even with screen off.

The ramp:

After a 20 minute easy warmup, here is the 20 minute ramp, 5 watts per minute for a total of 100 watts (130 to 230 watts over 20 min).

Here is the ramp in Kubios (auto correction mode) 

The nice linear decline in DFA a1 is in yellow.  Notice the "hump" in the middle of the ramp, that is due to the lone APC (with some aberrant conduction) noted in the top ECG tracing (green).

Let's compare to the Polar H10:

The yellow linear decline in DFA a1 is there as well, but the artifacts are high, between 2 to 6%.  The "hump" is not there, but could be lost among the artifact effects.

Comparison between the H10 and Medical Module:

This is difficult to easily do with confidence.  Alignment is always a concern, therefore a demonstration of how heart rate comparison is done - they should be matched at each time point.  The following is a plot of the heart rate of each device at every time point (ramp plus warm up):

  • The R correlation is very high and the slope of the line is 1.0 both indicating excellent agreement.

How does the DFA a1 look:

The "hump" is circled (that is related to the one aberrant ECG beat) and I would ignore that discrepancy.  However, it does seem that the Medical module was higher throughout the ramp, especially in the early portions.  Toward the end, things get a lot closer together.  At that time in the session, the H10 is subject to higher artifacts.  This does not mean the medical module is less precise in obtaining DFA a1 readings, for all we know, the H10 may be at fault.  Indeed, the DFA a1 response with an H10 has not been well studied during high intensity exercise.

The heart rate variability threshold - (otherwise known as the heart rate at DFA a1 = .75):

As previously described in some older posts, here is the derived heart rate at which DFA a1 equals .75.  It is quite possible this is closely related the first ventilatory threshold.

Heart rate vs DFA a1:

Polar H10:

Movesense Medical module:

  • Both have less than perfect plots up close (despite looking good in Kubios).  The reason is that this is a plot of heart rate vs DFA a1, not time vs DFA a1.  In most cases the curves match up very well, but there are exceptions
  • The Polar H10 reads about 8 bpm lower than the ECG module, not surprising given the under reading of DFA a1 throughout the test.
DFA a1 over time:

If we look at the DFA a1 drop over time, things look at lot better.  In this case one does a plot over time, figure the time at which DFA a1 = .75, then use the 5 watt per minute rise in power (starting at 130w) to calculate the DFA a1  = .75 crossover.

Polar H10:

Movesense Medical module:

It certainly appears that the Polar H10 is reading the DFA a1 decline with intensity differently than the Movesense Medical.  Only comparison to a high quality reference device will be able to fully resolve this.  In the past, the wattage at which DFA a1 = .75 has been between 170 to 190 watts, depending on conditioning, heat, stress and device.

Waveform morphology:

In the past, the ECG waveform was prone to distortion with the Movesense module.  Here are a few examples:

If the fractal related DFA a1 index is to be accurate, very precise pattern matching is optimal.  The above examples should logically have some kind of effect on the self similarity index.

Here are some waveform examples from today (all the same scale as above):

Although there is a mild degree of asymmetry, it appears better than previous.  I need to ask the development team if any changes were made in the firmware to cause this, or was this just a good day.

An interesting observation in waveform shape is the following.  I recorded a session using my wife riding the indoor bike trainer with the Medical module several weeks ago (old firmware).  The waveform was perfect (with only a 250 Hz sample rate):

It makes one wonder if changes in chest muscular activity or dimensional differences could be factors as well.  I'm considerably larger with more chest muscle present - items that need to be accounted for in the signal filtering software.

Maximum effort quality:

This is an extract from a 30 second, all out Wingate test done today:

  • The top panel is the ECG tracing, bottom is the heart rate.  Max heart rate was 171 bpm (green line).
  • Note the excellent quality of the ECG, minimal noise despite substantial usage of the upper body for stabilization on the bike.  This would come in handy for arrhythmia. identification


  • The new firmware for the Movesense medical module was successfully flashed - but do so cautiously.
  • Waveform symmetry appears better.
  • Measurement of the fractal based HRV index, DFA a1 seems to be read a bit higher with the Movesense than the Polar H10.  Which one is correct will need better study and testing.  However, do not assume equivalence device to device.
  • As previously noted, Movesense artifact rejection is impressive.  Even at maximal intensity, the ECG is readable.  The Polar H10 had artifact rates in the 5 to 6% range during that time.