Monday, 8 September 2014

Connected Bicycling - Part 1 - Runtastic Bike Sensor

Since the launch of smartphones (or at least the modern smartphones) one of the largest categories of apps and accessories have been related to fitness, usually running or biking.


Download numbers of these apps and their free versions are in millions. People use these app. Smartphone focused fitness has become so big business that all these competing companies are looking into figuring out how to increase their revenue and how to lock users into their system.

A good example if Runtastic who have created an ecosystem of connected devices around their smartphone software. They sell everything from bathroom scales (which is still not supported by Android for some unfathomable reason...), to biking cadence sensors and new wrist bands.


As a smartphone geek and cyclist this combination fascinated me. So much so that I activated a Gold account on Runstasic and bought one of their Bike sensors to attach to my bike.
My geekiness, and enthusiasm about connected biking is what drove me to write this blog post. In this post I want to shed light on some of my experiences with the current state of the Runtastic biking sensor as well as explain some thoughts about improving it. 
Before I go into any more details about my experiences let me explain few things about me. Different people have different needs.

I am a hobbyist, free time bicyclist riding a cheap (but good) mountain bike. I don't care about training to ride, getting the best results or the fastest times. I never compete in any biking events. I ride my bike accompanied by my girlfriend to enjoy scenery and visit new places around the Bavarian Alps. I am a Sunday cyclist.

My setup

My current biking setup is simple. I use a water resistant container to hold a cheap Android smartphone (Moto E) as my main screen. In the same bag I have a battery bag that allows me easily go a day with the phone screen on and on full brightness. On the Moto E I run Runtastic Mountain Bike PRO app to display my route, speed and other information. The Moto E is connected to the Runtastic Speed and Cadence Sensor via Bluetooth.

I will be extending my connected biking by adding a Lifebeam Helmet once it arrives.

Runtastic Speed and Cadence Sensor

As I mentioned, me being an Android geek I wasn't able to resist getting my bike connected. I bought the Runtastic Speed and Cadence Sensor.
To me this was a no-brainer. Even though I don't care about training or improving my biking I want the data. I don't know what to do with the data but I want to have it to figure out what to do with it later.

You can buy the sensor from (but read below first): Runtastic.com Amazon.de Amazon.com

Unfortunately, the sensor isn't what I wanted it to be. It's a painful reminder about two things:
  1. Building hardware is difficult.
  2. Bluetooth is very unreliable and difficult to get right.

Hardware

The sensor part is all in one section of the hardware. The cadence sensor is larger and bulkier and attached to it there is an adjustable arm for the speed sensor. Both sensors have counterparts that are attached to the pedal and to a spoke.


When attaching the sensor you're going to run to the first problems of the system. There are thousands of different bike frames and Runtastic has tried to create a sensor that can be attached to any of them. The sensor can be attached with a fast attach rubber strap in the package or cable ties (also included). On my bike it was literally impossible to use the fast attach strap which, in fact, broke immediately when trying to attach the device. I ended up attaching it permanently with cable straps.

The sensor and the counterparts have to be very close to each other for the system to work. The manual says that the distance has to be at maximum 4-5mm. That is very close so you have to be very precise.

Setting up and connectivity

The next step after setting up and performing the initial connection to the Android app it was time to for the first ride. The amount of frustration during the first ride cannot be oversted. The sensor seemed to be connected but might not work. There's no indication on the Android app if the speed sensor works or not (you get GPS based speed information if the sensor fails).

The feeling is probably best described as helplessness. There was nothing I can do. I tried to reconnect, rebooting phone, restarting everything and even removing the battery from the sensor. There was no way for me to tell if the sensor wasn't on (it has no indicator for it and it is supposed to turn on automatically), if the Bluetooth connection failed, if the sensor wasn't correctly setup to read the counterparts.

A lot of this frustration could have been alleviated with a clear user interface on the smartphone app telling me what is going on!

After fighting with the sensor and rebooting everything multiple times it finally woke up. I still have no idea what actually caused it to come into life.

Here is a an example dataset from a short test ride with the sensor connected.


From the chart you can see the value going up and back to zero. Many of the zero points are accurate but I noticed the sensor losing connection many, many times which caused the cadence value to drop to 0 even when pedaling. Also worth noting that the last 10 minutes of cadence data is completely missing.

So much for reliability. 

Few weeks later for a longer weekend ride things were even worse. The device stopped working altogether. It simply refuses to connect anymore. After realising that the system wasn't working I decided to ignore it as I didn't want to spoil my good mood by spending hours fighting with the device. So there. The device has now became a thing that is attached to my bike but doesn't do anything. So much for gathering any data.

As a sidenote I want to point out that my phone's Bluetooth works just fine. I have an Android Wear device connected to it all the time.

Conclusion about the Runtastic sensor

So, what to think about this device? It clearly isn't very good. It is difficult to install, unreliable to use and frustrating. It also isn't cheap. So why am I not rating it with one star on Amazon and moving on?

I like the device.. well, I don't like the device but I like the idea of the device so much that I want to see it work. I want to see a second version of this device with improvements. I will even spend the time and frustration to get the damn thing working again!


How I would improve the sensor?

I think the sensor has two massive problems. The first is its lack of feedback. There's no way for me to know if it is out of battery or if it'll soon run out of battery. I cannot know if it is on or if it is connected but not working. This needs to be absolutely fixed from usability point of view. The frustration must be eliminated.

Another big problem is the massive data loss with the device. It wholly relies on the smartphone to keep the information and the device itself doesn't have any smart component. This leads into a situation where if the connection to the smartphone breaks all data for the duration of the connection loss is lost. And lets face it. Bluetooth sucks. There is no such thing as reliable bluetooth connection. This must be fixed as well for the device to be pleasant to use.

Fixing these issues

I think Runtastic has to give up the idea of keeping this sensor so simple. It's too simple to work.

I would like to see it separated to a smart component and rest of the sensors. I'd maybe even separate the two sensors to a separate pieces of hardware to make it better compatible with rough terrain biking.

By the smart component I mean a piece of hardware that is physically connected (either directly or with wires) to the sensor components. I want the smart component be powered with a rechargeable battery as well as contain at least one indicator LED. The LED should indicate status of connectivity as well as battery status.

I want the smart component also be detachable (for recharging and anti-theft).

It need to have small amount of memory as well so it can keep all the data when there's no connection to the smartphone. This way I will be able to get my the information to my phone later even when I have issues with the phone connection. It should automatically sync between the phone and the sensor whenever connection is reconnected.

The smartphone software needs to be improved as well. I want to have clear indication about the status of my sensor. I want to know if the speed I see is from GPS or my speed sensor and if my cadence sensor is connected or if the sensor is connected but reporting 0 cadence.

In short I want the sensor to:

  • Better indicate if it is on, connected or out of battery.
  • Recover from Bluetooth connectivity issues.
  • Have clear feedback on my smartphone display of the status of the sensor.

Conclusion

The Runtastic sensor is not very good but the idea is. I have never before been such a fan of a device that clearly doesn't work. I feel that this is the beginning. I want to see where connected bicycling (and health) can be taken.

I will be writing a follow up to this post about my thoughts about using the data and what I'd like to see in the services for hobbyists.

Stay tuned.