bikesrv - A server to measure the output of an exercising bike and make it available via an API.
bikesrv is a server to measure the output of an exercising bike and make it available via a web API.
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.
What is the HTTP API?
The server will listen on port 1805. If you call
you will receive a text/plain response that contains the current number of revolutions per second.
Unzip the file, then at the command line run
python setup.py install
On the command line, run
python2 bikesrv.py [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
To read the API documentation, open a shell / DOS window, navigate to the bikesrv directory, and run
You can create a HTML version using
pydoc -w bikesrv
bikesrv is licensed under the GPL. See the file COPYING for details.