Some time ago I wanted to be able to log my workouts on my stationary bike, Monark LT2, to my regular Garmin Connect training diary. That way I get all my training collected in one place. Since there is already an excellent open-source software that supports this for a number of different bikes and trainers, I decided that it’s better to build upon that than to reinvent the wheel. This project is called Golden Cheetah and is based on Qt which I’ve used quite a lot at work. Golden Cheetah can actually do a lot more than log workouts, it comes with tons of analysis tools and performance management metrics for those who are really in to the details of bike training and racing.
The Monark LT2 has a USB-port but it doesn’t come with any information on how to use this port. So first I had to contact the manufacturer of the bike, Monark Exercise, in order to get the specification for the protocol used. Luckily they were very helpful and sent me the specifications and later also gave me the permission to release, as open-source, an implementation of the protocol. The USB-port was connected to an FTDI-style serial port and the protocol allow for easy polling of data I wanted which is power, cadence and heart rate. On the more advanced versions of Monark’s bikes you can also control the power, so you can tell the bike you want a power of 300 watts and it will adjust the load so that no matter what cadence you are pedaling at you will have to produce the correct wattage. Since my bike doesn’t support this I cannot test it, but the protocol is simple enough that I’ll probably add it later and see if I can get someone at Monark to try it out for me.
After using this for a while I decided that it’s time to polish things up and try to get the patch accepted upstream, so I’ve finally sent out a first RFC patch to get some opinions on the integration.