Tuesday, October 25, 2016

How hard is it to make a cleat based Powermeter?

I woke up this morning and I saw that Brim Brothers had quit. I’m sure if I had ever met Barry Redmond I’d likely be asking the question that probably kept him and his team working so hard. 

“How do you know the crank angle, or the appropriate relative angle between pedal and crankset?”

So if you want the short answer – It’s hard! It’s VERY VERY VERY hard.

I predicted this was going to be a nearly impossible problem with inertial sensors and I hate that I was right (Or wrong, you’ll see at the end – no comfort for Pre-order people, but the tech is out there). I had played with inertial sensors in University while working on active vehicle suspension design for automotive. And I said things like “I’ll just double integrate acceleration to get position” to which my Masters supervisor said “Doesn’t work” and I marched on my way to find that no matter what I did position drifted and accelerated away in under 2 seconds. The accelerometer was taped down to a heavy old wooden table and the math said it was flying away at 1000m/s. You have two options then; believe that I invented a new form of transport… or accept that the math didn’t work.

So below is a picture that will take a couple of paragraphs to explain, but the short is Brim Brothers measured force on the cleat in two directions (purple) and could be resolved into a single force and direction (red), but not all this force made torque (green, perpendicular to the crank). There are two angles relative to the world (the reference frame I’m using).

A really good inertial algorithm using accelerometers and gyro’s and any other MEM’s could figure out the angle of the shoe (theat_shoe). Those two things only tell us the vertical component and the horizontal in the “world” reference frame. Without knowing the crank angle very precisely you have no idea what torque is. We know the force and direction relative to the shoe and we can convert that to the world, but not the crank reference frame.


In fact, if we leave all the forces the exact same and only change the crank angle the resulting torque is different and reversed. This isn’t even unrealistic as the “lazy leg” has to be lifted by the other. Try cycling with one leg and see how tiring it is (those with Power Cranks are exempt).


We have zero different information (not really, but I’m getting to that). Accelerometers on the shoe state this is the position and angle using a simple algorithm. Let’s ignore time history integration for a second and only look at data which can determine reliably orientation in 3D space. The shoe angle is known, the force vector is known, but we know nothing about the relative orientation against the crank.

So basic inertial is useless because we can’t resolve torque, so that means two things

1) The Luck shoe is 1/100th where the Brim Brothers were years ago and only senses in one direction therefore it can never accurately get power. Some sort of half baked tuned version

2) Brim Brothers were into some very advanced predictive methods to predict and calculate crank angle

Ignoring point one, lets say we can integrate the velocity. Keep in mind we are moving outside and we can only figure out velocity relative to the world (this is how accelerometers work, the reference is the world with gravity vector being “down”). So we know the velocity which is a circle except when we move forward. Then the velocity profile is more of a spirograph. So from this we can figure out just about where we are in the crank rotation as velocity should be tangent to the crank + some averaged forward velocity + some drift. So assuming the filtering cleans up the drift and we can remove the forward velocity component we now have a vector that tells us crank position.

EXCEPT – well, it’s an estimate of crank position. It’s not necessarily true crank position, and it’s a weak filter since we never directly measure truth. So now we must supplement it some how. We can use the cyclic nature of the accelerometer going up and down and that helps stabilize the reference. OR we can use this to find the top and bottom of the pedal stroke, calculate cadence and use that estimate crank position allowing you to calculate torque.

Except if you change how your feet are angled like getting out of the saddle could change expected orientation, or small vibrations, or a speed bump, or even angle change due to starting to ride up a hill.

This is only one example of the problems associated with all this inertial sensor stuff. I don’t really know for certain what was the real problem, but my speculation puts it in the inertial algorithm area. Any time with a powermeter you have to make a guess like estimate an angle, or estimate a position, the answer is wrong. There hasn’t been a powermeter that works reliability that has an algorithm beyond a rotation measurement and been proven accurate yet. That doesn’t mean their won’t be, but when a company uses the words algorithm in terms of power sensing be wary. My suggestion is to avoid anyone who says  algorithm too much until you can test their product.

However, I also read today about something that is using inertial sensing to figure out position, orientation, velocity, and acceleration… cheaply ($1500 USD for 32 points). It’s a full body motion capture suit (NOITOM) and it is amazing. It’s been used on a lot of videos. Normally motion capture is IR camera’s and reflective balls with a lot of software. This is just inertial, calibrated to positions, and some amazing filtering algorithm. I’m not sure it would be accurate or fast enough for what the Brim Brothers needed, nor know if it would give enough to back out crank angles without multiple placements, but it’s amazing to see a company able to put together a system that must have a build cost of only 500 – 700 dollars so they can sell for $1500 for the 32 node version. Check it out. It’s this tech which could enable a successor.

From Tom’s Hardware

Friday, September 9, 2016

The case of protocols–Kinetic and ANT+/BLE

It has been a long time since I’ve posted, but I wanted to chime in on something that affects me more as a consumer than a developer. It’s the recent choice by Kurt Kinetic to continue to avoid ANT+ and the standard BLE profiles.

I’ve recently read the Simon Sinek book “Start with Why” and I’ve watched the Ted talk (here) numerous times annually as a reminder. Having worked with a startup and poured my heart and soul, and not to mention 60 – 80 hours a week for over two years, I feel that I’m a little in touch with the why I do things. The why for me is connected with my what – as in my personal history. Motivation to make a cheaper powermeter extends from being poor and being fat, and changing that with smart purchases. One of my first smart purchases was the Kurt Kinetic Road Machine.

I wanted a trainer for my used road bike. My choices were Cyclops, 1up, or Kurt Kinetic at the time and these were all big purchases for a poor Masters student. As a person of engineering I researched and researched and researched. What I came up with was that over long periods of use (think years, like 5+ years) the Cycleops may leak. The 1UP, while well reviewed looked cheap and dated. Then Kurt Kinetic, new in the world of trainers, only one product, a little louder than the competition, had a trainer that was guaranteed not to leak. And boy was the technology amazing. It couldn’t leak! EVER! I was amazed. So I bought it, and I stayed home all morning waiting as long as I could for the UPS guy to show up… only to find that he just left it outside on a busy street. Mixed emotions that day.


