Apple watchOS Breaks External Heart Rate Monitor Connectivity

I have owned an Apple Watch since Series 2. I also had a Series 4 with cellular, and now own a Series 6, also with cellular. I bought the Apple Watch because it was rated as being the most accurate general purpose, wrist-based fitness tracker. There are certainly other options, and better ones just for running, but I went with Apple because I am fairly comfy in their ecosystem.

I’ve known for some time that wrist-based heart rate monitors (HRM) are inaccurate. My Apple Watch will show me at 180 bpm when I am working moderately/hard. My maximum heart rate is around 173 bpm, so, no. Just no.

As of watchOS 7, it’s like the Watch does not even try anymore. I will start my run and it’s a good half mile before it even can show a reading. When it finally does, it is wildly inaccurate. At a friend’s suggestion, I bought a Wahoo TICKR FIT a couple years ago. I wear it on my upper arm, and it gets within 1-2 bpm of what a chest strap Wahoo TICKR X gives. This is good enough for my purposes. For comparison, when the Apple Watch says I’m at 180 bpm, the Wahoo TICKRs will show me being somewhere in the 150s.

As of watchOS 8.4, things got worse. The Bluetooth connection between the Watch and three different HRMs (Wahoo TICKR Fit, Wahoo TICKR X, and Polar H10) all lose their connection to the watch within seconds of starting a workout. They periodically reconnect, but then continue to lose the connection. The end result is periods of accurate readings along with equal periods of inaccurate readings. The result is the same – useless, garbage data. On the Apple Watches, I test by pairing the HRM and using the Workout app. On my iPhone, I pair the devices and tested with Strava or the manufacturer’s apps.

To troubleshoot this, Apple sent me a new Apple Watch. It is running watchOS 7.6.1. While this version is buggy, it works and will reliably hold a connection with any of the three HRMs I have tried. When I paired a couple of the HRMs with a friend’s Apple Watch, running watchOS 8.4.2, she experienced the same, erratic and inaccurate behavior. So at this point, I have tried the combinations shown in the following table.

Apple DeviceWahoo TICKR XWahoo TICKR FitPolar H10
Series 6, Cellular, watchOS 8.4, 8.4.1, 8.4.2XXX
Series 4, Cellular, watchOS 8.4.2XX
Series 6, Cellular, watchOS 7.6.1
iPhone 13, iOS 15.3.1
✓ = Works as expected. X = Does not work reliably. – = Untested

I have gone well above and beyond what any customer should have to do to troubleshoot this. I have reported my findings to Apple and Wahoo at my own time and expense. And I have gotten zero positive results.

After weeks of troubleshooting, Apple reported back that the problem is with the third-party manufacturers. Apple will not work with me further to address the issue. Apple said they would work with the manufacturers, but not with me. As I only have the Wahoo devices (returning the Polar, since it behaved the same), that leaves them. Wahoo maintains no one else has reported this behavior, even though I have clearly demonstrated the issue with two of their products on two separate Apple Watches.

Wahoo’s website says that their products work with the Apple Watch.

https://www.wahoofitness.com/devices/heart-rate-monitors/tickr-fit-optical-heart-rate-monitor

So what’s a guy to do? I have clearly demonstrated the problem, but no one wants to own it. At this point, if I want reliable metrics, I need to stay on an old, buggy, insecure version of watchOS. I didn’t even get into the fact that I cannot activate cellular service on the replacement watch running watchOS 7.6.1. I’ll save that for another post.

UPDATE: As of watchOS 8.5 (2022-03-14) everything seems to be working again normally.

UPDATE: Nope, nope. As of 2022-03-17 it happened again.

You Don’t Need Running Shoes. Go Minimalist!

A Stack of New Balance Fresh Foams
A Fistful o’ Fresh Foams

From 2017 to early 2021, my go to running shoes were the New Balance Fresh Foam 1080 (I forget if they were version 9 or 10), and a pair of the New Balance Summit Unknown for trail running. In 2020 I went on a bit of a shopping spree and was trying all sorts of New Balance shoes, as I liked the wide toe box that didn’t mash my feet. I had an old pair of the Fresh Foam 960s, and bought a pair of the Fresh Foam 980s, as well as the Fresh Foam More. I liked my shows like I like my cappuccino – fresh and foamy.

Or so I thought.

Continue reading “You Don’t Need Running Shoes. Go Minimalist!”

33rd Annual Baystate Marathon

It’s been a while since I threw my hat over the fence, so here we go! I just registered for the 33rd annual Baystate Marathon. 26.2 miles of pure fun in the tradition of my Spartan ancestors*. I started running regularly in 2017, and embraced it in 2018. In March 2020 I ran 13.1 miles for the first time. I did 13.25 three weeks ago, then 14 last weekend. Sunday my running buddy/accountability partner and I will do 15.5, etc., as we build up to the event on October 17. The clock is ticking!

