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.

[DSC_89214.jpg]

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!

[DSC_9595%255B4%255D.jpg]

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.

BUT

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.