Not only this, but there was a power curve. I had just heard about training with power and I was intrigued. I built up a little Arduino platform, wrote some software that pre-dated TrainerRoad and Zwift by years that allowed me to follow my workouts from the Andy Coggan / Hunter Allen book “Training and Racing with a Powermeter”. I trained to this power curve using my own software for 2 years. Over this time I migrated to using the ANT+ Speed / Cadence sensor instead of the Arduino.  Then I got a Quarq Cinqo Saturn and adapted the software to use the ANT+ power profile. But the power curve of the Road Machine was in the software still and I tested it against the power meter and I was happy with the results from Kurt Kinetic for all those years. The ANT+ profile was so easy to implement. It could be done in a day!


If you go through my photos on this blog you’ll see my trainer in the background in a lot of them. It doesn’t matter what I’m working on, the Kurt Kinetic Road Machine is always there. It was my rock. It was a powermeter test device. It was a calibration stand. I even got a dial gage and magnetic base and it became an AMAZING truing stand saving me hundreds of dollars.

Over the years Kurt Kinetic grew and I was excited. I was also loyal. They came out with the rock and roll and I loved the idea (but couldn’t afford it). They believed in a reliable trainer that never leaked and innovation! That was their why. They had a cycle computer that had a regressed power curve, like I was doing, but it couldn’t log data and was expensive. I forgave this because I believed in the why of Kurt Kinetic. I would say “They make good hardware. Bad electronics from a probably Chinese outfit can be forgiven”.

Then Kurt Kinetic replaced the bad cycle computer with a little pod. I was excited until I found out that it was only BLE. My Cell phone didn’t have BLE (Samsung Galaxy S). I have a background in mechanical simulation so I don’t use a Mac because there is no Solidworks or ANSYS or ABAQUS or CATIA or Unigraphics or PRO-E or Altium or ORCAD or.. well you get the idea. I make things, and to make things with professional software I use Windows. Windows had almost no good Bluetooth support then, let alone BLE. I figured I’d forgive this transgression because “Kinetic” (dropping the Kurt) does awesome hardware. This module is probably outsourced. It’s not part of their “why” as a company. It’s just to fill a gap to try and catch up with Wahoo. Or maybe they believe in BLE only – not a large sin, but still a sin in my eyes.

Enter Smart trainers. I didn’t like the original Wahoo Kickr. Maybe it was early firmware, maybe it was that the cassette didn’t align properly to my wheel and I’d have to constantly adjust the rear derailleur between riding indoors or outdoors. Maybe it was that it never appealed to my price conscientious history – again, being very poor growing up means that high profit margins can put a very foul taste in my mouth. Gouging customers is akin to murder with me. Charging over an MSRP for instance should be met with the end of the Rick and Morty episode re-enacting “The Purge”.

So I brush it off. Smart trainers aren’t (at the time) my thing. They aren’t even close to accurate to a real powermeter at the time. Software control of the trainers was non-existent and slow and BAD. I also thought there cannot be a market for this 1800 CAD product (Bad exchange rate at one time). However, the market grew and smart trainers were a thing. Wahoo had invented an all new product, and after some teething pains, they got it right. Early adopters through to creating a market. Congrats to Wahoo. Awesome work. Now for the bicycle paddle boat that Chip wants to make.

So now I’m thinking about how most things work so nice together over the years because I got into the right ecosystem. I had a Garmin FR60, replaced with FR910xt and an Edge 500 replaced with 520. I have Trek Bikes with built in Speed/Cadence sensors. I have a HRM from Garmin and one from 4iiii’s. I have numerous pieces of software, all working with an ANT+ USB stick perfectly, reliably, without fail. Multiple devices can receive and transmit. It’s a wonderful ecosystem – now owned by Garmin. However, they try VERY hard every year at the symposium to say “guys, if you have ideas we’ll help you write a whole profile, just work with us!”. They invented Connect IQ as a way to accelerate this! They allow for Private manufacturer pages to be reserved and tested openly with Connect IQ. Garmin wants peripherals! What they probably don’t want is watch and head unit competition – but that’s another story. The only reason I see to not support ANT+ is because you are going to make a BLE only head unit.

Which brings me to Polar. Polar right now is where Nokia was when smart phones were invented (or maybe a few years after). If they survive I’ll be impressed, and if they do, their only saviour is the iPhone and later Android, by latching on (poorly) to the BLE profile and still trying to act superior. I don’t know the story well, so I won’t speculate too much, but it did lead me into an interesting problem.I’ve used the $500 CAD Polar V800. It’s a joke compared to the FR920xt or the new FR735xt. I’d pay 100 – 150 CAD for it personally. Same goes for the Sunnto Ambit 3. So disappointed in these. In a few years they may get their act together and maybe (doubtful) Apple will help out people with the power profile and push the implementation. To Apple, who really is the push for BLE, the dedicated sports market is a small market. Their money comes from the every person who wants to “feel different” and is willing to pay.

Now we can segway into how this affected me and my girlfriend. My girlfriend has a Nike runwatch made by TomTom. It uses the Nike proprietary footpod and a Polar proprietary HRM. While I had spare ANT+ and BLE HRM’s nothing would work with the watch except the nearly $100 CAD Nike specific Polar HRM. She wanted heart rate data while running, but baring multiple devices she couldn’t. She wanted Strava data from here watch, but had to use numerous websites to upload here data or also capture to her very large phone. She couldn’t merge the HRM data with the Nike data from a non-GPS watch. It was bad. Everything was just harder. Initially the BLE was flaky too due to poor implementation in most apps. In fact it was so frustrating as Nike updated their site, removing a lot of features, that she pretty much gave up on Nike altogether. Nike and Polar had blocked her from her own data. So now what?

