Exciting Bug Reports

You may wonder how bug reports can be exciting. Most of the reports I get are about people having trouble to login or set up the app. Usually either because people Bugsuse the wrong device (vivofit or vivosmart), or have special characters in the password. I actually just fixed the latter, which is great news.

So once in a while I get a bug report from someone that spotted some inconsistency in the stats or numbers reported in the app. This is exciting because it is usually somewhat interesting to track down and also because it helps get the app better and better. It even sometimes happens that people spot inconsistency with other apps or report, and when the other apps was wrong it’s quite satisfying 🙂

Inconsistency between Time in Zone Graphs and Laps

An often overlooked feature of the app is the ability to compute statistics over arbitrary laps. You can of course record laps while you do an activity. But what if later you want to see how you did by kilometres or miles? You may also want to get your stats for all the times you were in a given heart rate zone. Or your half distance split, etc. The app lets you do that, by tapping on the lap header and selecting the type of lap you want.

Someone just noticed that the time in zone was inconsistent between the computed lap and the time in zone graph. As you can see in the graph for instance the 149 to 158 zone is reported with less than 10:00Simulator_Screen_Shot_15_Apr_2016__20_31_00

While the graph is clearly more than 10:00

Simulator_Screen_Shot_15_Apr_2016__20_28_59

Bug feels always silly once you found them. Here I was not accounting properly for each point of the activity where the value changes zone. The laps calculation is somewhat more involved than the time in zone graphs, because it requires keeping track of bunch of stats, like distance, speed or pace, average heart rate, etc. Note that the activity don’t report when the timer was stopped on the watch, so there is also some logic to account for the point where the timer appears to have stopped (long delay between points). It’s not exact and sometimes the logic does not work well.  But here I was just missing one point all together. It’s fixed now for the next version. Here is the correct laps after the fix

Simulator_Screen_Shot_15_Apr_2016__20_29_15

Fast Mile starts in slow section

Sometimes what appears to be a bug, is just a side effect of a feature. One user noticed that sometimes the fastest mile on the map appears to start in a section that is slow (blue). It would appear to not make sense as given the section at the end is faster it should more the fastest mile to be starting on the next point as here:

FastBikeSmoothing

Well, in that case actually the pin is at the exact right location. The blue section is also correct, given how it’s calculated: The gradient color represent the speed modulo some small level of smoothing. Here is the same picture without the smoothing

FastestBikingNoSmoothing

You can see that in that case, the fastest mile start correctly in a red (faster) section. It is hard to decide if this is a bug or a feature. It’s also interesting to see that in the case of a cycling activity (as in the above pictures), the speed is actually quite smooth already, so the smoothing probably not that critical. But in the case of a run, it tends to be much noisier. Given I am first a runner, it was quite obvious to me that without smoothing the gradient was less useful in identifying speed zone.

Here is a running activity with smoothing

SmoothingRun

And the same activity without smoothing, with a much noisier gradient

RunNoSmoothing

ConnectStats does not let you control the smoothing of the gradient on the map. Maybe I’ll add an option for that, or I’ll disable it for biking activities.

 

ConnectStats back online v3.1

ConnectStats just got approved and should show up on the store again. Please update and the issues with downloading activities should be fixed.

I was in the middle of adding new features and bug fixes, so you should also have now a log scale for power curves, which I think work better. I just got my first power meter, so expect a few more improvement on power graphs and data as I play with it 🙂

 

ConnectStats broken after another Garmin API change

This morning, the Garmin API changed again resulting in ConnectStats failing to download activities again. It had happened on a smaller scale a few weeks ago. The issue is the same as before but for different part of the API, so it was quite quick to fix. But as before I need to push that version to apple and wait for them to approve it and release it, which can take up to a week. app review times indicates a 5 days average for release, so we’ll see. As soon as version 3.1 is available, once you update it should work again.

To avoid hate mail and incendiary reviews during the outage I disabled the bug report and removed the app from sale on the store. I made the mistake not to do that last outage… I will re-enable everything as soon as the new version is out.