I have no goal other than to finish. I think that’s sufficient for now.

* No, I don’t really know if I had any Spartan ancestors, but my dad’s from Athens, so that’s close, right?

My Journey Into Analyzing Apple Health Data

I’ve owned an Apple Watch for years – since the Series 2. I’ve also been running consistently for years – three of them, to be precise. I also like data. I’ve been collecting data on my workouts via my phone and watch for years, but getting data off of the iPhone’s small screen has always been problematic.

“But Peter!” you say “Apple lets you export data from the Health app!” Yes, it does. Have you ever looked at it? It looks something like this. Correction – it looks EXACTLY like this.

Well-structured XML

It’s XML data, and that doesn’t easily lend itself to a graph. Also, my data is over 1.3GB at present. That’s a lot of data for one guy. So I looked around for how to analyze my iOS Health data. The first site I found that looked promising was Analyze the Crap Out of Your Apple Health/HealthKit Data (sep.com) and GitHub – jonfuller/health-parse: Parses an Apple Health data export… for reasons. The developer offers an email address – email your health data to [email protected] and it will send back parsed stuff. Sure. I’ll email you my 1.3GB of Apple Health Data. Let me know when you get it. Okay, no, I did not try that because it’s never going to work. So I downloaded his code from Github, but I couldn’t get it to compile. Seems like I’m not the only one, as others reported the same issue.

Next I tried the Heartwatch app for iOS. So close! It generates some nice reports but only goes back one year. I want to track data over multiple years. I emailed the developer, and he said he’d consider it.

Then I tried the YouTube video (1) How to download, graph and assess physical activity and exercise data from Apple Watch – YouTube. OMG hilarious. Fail. 

Something in Python perhaps?  Analyze Your iOS Health Data With Python | by Guido Casiraghi | Better Programming | Medium Prerequisites: You know the basics of Pandas. I don’t even know what pandas is, other than a big bear-like thing that lives in China. 

I tried to import the XML files into Excel. Hahahaha. I’m running the 32-bit version. It cannot open a 1.3GB XML file. 

I poked around and found this article by Taras Kaduk: Analyze and visualize your iPhone’s Health app data in R. I was told R is easy to learn and use, so I figured I’d give it a try.

I installed R for Windows. The UI seems a bit dated and barebones. The Comprehensive R Archive Network (case.edu) How do I install libraries, anyway?  HodentekHelp: How do you install the XML library for R programming? Okay, manual process, must select stuff from a list by point and click. Yuck. 

How do I change directories in R?  how to set path in R on Windows – Google Search

Hm. This looks kinda neat and more polished.   Download the RStudio IDE – RStudioHave to install those libraries, but at least I can type their names in a comma-separated list. Much quicker. 

How do I change directories in R again?  getwd, setwd | R Function of the Day

What’s the path to my files in my OneDrive folder without spaces in it?  Use PowerShell to display Short File and Folder Names | Scripting Blog (microsoft.com)

How do you comment in R? Comments in R – GeeksforGeeks

How do you print more lines than it’s showing me?  how to increase the limit for max.print in R – Stack Overflow

What does that %>% do?  Simplify Your Code with %>% · UC Business Analytics R Programming Guide (uc-r.github.io)

Oof. Guess I should take a lesson. Learn R | Codecademy

Yup, that did it! The following R code imports my Health XML data and spits out a CSV. And yeah, it took a lot of floundering to get these few lines of code:

library(XML)
library(dplyr)
xml <- xmlParse('export.xml')
df_workout <-  XML:::xmlAttrsToDataFrame(xml["//Workout"])
write_csv(df_workout,'health_export.csv')

Now I have a CSV file! Great! I’ll make a chart in Excel. OMFG Excel charting is beyond convoluted. Why is it so F***ING COMPLICATED?!?! 

Google Sheets to the rescue. Finally. I have what I have sought for months.

I realized that with the right libraries, I likely could have accomplished the same thing with Perl or Python, but learning R has been fun and I may have applications for this professionally as well as personally. Also, I should be able to generate the graphs directly from R, but haven’t learned that yet. Finally, I will likely need to dive deeper into the data to incorporate steps per minute and heartrate into the above chart. I’m really interested in overlaying my steps per minute and average heartrate to see how this affects energy used and pace. So while I’ve taken the first step (no pun intended), I’m not done yet!

How I Went From Couch to 5k, then 5 Miles 10k, then 10 Miles