We got a used FR910XT for her cheap and the Nike watch we don’t know where it is. It was cheaper than buying more proprietary stuff. It uses the FIT format and ANT+ and even though it’s older, it’s way more capable than other newer products I’ve used.

So let’s look at the pro’s and cons of Implement ANT+ / BLE.

Pro Cons
Instant compatibility with software 0.25 USD Licence Fee for nRF52
Ability to support new profiles quickly May have to switch from nRF51822 to 51422 and increase cost
Felt as part of an ecosystem, can implement new features and roll them out to others as part of the working group Develop BLE support or migrate existing proprietary takes time and money
Can use Connect IQ on Garmin products for apps and widgets Develop ANT+ Transmit / Receive takes development effort, again time and money
Increased industry contacts and exposure via working groups Risk competitors finding out your ideas
Existing profiles can be quick to implement with reference code Could be major costs on changing IC – restocking fee’s to lost reels = up to 10000 dollars USD

And now the Pro’s and Con’s of proprietary

Pro Cons
Build an Ecosystem Single company implementation is same effort as multiple
Control of development of new features Slower implementation by 3rd Parties
Control Power consumption Deploying features could break others API implementation, meaning a lot of support, and risk of it being dropped
Deploy features faster Risk a 3rd Party API replacing yours causing incompatibility (See Wahoo BLE API)
  Risk of loss of market share to competitors
  Risk of loss of investors (If any) due to incompatibility (testing by investors) or failure to meet sales objectives of new products

I’ve heard that Kinetic will try and explain it’s position, and I welcome them to doing this. Maybe I have missed something in my several years working with the ANT+ and BLE protocols. I also know that working with a single company with something proprietary is harder than a standard for 10 companies. The biggest thing it comes down to is normally feeling like you’re in the Garmin sandbox. Frankly, that’s why people are doing ANT+ and BLE. For choice. Implementing ANT+ gives you access to a whole new Connect IQ platform. Companies like Stryd have used it to implement power recording in run modes – Genius!. Companies like Specialized have used the Apps mode for their MTB demo about a year ago. It could have been done on a smart phone but I don’t know many people who ride a MTB with a smart phone strapped to it. Could Stryd have “worked with Garmin” prior to Connect IQ to implement this – yes and no. Yes because they want to implement a new product. However, implementing power on a non-power watch could turn a run only watch to a tri-watch competitor, so Garmin may have said NO. By taking that risk you could say Garmin could damage their own sales, but for ever sale they damage they probably grew 2+ because of Stryd.

Unless you have a lot of developers it’s going to be harder to do anything on power consumption and getting companies to implement a new feature and recompile and re-release an app is time consuming. And if your new feature you’re pushing to market hasn’t been tested and vetted you risk breaking someone else's software. That makes people less ambitious to update API usage.

There is a smaller development cost to implement existing compared to re-inventing the wheel, a small cost on the chips if thought out from the beginning, and a lot of positive PR. However, if the choice was made and the chips aren’t ANT+ compatible then it could mean a major design change. However, if they use the nRF51xxx series that means they can drop in the ANT+ compatible chip and swap the stack. They likely haven’t purchased more than a reel of IC’s and that could have run them 10k USD. However, that is the lost sales of maybe < 50 trainers profit margins? How many sales would (or have lost) by not supporting it from the start?

I just read all the comments on Ray’s post. Joel from Kinetic is trying so hard to be diplomatic which must be so hard. They have an internal decision that see’s him being beat up on. Not only that, but personally I’m saddened. The Road Machine allowed me to train effectively with power before my powermeter journey. I made my own ANT+ transmitter for it. I tested it’s power curves. I’ve shown my girlfriend how to use her Power Meter with it, and do an FTP test, and ride with TrainerRoad. I watched a new market come to light and I would stand by my Road Machine saying it’s awesome and doesn’t need to be stupidly plugged in. That it was solid with my 100kg putting out a 1200 watt 10 second sprint when I cinched down the tire. I don’t personally stand by their decision and I’ll eventually vote with my dollar. A few months ago I thought my Road Machines bearings were going – I still haven’t confirmed it. They suggested an RMA and I felt a little bad. It’s 6 years old now. It’s seen hundreds of hours. However, I had to pack it up and figured maybe I’ll just buy something new. After today I don’t believe in the why of Kinetic any more. I’m sorry and saddened. They lost their way. They lost their why. I know what it’s like to see a company lose it’s why. It hurts so much.

I’ve seen these type of decisions made because companies want an “ecosystem” but then they don’t realize that it doesn’t matter. It’s ambitious and unless it’s your only focus then you’re developing nothing. If something is a published standard that means there is a way to test and check that it works. If you have to send an API, hold someone's hand walking through it to implement while they are also implementing a standard, then who will get integrated first? It’s cheaper emotionally and time wise to a consumer to buy a whole new trainer than to wait for someone else’s product to be compatible. You’ll never be first to be incorporated into software, you’ll always be last. You don’t get to do what everyone did last year – show off Zwift or whatever new software is being shown in every trainer booth at Eurobike, but you get to do it later after it’s no longer novel. You get to be the last guy to show up to the party, but nobody is waiting for you because they are already starting to leave.

I don’t know what the reason behind avoiding FE-C, Power, Speed, and Cadence on ANT+  or why they are using their own proprietary BLE spec. I mean the ANT+ working group got beat up a lot for “holding back FE-C” but it’s now the unifying body. The problem is that these are standards that are already fighting it out. And as much as I hate to say it, ANT+ may lose. It’s easier to implement, quicker to get right, cheaper to get certified, but BLE is in every cell phone now. However writing your own proprietary characteristics for BLE and not publishing them means you are the third guy – the guy that’s forgotten about before anything starts. The Nokia, the Polar, and the Kinetic?