I do not know if the change means Garmin is trying to play cat and mouse and prevent 3rd party developer to access their API. Their message in the past was a bit unclear. They said they would disabled, but I had registered with them and they could see the activity of ConnectStats, yet didn’t disable it. I hope the current outage is not intentional. We’ll see how the situation evolves. I’ll keep you posted.

Deleting Activities in ConnectStats

Deleting activity is something I get a lot of questions about. It’s not something that is necessarily very intuitive to do in the app because it’s not an activity I expect to be a common task to do. So here is some information about it.

First let me be clear, that whenever you see in ConnectStats mention of deleting an activity, it’s only going to be in the local cache of ConnectStats. There are no functionality in the app to delete activities from the source system, whether it’s Garmin or Strava. So you should not worry about deleting anything in ConnectStats, it will only affect its local cache and after refresh it should come back. You can read more about ConnectStats cache management here (quite a bit is repeated here as well)

Deleting Activities from Garmin or Strava

If you delete an activity in Garmin or Strava, ConnectStats should pick it up and remove the activity from its cache, but only if this is one of the last 20 or so activities. ConnectStats only by default checks status of the last 20 activities (or until the last downloaded activity in the cache is found). This is to save bandwidth as it’s uncommon to delete or edit activities that are older.

If you delete an older activity, you will need to force ConnectStats to do a full download and check of the history. For that, go to settings, profile and select Force Reload Old Activities. This will take more time but check every activities in your history.

Deleting Activities from ConnectStats Cache

This should really only be useful if you have some issues in your cache and want to reload the activities from scratch, or if you downloaded activity from a service you no longer want to see. Basically I expect most people to not have to do that. But in case you really feel you need to, you have to go to settings and profile, then select delete activity or profile, your choice is then

  • Delete Profile: this will delete the whole profile, including associated settings and all the cached activities
  • Delete Some Activities: this will delete all the activities in the local cache from the most recent until the activity you have currently selected
  • Delete All Activities: this will delete all the activities in the local cache but preserve your profile settings

Duplicate Activities

If you have duplicate activities, you will have to delete all the duplicate activities, as per the previous section, and reload the activities, after making sure the source if the duplicate is fixed. The duplicate can either come from duplicate in the original service, then delete them on the service (Garmin or Strava) before you download again into connect stats. Or it can come because you have downloaded the same activities from 2 different services, for example if you enabled Strava and Garmin, while the two services are sync’d. In that case, before you download again, disable download for one of the two services in ConnectStats.

Here you go, hope this clear things up

 

.

Activity Deleted Bug

Bugs

[UPDATE] This is now fixed with version 3.0.2

Since Yesterday a change in the Garmin API resulted in ConnectStats reporting some activities were deleted from Garmin Connect when trying to download the details.

 

This happens because the part of the API that ConnectStats use to get the weather is now reporting the same error as when an activity is deleted and that confuses ConnectStats.

I will push a bug fix to the store that will stop downloading the weather for now until I can figure a new API to retrieve it.

Version 3.0.2 was pushed to Apple for approval today, unfortunately pushing a bug fix requires a few days, sometimes up to a week for Apple to approve it. Sorry for the inconvenience caused and thanks for your patience

Adjust Instant Pace to match Lap

IMG_2095The issue with the fenix 3 instant pace since version 6.5 was driving me nuts. I know it’s not the end of the day, but the graphs just looked really disturbing as below.

 

And it resulted in incorrect best of calculations. So I added an option to readjust the pace to match the average of the lap. The shape here felt quite accurate, this is a run just after the snow storm in New York City, and the area not cleared of snow resulted in clear slow down of pace. Also the spike correspond accurately to the place I stopped to take pictures…Screenshot_03_02_2016__22_29

IMG_2089

 

 

So below you can see the graph after turning on the new adjustment. I left the adjustment turned off by default though.

The feature is included in the upcoming version 3.0.1
Screenshot_03_02_2016__22_30

ConnectStats Version 3.0

shutterstock_91834361It took a bit of time, but a  fairly improved version of ConnectStats is now ready. It contains the features of the failed version 2.5, and a few other significant improvements. In a nutshell, you can now access your daily steps and activity as recorded by your apple watch or iPhone motion processor (this is not available on iPad). There are quite a few under the hood improvement for future extensibility, which always brings the risk of some new bugs… And finally improvement for the ski season with extra fields and plots for your ski activities, along with display of new run dynamics fields and graphs. It contains also a few minor improvements, like multi sport display and filter for the calendar and swipe right to move backwards on graphs in activities.

