Bike trainer computer: Speed, Cadence, Heartrate, Trainer temp

[Kurt] was using a bike trainer to get in shape for warmer and dryer biking months. Unfortunately it’s pretty hard to train if you don’t have reliable data concerning how hard you’re working. There’s commercial solutions for trainer computers but he’d read some rough reviews about them and decided to build his own trainer computer. He’s done a great job of integrating a lot of different data collection sources. He picked up two replacement bike computer sensors to use on the back wheel for speed (the front wheel is stationary with this type of trainer) and on the crank for cadence. He also wears a heart rate monitor and sourced a SparkFun heart rate module to gather that data. Finally, an LM235 analog temperature sensor was combined with a spring clamp to detect the temperature of the trainer’s resistance module.

Data from the sensors is collected with a PIC16F73 microprocessor and fed to a computer over a serial connection. He’s got a screenshot of the realtime graphs that he’s using for feedback while on the bike. This is a useful and practical setup but when he get’s tired of exercising he’s just a few lines of code from converting this into a gaming controller.

[Thanks Justin]

Comments

  1. Chris says:

    Does it tweet?

  2. Spork says:

    I love this idea, but wish the hack was a bit more ‘homebrew’. As in less combining of pre-built modules and more building it all from scratch. I know how hard it is to make/buy sensors and make them accurate, but that’s half the fun.

  3. Chris says:

    This is very cool! Especially for a health person like me, and it doesnt use an Arduino! ;)
    Im not sure why one PIC doesnt do it all given software debouncing is fairly easy, there are not that many sensors and it would eliminate the annoying 1/2byte communication… However the software and java implementation is nice, simple or not Java is one of the few mainstream languages I have never played with and this has helped me decide to play with it (Im not good with GUI stuff other than C# in VS).

  4. Mike Szczys says:

    @Spork: That’s like saying you’re not really brewing your own beer unless you develop and culture your own strain of yeast. This is a great hack.

  5. Spork says:

    @Mike
    Would you like pictures of my yeast cultures?:
    http://web.inomod.com/yeast/YeastI.jpg
    http://web.inomod.com/yeast/YeastIII.jpg
    http://web.inomod.com/yeast/YeastPlate.jpg
    http://web.inomod.com/yeast/YeastTube.jpg

    I know that it is a whole different animal and I wasn’t trying to complain. To clarify my comment, this hack would be over the top awesome if it had homebrew components.

    Cheers.

  6. janin says:

    Pretty nice, and you can’t complain of the lack of documentation.
    He seems to derive the power from the speed of the wheel, but why not derive it from the heat of the dissipator on the fluid unit ?
    Also if the writer reads this, RXTX (http://www.rxtx.org/) is a better alternative to javax.comm.

  7. seb says:

    @Spork but what isn’t made up of modules these days? Even the PIC is a module of sorts! @Chris I recently rode an endurance road event with a few mates and may have been tweeting as I was riding (hitting 100km, half way, 200km etc) – an automatic way to do that as you’re riding would be great!

  8. MFunkibut says:

    Seems overkill to me on a stationary bike. You need a reed switch and a serial cable to attach to your PC running some code. Then you could auto-tweet workouts, update a database so you have a workout log automatically, have it email you when you haven’t worked out in 24 hours.

    Now obviously you can’t take a PC on the road…

  9. Cameron says:

    @Janin – Kurt Kinetic publishes the power curves as a function of wheel speed. So that’s what I used :) It’s easier.

    FWIW – I did this two seasons ago, and put it up for some college buddies of mine across the country who were big cyclists. I’m incredibly surprised anyone found this, let alone linked it. I was a little confused by the e-mails in my inbox this morning referring to a “cool project” and it took me a bit to figure out what happened!

    The choice of the USB PIC board w/ HRM chip was purely based on availability of the HRM chip, and other scrap in the junk bin of parts. A single PIC is more than capable of the USB, sensor inputs, A-D, etc.

    I’ve put a small machine shop together in the interim; I’d probably use a stepper motor now and electronically vary the resistance myself in response to training curves, and it’d be much easier than approximating a power curve.

    It still won’t tweet, though. Tweeting your cycling performance? Really? Seriously? :)

  10. ksmith says:

    Holy crap, I’ve been wanting to do this for a year now, temp sensor and all. I have a fluid trainer, and I know that it’s resistance varies with temp. A buddy of mine has a powertap wheel that I can use to calibrate my trainer. I also got my TI Chronos dev kit in the mail this week, I’m hoping to integrate that too.

    I’ve been too lazy to put it all together, but you’ve inspired me, and given me a great jumping off point to boot. I never figured that there was anyone else who would have come up with this. Boy was I wrong. Thanks again!

  11. fantastic blog I really like how you make it sound so simple.

  12. Commenting says:

    Just found your page through google, You should check your blog in IE browser, it stuffs up the navigation

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 91,307 other followers