If Kinetic jumped, listened to the hundreds of thousands of dollars customers are saying they won’t spend, and say “We hear you” – then I’d consider them when I buy a smart trainer in a few months. You were already late to the smart trainer party being hosted by Wahoo and attended by Elite and Tacx with special guests Zwift, TrainerRoad, Training Peaks, Strava and more. Having your own party down the road the next morning isn’t going to be as fun.


Kinetic has a great opportunity here. There is no unified FE-C equivalent for BLE. What if Kinetic steps up and says “We might only do BLE, but we are going to lead Bluetooth SIG to making a profile because the industry needs it! We are going to reach out to TACX and Wahoo and get us all on the same page”. Without ANT+ I still don’t think I’d buy, but they would have found their why again.

Wednesday, September 10, 2014

4iiii’s Powermeter Promo Code + Story time

It’s been about 10 months since my last post about the powermeter development. Those who have emailed me have been stone walled about it, getting a response such as “I can’t talk about what I am working on in my new job”. The answer is that part of it was in fact a powermeter. So, to the loyal followers (and even the not so loyal) we are offering a discount promo code of Acuity for a 20% discount on all 4iiii’s products as a thank you for supporting me and following! Oh, here’s the “catch”. It’ll be the most accurate, lowest cost and user installed (no new crank needed for most riders!). And now I do what I love full time. So thank you!
UPDATE: Code was valid until midnight of Sept 12. The last day of interbike.  Thank you all that participated.

Now, if you’re still reading but want to hear how this came to pass, I give you the long story
During my Masters degree I had used strain gauges. I needed a tiny load cell to test active suspension. It worked but wasn’t great. I decided to take these “student strain gauges” for a side project.  My FSA vero crank, instrumented like almost all crank based meters, showed some results, but it was noisy, drifting, and unusable. After much experimentation I found that cheap off the shelf electronics were not cutting it. I shelved the idea and started working on some training software for use with the regressed power curve of my Kurt Kinetic. That was 2009 – 2011.
In the meantime a friend of mine in Waterloo was doing a Masters with someone at Babcock and Wilcox, the nuclear steam generator company, and passed off my resume. Five interviews, a security background check, and relocating my life from St. John’s, NL to Cambridge, Ontario I was now working in Nuclear Engineering. Most of my work was Finite Element Analysis, or FEA. Essentially I my intuitive understanding of how mechanics, stress, strain, deformation, etc work was being put to work for steam generators. I had been using FEA since the second year of my undergrad and at that point had used FEA on and off for almost six years. I even wrote a free book on using Ansys and FEA to design race car chassis' (link here).
It wasn’t long before a customer concern required experimental work measuring strain. Prior work was inconclusive. I heard the design manager going cube to cube in cube-ville (which was my home) and I ran after him (coffee in hand) and said I know a and used strain gauges, Eventually I disclosed my electronic hacking which had been featured on Hackaday and I was chosen as the ideal candidate.
However, I needed credentials. Everyone knows most engineers never touch things with their hands, but in order to do strain gauges I would. I’d add it to my machining and welding skills. So I was sent to a strain gauge course. After the courseof training later I knew exactly how to fix my vero crank powermeter! I was excited beyond belief. The problems I had seen were so minor!
For the next year I spent most of my time conducting experiments at B&W using strain gauges to great customer satisfaction. Between my FEA, electronics, and attention to detail combined with my knowledge of Design of Experiments and higher level statistics my work was deemed impeccable in execution. I was achieving 1% error with theoretical. A former Pratt and Whitney employee now at B&W stated his work was up to 15% error. I was so proud to be executing things at such an accurate level. In the mean time I had spent thousands of dollars and countless hours building up my own circuit boards and instrumenting cranks.
Vero, which was never self contained, was V1. Later a C-channel shaped SRAM Rival was V2. It was arduino pro micro based with an AP1 ANT+ stick from sparkfun and some analog components that weren’t suitable. V3 combined those onto a Rival OCT (hollow forged) crankset. However there was issues, clearances, etc. I had tried some different ideas and realized forces on a crank aren’t as simple as the industry thinks (or markets). However, I got my powermeter on the famed Hackaday and tens of thousands of visits to my little blog later I felt I was on to something.
So for V4, I moved to a lot of new components and a small custom board. I spent countless hours pouring over datasheets to chose the components.  I built both a Rival OCT and Carbon S900 / Quarq unit. Both worked well. Very well. In fact I was on the verge of building up a bunch and starting to beta test. I had a listing of people who were interested from all over the world.
I got an email from the father of a lady who works at 4iiii’s. He was so interested in my work and has remained a strong believer of me. Eventually it seemed to fall to the wayside of the people there or was being evaluated at a slower pace than I wanted. However I liked this company. The founder had built Dynastream, the creator of ANT+. I was impressed. So I eventually sent him a message on Linked In.
A few super early morning calls later and I was using my barely touched vacation time to impromptu fly to Alberta to meet this guy and his team with my bike in tow. I had no idea what to expect. A short drive from Calgary to Cochrane later and I find a small building labeled the 4iiii Innovation Centre.
I had mucked around adjusting code on the carbon crank for more accuracy and messed up some math, so eventually I swapped in my Rival the night before. The battery kept disconnecting during the demo in his office but he was convinced.
Some interviewing and a discussion later on what he wanted to bring to market and I was confused, full of reservations but generally sold. He wanted user installable. He didn’t want into the crank buying, installing, selling market. He wanted to let people have choice. He wanted to drop the price and change the game.
I spent most of the next 6 months working on the basics. Can it be done? What material? What gauges? etc. What I found was that 2% bending error was not actually achievable on a crank arm with the generally accepted setup (a bending bridge).  If you narrow your scope to a fine window it does but that didn’t sit well, but if you start introducing some cases that fall to the edge of  the norm just a tiny bit (and encountered regularly in mountain biking) you’ll find that it’s closer to +/- 7% to +/-9% on torque accuracy depending on the setup. Let alone rotational accuracy from an accelerometer algorithm.
I’m 4 months in, looking at these numbers thinking I’m a not going to be able to pull it off - not with the accuracy everyone is claiming! I quietly start looking for a solution. How do I make this better. I’ve figured out the fundamental issues with user install but how do meet the accuracy. It doesn’t change from user install to pro installed. I tried angling the sensors, adjusting things, compensating for the non-symmetric cross section of the crank. Nothing!
Then I tried something else. What about adding a second setup! Something that can sense torque but that is very different from the first. Then, using my Design of experiments mythology and statistics I figured out that there is a super cool correlation. I was blown away! This was big, this was the answer to my hopes to get me that 2%. Not only that, but generally gave 0.5% error! This idea is so revolutionary that we put patent pending in place on this technology, among many other things.
We needed to package it, and admittedly the packaging isn’t perfect for the drive side and the last few years we’ve seen a mess in bottom brackets and now we’re seeing a mess on the chain ring bolt patterns causing incompatibility of some manufacturers cranks. This is sad. However I’m glad to say the last 3 generations of Shimano 105 (5600, 5700, 5800) work, Ultegra (6600, 6700, 6800 {this is actually epoxied together!]), and Dura-Ace (7800, 7900, 9000) all work. The latest Deore XT works for the Shimano MTB front. The 10 Speed SRAM Rival OCT works (my original workhorse on the prototype front) and the X9 looks good. FSA Energy is good too but their new 5 bolt asymmetric and SRAM’s 11 speed put bolts where we want the sensor. We are still searching for a solution. On the Carbon front the SRAM S900 works but we haven’t finalized our testing. We will be recommending using the calibration load cell that comes with the kit every year at least to check calibrations depending on crank arm.
Right now the product works, but in my bosses opinion is huge physically, so there will be a shrink in size and weight when we ship in a few months. This will also improve install-ability and compatibility as well as easing access to the battery.
However, one of the coolest things I’ve done which I hope to open to the public is my test data on the existing meters. It turns out it my original bending only design was better than existing solutions but was still +/-7% while the best off the shelf solution once we hacked into it’s sensor produced +/- 9% when we introduces pedal offsets.
Enjoy the promo code while it lasts. It’s our gift to you guys who believed in me on a personal level and going forward believing that we change the face of power for serious athletes at all financial levels.
*gage is generally considered the American spelling and gauge the British form.