Extra Graphs

There were quite a bit of internal refactoring that made it easier to add new graphs in ConnectStats. If your device supports it, you will now have graphs for temperature, along with the new running dynamics of the fenix 3. It also now is easier to had new derived plots like for example the vertical speed, which I initially build for ski activities, but can be handy, I suppose, for cycling or running as well. I say “I suppose”, because I live in London, and vertical speed in a flat city is only marginally helpful… If there are graphs your device supports that you would like to see in ConnectStats contact me and send me a fit file so I can test it and add it.

Health Data

This is only applicable to iPhone users. The idea is to integrate the data recorded in the health app into ConnectStats to enable some of the analysis available to the run or cycle data.

To enable it, in the service page, turn on Health Data. It will try to figure out the source automatically: either the apple watch or your phone if it has a motion processor. If it does not select the right source you can select it manually.Simulator_Screen_Shot_20_Jan_2016__21_27_28

Once you enabled it, during refresh the latest data should get integrated into your activity list. Because ConnectStats primary focus is still to look at sport activities, there is a quick filter available to only show the sport activities and hide the day summary coming from the health data.

Simulator Screen Shot 20 Jan 2016, 21.27.06Simulator Screen Shot 20 Jan 2016, 21.27.14

The primary purpose for me is to be able to have quick view of the day and look at the stats and data from the apple watch or the phone in a bit more details. In the stats session, you have now a new type Days to look at these stats

The summary page will show monthly steps progression: how well I am doing in step this month versus last and Short Term vs Long Term activity.

Simulator Screen Shot 20 Jan 2016, 21.28.03

Here you see the weekly or monthly summary.

Simulator Screen Shot 20 Jan 2016, 21.28.27Simulator Screen Shot 20 Jan 2016, 21.40.48

I will see how much I expand on the functionality. As I mentioned before I don’t anticipate it will become a major focus for the app.

 

 

Statistics on a selection of activities

One feature people repeatedly ask about is the ability to see statistics for a selection of Garmin Activities. It is actually possible by using the search feature.

Let’s say for example I want to see the statistics of all the running activities in july 2015. I first enter that as a search

Simulator Screen Shot 20 Jan 2016, 21.53.35

Then in the statistics page, hit the type button until the term Search appears. It will remind you what the search term was, and then the statistics you see are only using the currently selected list:

Simulator_Screen_Shot_20_Jan_2016__21_53_40

This will be the case for the other stats page as well, here for example I show a scatter plot of Pace versus HR for the running activities of July 2015

Simulator Screen Shot 20 Jan 2016, 21.53.54

Another useful application is to run statistics on a specific activity type, for example all the skiing activities as here, I show how much elevation gain I achieved each month in backcountry skiing. You can see more about skiing here

Simulator Screen Shot 20 Jan 2016, 22.01.22

It is limited though by the current search syntax of ConnectStats, which if there is significant demand, I may extend. Just let me know.

 

Fenix 3: Inconsistent Laps and speed graphs?

Update I added a new option to ConnectStats to mitigate the issue

I started noticing something quite weird with the activities recorded on the Fenix 3 since I updated to firmware 6.5 for my running activities. The pace reported on garmin connect is quite off, while the pace of the splits seems correct. At the very least the two are very inconsistent, the pace on the pace graph is typically quite slower than the correct pace. You can see an example activity here, all the lap pace overlay are clearly toward the minimum of the lap pace, which is not possible.

Screen Shot 2016-01-18 at 21.24.55Screen Shot 2016-01-18 at 21.25.09

While if I look at a similar run but in december (pre 6.5) it’s much better

Screen Shot 2016-01-19 at 22.15.39

Looking at the activity on garmin connect, shows the same issue, so I don’t think it’s a bug in Connectstats (my initial thought). Old activities (pre 6.5) do not show the issue. On Garmin website, while it’s harder to see, if you move around the pace, you can see most values are quite slower than the average pace for the activity.

 

Screen Shot 2016-01-18 at 21.23.49