In the fall of 2017 I had a roommate. He’s a runner. Like, a serious runner. You know, the kind who goes out for a 5 mile run on one of his rest days? The kind who’s training for a 50 miler? The kind who has to eat 8,000 calories a day to maintain his weight? That kind.

One day (October 27, to be precise) he asked if I’d like to go out for a “recovery run” with him.

“How long?” I asked.

Just 2 miles,” he replied.

“Sure,” I answered, expecting it would suck, but being in relatively decent shape to begin with, why not?

It sucked, that’s why not! Ugh. It was grueling. I managed to maintain an average pace of 8’55”, which I thought was pretty decent.

A couple of days later, I decided to try again, only I would start smaller – say, half a mile. I did .43 miles in 9’10”. Not great! But I was alone and didn’t have my coach kicking me every step of the way.

The next day I did it again. .42 miles at 8’57”.

The next day I did it again. 1.01 miles at 0’03”.

From there I dabbled, going back and forth with a half mile some days, 2 miles the next. I didn’t have a plan, other than “run a mile,” which I did every couple of days. I continued that until June, when I decided I’d just start adding a little each day. Each time I ran, I added .1 or so miles until I hit 3.74 in July (and that day was a hot, sweaty, doozy).

I’d looked at formal plans in the past, and never really had much luck with making them stick. I even tried to go onto the “couch to 5k plan” to see how that would help me, until I realized that 5k is just 3.1 miles, and I was already there, so…

On April 6, 2019, I decided to kick it up a notch and shoot for 5 miles. Again, I decided to just add a little every time I ran. Since I was averaging a run every other day, I’d add .2 miles each time. I went from 3.1, to 3.2, to 3.3, 3.5, 3.7, 3.8, 4.0, 4.2, 4.4, 4.6, and finally 5.0 exactly 30 days later.

Since then, I’ve set 5 miles as my standard, shooting for a run every 2 days. I’ve done four of them so far and today will be my fifth.

Nike may not like it, but in summary, my plan is “just do it.” Add a little bit each day, making slow and steady progress. If you backslide, don’t worry about it! Just get out and do it again. Before you know it, a 5 k run will be just a warmup, and it taking supreme effort will be just a memory.

Update: On Saturday, May 25, 2019 I took the next step and upped my run to 10k. I’ve done it twice and plan on making this a regular workout a 2-3 times a week, work and weather permitting.

Update: On Saturday, June 1, 2019 I took the next step and upped my run to 10 miles.

Slow Carb Modified

In late June, I made some measured modifications to my now-(depending on how you define it) famous slow carb diet practice. 
For starters, I resumed drinking Gatorade during Krav Maga training sessions. I noticed an immediate increase in my mental acuity and energy levels, resulting in better training, both physically and mentally.  I am also allowing myself up to one soda – usually club soda, lemon juice, and stevia – per day. 
Next, I allowed myself one “slip day” (in addition to my cheat day) per week, where I can eat restricted foods (dairy, or grains) provided I do so after a resistance training workout, and I stay within my daily total energy expenditure (so if I have a couple slices of pizza after hitting the gym, and keep the calories sane, I’m okay. 
I’m also skipping breakfast – yes, the most important meal of the day – on most days. Also, I haven’t been eating as many legumes as previously, usually only having them a few days or of the week now. 
Finally, I allow myself some night time carbs. This has usually been a small amount of dark chocolate, but could also be a granola bar. In addition to satisfying any cravings, this had resulted in better quality sleep than melatonin, valerian, or GABA. Again, I make sure to stay within my daily TEE so this is not a bingefest like some Saturdays turn into. 
The results? Not much to report, actually. There has been a modest decrease in weight over the last few weeks, but nothing dramatic. 
Given all of these adjustments, I’m not sure it even qualifies as the slow carb diet even more, but hey! As long as it works, I’m happy. 

Weight tracking June-July 2016
Weight tracking June-July 2016

It's Podcasting time again!

After a few years of regularly co-hosting a podcast (Fresh Ubuntu, and Pocket Sized Podcast), I’ve partnered with my friend and colleague Adam Bell to record and publish Blurring the Lines! On the show, we will take about our experiences with business, as well as our personal lines, and how they blur in the 21st century. We also will have interviews with interesting guests on how the lines between their business and personal lives blur, how they maintain separation, and how they embrace the intersection. Give us a listen, and subscribe! Right now!

The "Peter Diet?" No, it's the Slow Carb Diet

Recently, likely thanks to my weekly Saturday Binge Day posts on Facebook, several of my friends have been saying “I want to know more about that diet,” and also “I’m doing the same diet you are” or “my friend is doing the same diet you are.” My response? Yes/no.
Yes, you want to know more about it. No, you and your friends are not doing the same diet I am.
Continue reading “The "Peter Diet?" No, it's the Slow Carb Diet”