Saturday, May 10, 2014


Long time since I posted. Working at a young company is different. It’s vibrant and people are open possibility. For me it certainly helps with encouraging my goals of being a better… Fat-hlete?

Sorry? a what? A fat-hlete you say. It’s pretty self explanatory but it’s something that’s been on my mind as I try and achieve my weightloss goals and get ready for the triathlon season.


The above calculator has told me I’m not just overweight, I’m obese. That word is dreaded, sickening, unmotivating, hateful, and depressing all at once. Honestly, I think I’d rather it say “fatty fatty fatty” as a technical term than “Obese”. It’s a word that is feels foul. And emotionally, it can be devastating to people. So while people say “You don’t look like you’re 220lbs” or “You carry it really well”… there is one place where not showing it doesn’t matter. When you do any endurance sport – especially on a hill.

Being from “The Rock” I’ve ridden hilly, windy, and winding roads. Newfoundland can be considered a tough place to bike. RDF means rain, drizzle, and fog which is a standard day. A low humidity day is 78%, a high is 99% and it’ll linger and not rain. A calm day is 20km/hr winds. A windy day (that I’ve biked in) is 60km/hr gusting at 80-90km/hr. And it gusts! It’s generally so tough that the Vikings couldn’t handle it and left. If they had been tougher North America would have been populated Vikings and the descendants of Leif Erison. I like to consider myself tough, and honestly not that bad on a hill. I can dig deep and find power power.

A rough calculation can show that 1kg of extra mass up a 100m climb with human body efficiency is an additional (m*g*h/0.05) => 5kcal of energy. So 10 of that is 50kcal. That means it takes just about one bag of M&M’s to climb 400m climb with an extra 10 kilo’s. The 5% efficiency is just a guess. I remember the 10% food chain transfer from high school, and assume like a car, you push hard, efficiency goes down.

Sounds great. If I don’t eat that bag of M&M’s I’m down 200kcal and bam 1/17.5 of a pound lost. It’s not that simple.

What works for me



I don’t have too much recent data since I started logging again on a few weeks ago. However I used to log a lot and here is something really cool. Weight gain averages little more than 100kcal a day. In the recent “Unbalanced Job” I was trying to cycle, run, and eat right but I missed too may rides and runs and I ate out too much and seldom do a restaurant have any really good options. If stressed I’d hit a Starbucks for a mocha, then an mocha + a snack, then it’d be twice a day. The company also ditched the semi healthy cafeteria service for a vending machine. A VENDING MACHINE. Yet the company also would pay for homeopathy through health insurance. Who’s fault is this – mine and mine alone.  But the interesting thing, is my body is on average packing on 100kcal worth of weight a day. I’ve heard this magic number before. I’m not 100% sure if the body craves that much or if it’s the max “efficiency” for weight gain.

Can you lose weight and still have those mocha’s and junk food. YES! That’s that first straight line in the more recent detailed graph. My life is more balanced, I am focused, but I was still eating junk. Over 2 months and 1.4kg lost. Compare this with 1.5 months and almost 5kg lost. Of useless fatty weight.


It sucks to lock down. You crave things initially. And bad. Soooooo bad. It’s torture. However there is a cool side effect. When I was 260lbs (about 6 years ago) I could almost eat a whole 18” pizza by myself or a 460g bag of Peanut M&M’s and be fine. I wouldn’t get sick. I’d feel guilty, sad, disgusted with myself and during the binge eating I lacked self control. However, I could physically stomach it. Fast forward, I was down to 195lbs and I couldn’t stomach a full bag of M&M’s or a hot chocolate from Tim Horton’s.

