florian berger

bikesrv

About

bikesrv is a server to measure the output of an exercising bike and make it available via an API.

Wait, what?

Ok, you know exercising bikes. That thing that looks like a bike, but doesn't move. You use it when you want to get in shape.

Some of these bikes have an output signal that is fed to a small computer with a large display across a cable and a mini-jack. The display then shows your speed, virtual distance etc.

Turns out that this mini-jack just fits into the audio in of a stock computer. This is where bikesrv comes into play. It analyses the signal from the bike and computes the bike's speed.

The final step is a built-in web server in bikesrv. It makes the current speed is available through a simple HTTP API.

Ok, but why?

You could do all sorts of analysing and feedback that an ordinary bike computer does.

But it is much more fun to turn the exercising bike into a game controller.

Bike Game Controller

What is the HTTP API?

The server will listen on port 1805. If you call

http://HOST:1805/bikefreq

you will receive a text/plain response that contains the current number of revolutions per second.

Prerequisites

Python 2.x http://www.python.org

pyo https://code.google.com/p/pyo/issues/list

Installation

Unzip the file, then at the command line run

python setup.py install

Usage

On the command line, run

python2 bikesrv.py [options]

Options:

--version             show program's version number and exit

-h, --help            show this help message and exit

-v, --verbose         Display debugging information while analysing.

-r RATE, --rate=RATE  The number of measurements per second. Default: 500

-d DROPOUTS, --dropouts=DROPOUTS
                      The number of signal breaks per full wheel turn.
                      Default: 3

Documentation

To read the API documentation, open a shell / DOS window, navigate to the bikesrv directory, and run

pydoc bikesrv

You can create a HTML version using

pydoc -w bikesrv

Latest Release

0.2.0
19 May 2012

Download

bikesrv-0.2.0.zip

MD5: 6c621056 d8a48d25 0a64f7f2 29c74582

Releases are currently not signed, as I am transitioning from PGP to a different software.

License

GPL

Links