If I looked at the same activities on Activity on Strava,  the graph is consistent with the splits. Strava seem to recreate the pace from the GPS points (my guess).

Screen Shot 2016-01-18 at 21.24.20Screen Shot 2016-01-18 at 21.24.10

I then looked at the details in excel, here too, it’s quite clear that the speed recorded for each point is quite slower, while the speed of the split is correct. For example for the first split, I looked for the 1000m point, computed the time to start 308 seconds, which gives 3.24 meter/seconds or 5:08min/km. While a simple average of the speed recorded for each point gives 2.72mps or 6:07min/km. The simple average is inaccurate, it should be weighted by the time between points, but this is way off.

gc_track

 

Ski with Garmin and Connectstats

image I have been in the Swiss mountains for almost two weeks around the year end holiday season and enjoyed quite a bit of skiing. There wasn’t much snow this year so resort skiing was limited, but I got to do a lot of the other activity I enjoy in the mountain: ski de randonnĂ©e or ski touring, even if given the snow condition you could only really go on the pistes with artificial snow.

This gave me opportunity to try the garmin fenix 3 ski features and think about what I would want to see in connectstats to look at these activities in more details.

Garmin fenix ski activities

The fenix allows to record ski activities by default. I went and selected resort skiing for downhill ski and xc ski for the uphill randonnée skiing.

For downhill skiing it worked great, and only recorded the time you went downhill as separate tracks. I had added the ability to connectstats to breakdown a track recorded with a forerunner into downhill/uphill laps, but the native ability of the fenix 3 works much better.

There were a few issues though. Mainly that when uploaded to garmin connect (and therefore connecstats) the downhill ski activities showed up as uncategorised for activity type. The ski de randonnĂ©e was uploaded as cross country ski, while I had so far recorded all my previous tours as backcountry skiing. It would be great if the fenix had ability to select what activity type to report when uploading to garmin connect but I didn’t find such ability. So I had to edit the activity type manually on the web each time. It’s unfortunate because it’s quite important to have the activity type correct so connectstats can then break down your stats over time properly.

Ski de randonnée

imageSki de randonnĂ©e uses much lighter boots and skis to which you clip skins on to let you go uphill. Typically you would go in the backcountry off the typical trails, but it’s also quite common to go up in the side of a regular piste. Going uphill is definitely a good workout and leads to the similar type of analysis, comparison over time and statistics you’d want on a run in connecstats.

The default information you get from the activity recorded by the fenix 3 will be very similar to those of a run. The one difference I found was that even though the cadence is reported as an overall value, the details values reported are somehow only 0 or 0.5 instead of the value you expect. It’s a shame because I would really like to be able to see at what cadence I was climbing at different point of the course. I will try to mess about the fit file to see if I can find that information somewhere at some point.

Simulator_Screen_Shot_5_Jan_2016__21_57_44The key information I wanted to see for these activities though, is the vertical speed or ascent speed when you go up. This wasn’t provided by the watch, but is not very difficult to compute from the elevation data. So from version 3.0, ConnectStats will show along with the elevation the vertical speed graph (up or down) and a summary ascent speed, max ascent speed (Vertical speed going up only).

 

Downhill Ski

Simulator_Screen_Shot_5_Jan_2016__21_57_25

Here again the data is very similar to a run activity, but the fenix smartly breakdown the activity into laps for each run. One change to ConnectStats is that now the laps are labelled run for ski activities and it shows the elevation loss for each run instead of the heart rate in the summary. Of course the heart rate is still available in the detailed view. And in addition to the vertical speed, starting with version 3.0 ConnectStats will show the descent speed.

Ski without the Fenix

If you don’t have a fenix, and recorded your downhill skiing with a garmin, you will end up with an activity including the downhill and the lift time. ConnectStats will let you break down the activity into lift time and downhill time. Tap on the lap and select Ski Laps to get the activity broken down in runs properly. But definitely using a fenix is much nicer for ski activities.Simulator_Screen_Shot_5_Jan_2016__22_07_55 Simulator Screen Shot 5 Jan 2016, 22.08.01

Other ideas?

If people have other suggestions of information to display for ski activities, let me know in the comments below.