I’m not back down to that level, but I’m getting there. An no, I can’t stomach Tim Horton’s hot chocolate. It’s about 3 times too sweet for me.

Victim of circumstances?

No – you can’t blame your life, job, etc. It’s a contributing factor and sometimes it’s harder to compete with. If a job or an element of your life is destroying your health you have to determine if it’s worth it. If you ask me, no… Never long term sacrifice your health.

It’s harder to get back as you get older and then the possibility of kids, permanent disability, etc sets in. Having a single parent that died when I was 14 due to preventable heart disease – NO, you do not sacrifice your health. I warm my friends now of long hours of stress, and doing overtime. 40 hours a week is unnatural if it’s hated work, and 60 hours will probably kill you 20 years sooner even with vigorous exercise.

So here is my long term timeline:


2003 – University begins

Summer 2005 – First Engineering workterm, stayed with cousin who told me to go buy a Canadian Tire (department store) bike to get to work because they would not be driving me and I couldn’t afford a car. There was no public transit in a small town like this. Hadn’t biked really since I was a kid, but it’s a small town! Around 250lbs. Had been continually gaining weight.

October 2005 – Riding to work, a car waved me to cross by riding across a cross walk on a side road, kept going not realizing the cross symbol changed for the major road. Hit by a GMC Yukon. No Helmet and listening to an ipod. I am a helmet advocate. I was lucky, my head scraped the ground and had the Yukon been going a little slower I would have touched down with brain damage. If it had been going much faster I wouldn’t have just cleared the 4 lane intersection, I would have landed in the direct path of traffic coming in the other direction. I was lucky. I won’t ride with anyone who isn’t wearing a helmet.

Knee busted up (Arthritis setting in the last few years) but not broken (I’m tougher than Vikings, remember?). Broke my left big toe. Suggested surgery to reset it – they messed up my mailing address, too late to fix but honestly not bad. Did I mention tougher than Vikings?

Spring 2006 – Bought my Hardrock Sport Disc Specialized bike to replace my mangled one. Light biking, commuting, etc. No real rides longer than 10 – 15km. NL is hilly.

January 2008 – First workterm with General Motors in Oshawa, Ontario. I hit over 260lbs. However, it was a tough workterm where I would be walking around a plant six hours a day. I hated the job because it was so hard and there were days I didn’t have the thirty seconds to shove a sandwich in my face (union rep was the hugest asshole I’ve ever met, until I calmly told him I wouldn’t be putting up with his crap anymore – that’s how you get respect from and angry union rep. 90% of my people were amazing though.) I left this workterm at 220lbs. Terrible bus service meant if I missed the bus I’d walk 45 minutes home otherwise it’d be over an hour home via bus. I just spent hours everyday walking.

May 2008 – Returning from workterm I was complimented by my peers so much. Biking was easier. Still biked a bit, but not much, no real weight change.

September 2008 – Haven’t been able to lose weight. Returned to GM for my last workterm. Hoped it would be another 40lbs lost workterm. Didn’t happen. Left at 220lbs.

May 2009 – Bike trip to Europe. Not to lose weight, but cycled around London, to Cambridge, then Belgium and Germany. Not much compared to what I can do now.

Sept 2009 – Grad school begins. More biking. Bought my first road bike (GT Series 4, Low end, Sora components – and no matter what that one bike shop said. If you’re half competent you can maintain Sora shifting well. If you can’t, you’re not a good mechanic).

Jan 2010 – Wanted to do a bike race, but they didn’t exist in NL. My  friends girlfriend was a runner, and suggested Triathlon as an option

May 2010 – First sprint distance Triathlon. Nearly died in water (near last), rocked the bike (+40 places), died during the run again (-17 places).

October 2010 - I started locking down on food, exercise, bought a Kurt Kinetic trainer for the winter. Started looking at creating a piece of software that had “virtual power” before Trainer Road did it right.

May 2011 – 2nd Sprint Distance Triathlon. Did well. Got down to the goal weight of 195.

Grad school stress sets in, looking for job, etc. I start to gain weight again. My diet had slipped a bit. Introduction of a few sweets / treats once and a while.

October 2011 to Dec 2013 – My “unbalanced job”. The job was good. I learned a lot. However it was not an enticing place to exercise (and other things). I had a lot of conflicting activities outside of work which meant healthy eating went out the window, exercise was compromised and my weight gain continued. There were several employee’s that made comment to my face ( and some while smoking directly next to the entrance of the building by the “No smoking within X distance” sign) – and not encouraging or positive comments. Later they hired more young people which made it more comfortable. However, it was not 100% conducive to being active at the workplace. Sticking me in an industrial park for 6 months without a shower or even sidewalks was a contributing factor in wanting to leave.

Jan 2014 – Present – New job working on sports tech. It means while I look ridiculous going for a run at –24 Celsius, the response is “awesome!” or asking if it was good, or commenting on how tough I am for doing it.

What’s your point?

I see people posting on Facebook / twitter / blogs about weight loss. Here’s what I see a lot of

  • Naturally skinny people saying “don’t take advice from fat people”
  • Overweight people feeling lost
  • Overweight people have success but usually via spending a lot of money to a “coach”
  • A handful of success stories, but then struggles to keep off the weight

So what have I figured out

  • Refined sugar is the enemy of all. Figure out if other things are your specific enemy. Just because you aren’t allergic doesn’t mean you can respond poorly to some foods
  • Life balance and support. It’s not good if you’re so time constrained that you can’t cook or eat proper meals. It’s also important to be around people who will lock themselves down and understand your goals. This is hard for a lot of people to truly support that
  • Find a tracking method that works for you. I like to weigh daily. If I start inching up in weight it’s a red flag. I read “weight once a week”. I call BS on that. My weight can fluctuate 2.5kg from day to day with overeating and hydration. If you’re weighting weekly you can’t see that. Honestly that guilt snack you had might show up, guilt you the next day, and keep you way from another for a week. It’s probably unhealthy to rely on guilt, but I figure a little guilt about a snack is better than a lot about being overweight.

Sunday, March 23, 2014

ANT+ Weight Scales “Hack” (a start)

I haven’t written for the blog in a while. I still plan to continue the review process of tracking software but it’s fallen to the way side as I’ve been helping out with all sorts of projects at my new job, getting use to my new surroundings, and just generally trying to keep up with an exercise routine.

That exercise routine means that I’m getting more weight contentious. I like to refer to myself as a “tank of a person”. I’m not designed for endurance sports – my body takes more to things like weightlifting. So triathlon is fighting an uphill battle. I’m getting stringent on the diet side of things. I use to track my weight manually in an excel spreadsheet, but more and more pieces of software can track it as well along with my activities consolidating the data.

Garmin Connect is shown below. With a single data point based on this hack.


Essentially I wanted a Tanita BC-1000 or BC-1500 but as shown by DCrainmaker here in his comments, the ANT+ weight scale thing isn’t what he’d recommend. Sadly, I think he’s right, mainly because of the use case. It’s nice if a watch can track, but the FR910xt isn’t designed to be worn all the time. My FR60 was, but it didn’t do powermeter data.

Since I’m not in the mood to spend that much on a scale, I figured I’d toy with some things first. Mainly the goal is a cheap digital scale, connect it to the nRF51422 and voila – a basic ANT+ scale. It won’t do body fat measurements, but its a start. Eventually I may look at a Withings or Aria solution.

I’ve skimmed the data sheet from www.thisisant.com so I’ll just dive in.


There is suppose to be a bunch of two way communications back and forth but it’s not necessary for basic weight. Essentially the scale spews weight and the watch will get it. I throw the ANT+ sensor simulator into weight scale mode. It starts transmitting data. I can set it to computing, invalid, or a weight and set the weight in 2 decimal increments. No idea what the watches will record.


Page 2/3/4 contain the other information like hydration, body fat, metabolic rate, and mass of muscle and bone. I noticed when I tried this with the FR910xt that it just received the data, but the FR60 immediately sent data back to the sensor simulator for my activity profile. I think this is to try and support multiple people and the scale can use the height and age in the BIA calculation for body fat.


Interesting.  Some pictures showing how to turn on ANT+ scales  on on your watch. First the FR910xt:





Here is the trick. I had to actually check the manual. Press the power button and it’ll start scanning for the scales! I spent a few minutes feeling like an idiot here.





I noticed that if I changed the software up or down while in this view, so did the value on watch screen. I haven’t experimented yet with what is recorded on the watch.

Now with the FR60. The menu setup:





And here is the FR60 Trick. Hold the light button for a couple of seconds and it should show up scanning.





The next step is finding a scale to disassemble. Also I stumbled onto a great Texas Instruments part that came out recently, the AFE4300. It’s an analog front end to measure strain gages (for weight), an AC current driver to drive current from one foot to the other through the body, with a differential voltage input to determine Bioelectrical Impedance all in the same package. Dev kit is 200 dollars, so that’s probably not the right solution and the chip is a QFN I believe so I’m not keen on trying to wire it up. However, if I wanted to make a scale it would be a good starting point. so I’ll probably be doing it Nordic DK board + sniffing the data lines from a scale or interfacing to an old Accuity board that I have kicking around for basic weight.

I kind of wonder if there is a BLE profile for weight scales.

Tuesday, February 18, 2014

Check Spoke Tension with SmartPhone

Just a quick video using an app. I tried gStrings, a guitar tuner but the"Check Spoke" App (here) had better filtering for frequencies and added regression if you know the length, diameter, and material of your spoke.

Haven't checked to see if there is a good iOS equivalent yet, but I'm sure there are guitar tuner apps. Just match the frequency of the spokes, if a spoke it way off you might adjust it down. Keep in mind there is a balance between a true wheel and good spoke tension. If you aren't careful you could mess up how true your wheel is to fix the spoke tension, or more commonly, the spoke tension is messed up to fix the trueness.

Saturday, February 15, 2014

Training Peaks Beta

So first I want to admit that the beta has actually done a very good job addressing the upload issue. Seen below is the Google-esque drag and drop into browser to upload feature. Seriously pretty cool. I uploaded several of my workouts like this.


However, Training Peaks did reward my frustration with their older site with and upgrade to Pro for a week – which means tapiriik sync functions (at least until the trial expires / when I pay for a month it expires). I’m quite happy about this, and as Ray over at DCrainmaker commented, I shouldn’t get too upset about lack of API’s. Garmin doesn’t officially have one and has been throttling tapiriik.


The Beta, having addressed my upload issue, is going to be the focus. I firmly believe that a company isn’t going to stop developing a web app, so honestly they are really perpetual beta. I think for Training Peaks has alegacy group to support though. I’ve seen this in Mechanical Engineering software Catia. They have a version+revision system (such as V5R18 which stands for version 5 and revision 18), however while releasing new revisions of V5, they are concurrently building V6R7. It has to do with projects that are too big for a company to switch at one time and allows them to make great changes without alienating their customer bases.

The first thing you might want to do (Unless you live in the US) is that you’ll likely want to click on your name and go into the settings menu and fix the default from miles to kilometers and the date to DD/MM/YY. I have opinions on the Imperial versus Metric, but this map sums it up better than I can put into words.


In the settings you’ll find something really cool but nerdy stuff. For instance there is a Workouts / Meals Calendar sync link. You can sync your Outlook or Apple Calendars to TrainingPeaks. This is a first from what I’ve seen and something that I desperately want to trial though haven’t had a chance to set it up.

Additionally this is where you’ll set your Heart Rate zones (via manual input, or many varieties of calculations based on a small amount of inputs). You’ll likely need to do a bit of research or examine your previous files going into adjusting these.


You can also go into the equipment tab, but honestly I’ve never seen much point to equipment tracking. I like that it has it, but I just don’t see it as beneficial. I mean some people will love to track shoes distance for replacement purposes, but for cycling I find a keen eye on your bike and checking it is going to be more effective than trying to manage it via a software solution. I’m likely unique in that I do all my own bike building and maintenance and I would suspect that the vast number of cyclists do not. It certainly has other use cases, such as differentiating mountain from road bikes.

So now that the basics of setup are out of the way it’s into the Calendar view I go. It’s a clean interface – I like it a lot better than the previous one (which I’ll stop mentioning now). It seems to automatically default to today on the top row, which means you have to manually scroll up to see last weeks work outs. At first I didn’t like this, but it makes a lot of sense from the perspective of seeing your upcoming plan – the dashboard is where you’ll look at old data in a big picture kind of way so this makes sense.


Over to the dashboard we see something similar to SportTracks.mobi with the pie charts.


Click on the little tab on the top left hand corner and you get a list of some really well thought out graphs, yet I’m not overwhelmed by the number. You simply drag and drop  them where you want them. It provides me with very useful graphs within seconds. It’s clean and smooth (even on my older underpowered laptop which is super nice).


The only major complaint I have is that it feels very much built for a higher resolution display. If you’re running a 1366x768 (the most popular resolution by a 3:1 margin for Jan ‘14) then consider an upgrading your laptop(to maybe a Lenovo Yoga 2 Pro maybe if you want 3200x1800) as you’re not going to see anything more than two graphs at a time. Forcing my browser to zoom helps with the graphs but becomes a real problem for the text. It would be nice if there was some scalability of the sizes. This may be a short lived issue as almost every screen is going to be higher resolution soon in the mainstream over the next two years. However, then it’s the flip side, how well will it cope with a 11.6” quad FHD screen? So I would like to know how it deals in the opposite direction – the ultra high resolution screens. I suspect this is eventually going to be handed to the OS’s in the future, at least I hope.


I don’t know if it’s maybe just my personal preference but I honestly really like the colour scheme. Another thing to note is that using Training Peaks logged in on two systems and making changes to the Dashboard on one system means a refresh will get the new stuff to show up on the other. I don’t know if that was planned, but it works.

One of the things they have done well (which is a port from WKO+) is the summaries. I really love this summary type. It breaks down my last few weeks, then breaks down the last few months below it. It’s a mental thing I find; you aren’t going to remember that run six weeks ago, but you’re going to be fairly fresh about your most recent workouts. However you’ll want to see how you’re progressing on a month by month basis. Since I have a major cycling focus the 5s, 1m, 5m, etc powers are important. It gives you at the second glance.


Something I find even more important than that is the Performance Manager. This is the graph that will give you your TSS, intensity factors, TSB, etc. It’s a great view which I wish more sites would replicate.


The level of customization goes deep with CTL and ATL constants. This is something I never got into before, but it makes sense to be adjustable because two people could have very different recovery times. Some people may recover faster than others and some slower. This is something that I’m inclined to leave alone mainly because I suspect changing it requires a combination of coaching and training experience with very good feedback or potentially long term testing. I’ll go out on a limb and guess that Training Peaks have selected the median values and you generally won’t need to touch them.


I’ve done some basic exploring. Mainly looking at my workouts. At first I wasn’t keen on the pop up windows but the more I used them the more efficient I felt they were. They gave me everything at a glace and I didn’t have to constantly navigate pages. It’s different, and if you walk into it with an open mind you’ll appreciate the workflow.





Some of you might have seen me post about my old trainer software (which was before TrainerRoad, and now, not nearly as good – seen here). I designed it to save files in a Powertap replicated format. However it left the ID field blank, but manually rectifying this (place 0’s in the field) meant that Training Peaks Beta could read them – dragging and dropping them put the file on today’s date. I’d like it to have popped up asking for these time and date missing files should go – but I’m generally just impressed that it worked at all.


Since the CSV file has no true time stamp information (I save them automatically by date, but that doesn’t count as real meta data) there is a nice way to edit them. Opening the workout and clicking on the date produces the very familiar month menu’s. These are generally quick and easy to work with, unless you’re trying to upload a workout many months ago, but at that point it’s impact to CTL is so negligible that it’s mainly only for historic significance. If you really want to explore that old CSV power file from 3 years ago you can. It’ll just be a bit of a pain to get the right date but it certainly lets you.


All in all, the beta is what I should have looked at first.

I’m exploring implementing my workout plan and I’m bumping into a couple of limitations of the beta. It seems that plans can be added from the store in the Beta, but not manually. However a plan is just a series of workouts. So I went to the workout library and found my first limitation of the beta. Adding a workout has not yet been implemented. So with great hesitation I figured I’d switch to classic temporarily to see if it’ll show up.


However, I’m stopping there as I don’t want to review the “Classic” interface. I plan to put my plan into it and since Joe Friel is closely tied to Training Peaks as well it has an automated interface to put in a plan.



Training Peaks is the most expensive online tracking platform I’ve found at $20/month USD. I like subscription models for two reasons

  • Cost of access is reduced
  • Ensures Developers keep working on new features to be competitive

Being the first paid piece of software that I’m looking at, it’s hard to say if it’s analysis features make it worth the money. I’m still researching TRIMP as a tracking method compared to TSS so I can more accurately compare feature sets between different Web apps.

Bottom line (so far)

If you’re new to Training Peaks don’t bother with the Classic interface for tracking your work outs and analyzing data – however, unless you buy a plan you’ll be forced back to Classic to input yours. Hopefully this will be fixed soon.


  • The drag and drop to upload feature, very good functionality
  • Dashboard – simple,effective, and customizable – great historic graphs and listings
  • Can do a rTSS calculation for running, making your runs automatically useful for tracking training stress scores / balance
  • Interface and navigability in the Beta is much better than the Classic interface


  • API for Tapiriik syncing only available in paid version
  • The drag and drop to upload feature is not intuitively know – I had to be told about it
  • Not everything from the older “Classic” interface hasn’t been ported