Homemade Cycling Powermeter

39,117

86

47

Introduction: Homemade Cycling Powermeter

Hello!

In my latest project I tried to realise a simple and cheap cycling powermeter based on Arduino. After a month I can say "Yes I can".

There are many commercial products (SRM, SRAM ...), but I'm always looking for a homemade solution. On the following pages I'll show you my successful construction.

Step 1: The Principle

To calculate the power, we have to determine the current force, which is spent by the foot on the pedal. For this purpose I clued four strain gauges (http://www.ebay.com/itm/5Pcs-Pressure-Sensor-Precision-BF350-3AA-BF350-350-Strain-Gauge-Resistance-/361278029289?hash=item541dd93de9:g:oOYAAOSwstxVOFv2) on the sides of my old crank. To get a Signal depending on the load I arranged them in a so called Wheatstone-Bridge.

During one full rotation I sum as many forces as possible and calculate the average. Combined with the average velocity (2 * Pi * crank-radius / rotation-time) I get the power P.

To know the proportionality between the force F and the output-voltage U I strained the crank with different masses and myself (a lot of mass ;-)). The rise of the line is in my case 292 Newton/Volt.

For the amplifier I took a LF353 with a gain of 330. With this Setup I get Output-voltages between 1 and 4 V. I decided to start at 1V to avoid a negative drift and late response. Therefore I have to determine the offset at the beginning of the measurement and subtract this offset from the following voltages.

Step 2: The Setup

For the power-supply I use two lipo-battery packs (7.4V, 1200 mAh for the receiver and a smaller 600 mAh one for the transmitter).

To save space I use an arduino nano and the NRF24L01 are responsible for the communication. They work great and you can send as many values as you want. In my case I send the power (P) and the rounds per minute (rpm).

I also had to check, when a full rotation has accured. To avoid a sensor, which has to be mounted on the bike-frame, I decided to use the gyroscope MPU-6050. The accuracy is about +-3 degree per full rotation, which is satisfying.

Step 3: The Completed Crank and Receiver

The challenge was to fix up all the components (power-supply, gyroscope, NRF24L01, amplifier, arduino) on one crankarm but I succeded. I fixed them with double-sided tape and cable ties.

To mount the receiver on the bar I use the clamp from a bicycle-lamb.

Step 4: The Results

After calibration and programming I first tried my powermeter indoor on my training roller. I got reasonable values and therefore I went outside. Heureka, it works :-)

Finally I can say, that it's possible to build a simple and working powermeter for

* 2 x arduino nano ..... 10 USD

* 2 x NRF24L01 ......... 5 USD

* 16x2 LCD ................ 5 USD

* 4 x strain gauges ..... 10 USD

* 2 x Lipo battery pack ..... 15 USD

* MPU-6050 ..................... 3 USD

* electronic parts .............. 7 USD

less than 55 USD.

Here is the video: https://www.youtube.com/watch?v=v1aaupmxOsI

Thank's for visiting my thread. Maybe you're interested in some of my other projects too:

https://www.youtube.com/user/stopperl16/videos

Make it Move Contest 2016

Participated in the
Make it Move Contest 2016

Bicycle Contest 2016

Participated in the
Bicycle Contest 2016

Be the First to Share

    Recommendations

    • Pi Day Speed Challenge

      Pi Day Speed Challenge
    • Trash to Treasure Contest

      Trash to Treasure Contest
    • Microcontroller Contest

      Microcontroller Contest

    47 Comments

    0
    zimmij73
    zimmij73

    Question 3 months ago

    First of all congrats to this very nice project. I do have one
    question relating the Wheatstone Bridge: Did you use any
    trimmers/potentiometers to balance the bridge? And if so in which
    constellation? Thanks in advance.

    1
    stoppi71
    stoppi71

    Answer 2 months ago

    Hello! Sorry for the late answer. I've added the circuit in step 1. There you can see the potentiometer and the additional resistor (5 Ohms) to balance the bridge. Good luck, stoppi

    1
    jilek.ambroz
    jilek.ambroz

    Question 4 months ago on Introduction

    Hello, would you please be so kind and share the arduino code? Thank you in advance

    1
    arick
    arick

    7 months ago

    do you mind sharing the arduino code ? thanks

    0
    kwiet4004
    kwiet4004

    Question 1 year ago on Introduction

    Are those two scripts, all the scripts
    that I need? That I need for the total project? Or do you have any other
    scripts to fully make the project? As example: the script for the display where
    you can see the power en rpm. If you also have these you can also send it. Can you please send me the scripts in a word-document to my e-mail? Because i can't open the arduino scripts in my e-mail that you send me to my email. My e-mail is cisse.coppens@hotmail.com Kind
    regards Cisse

    0
    kwiet4004
    kwiet4004

    Question 1 year ago on Step 2

    Are those two scripts, all the scripts
    that I need? That I need for the total project? Or do you have any other
    scripts to fully make the project? As example: the script for the display where
    you can see the power en rpm. If you also have these you can also send it. Can you please send me the scripts in a word-document because i can't open arduino code from my e-mail? Kind
    regards Cisse

    0
    FergusG5
    FergusG5

    Question 2 years ago

    Hi, would you mind sharing the code written regarding the MPU6050 and multiplying forces with RPM to find power ?

    0
    kwiet4004
    kwiet4004

    Answer 1 year ago

    Do you have the code for the project in total?

    0
    dikiligundemi
    dikiligundemi

    2 years ago

    please arduino code?

    0
    kwiet4004
    kwiet4004

    Reply 1 year ago

    Hi
    Have you the arduino code about this project?

    0
    steveinjava
    steveinjava

    2 years ago

    Hi again. Finally at the second attempt I have the strain guages...Really cool they are too! Can I ask what glue you used? I am guessing the glue needs to be very rigid or the flex will not be transmitted to the guages. Perhaps SuperGlue or would that dissolve the gauges?

    0
    steveinjava
    steveinjava

    Reply 2 years ago

    I am getting there slowly. Do you reckon using the 8bit ADC on a A pin of the Arduino is losing accuracy? I have a 24 bit ADC which I could use. Any idea if it will make any difference? Of course it adds another chip onto the crank. If I decide to use an ESP32 then they have 12 bit ADC's which might be good enough. Any thoughts? Thanks

    0
    steveinjava
    steveinjava

    Question 2 years ago

    So if the components all work with 5V then couldn't I just use a 5V battery- or (as I have now ordered the 7.4V batteries!) I could use the 5v pin on the Nana to feed the wheatstone-bridge and Amp?

    1
    stoppi71
    stoppi71

    Answer 2 years ago

    Yes you can replace the 7805 by using the 5V-pin of the nano. But you have to check first whether the +5V-pin can offer enough milliamps (mA) for the Bridge and the amplifier.

    0
    steveinjava
    steveinjava

    Question 2 years ago

    I ordered ten of those strain guages (dirt cheap) but then noticed this module...It seems to be the whetstone-bridge circuit/amplifier etc all integrated ready...

    https://www.aliexpress.com/item/Strain-gauge-Bendi...

    Given space is limited around the crank a couple of these (one each side) would be a lot more compact and reliable if they do what I think they do...What do you think?

    Again, thanks for all your assistance!

    1
    stoppi71
    stoppi71

    Answer 2 years ago

    I would say "just try it". But the Signal which you'll get from those single stress gauge will be lower compared to the Wheatstone-Bridge using 4 gauges

    0
    steveinjava
    steveinjava

    Question 2 years ago

    Thanks. So the 7805 goes in series between the battery and the Nano? I can't see it shown on your wiring diagams. The VIN pin accepts voltages up to 12V so I am slightly confused. BTW I was involved in the design of a commercial poweremeter which never got completed so I have loads of ideas and code for the use of the data- I will get it to work with a 2.4" TFT LCD altough this will require a bigger battery to run. As I develop this I will share stuff via your comments if you do not mind :) Thanks again for sharing your work

    1
    stoppi71
    stoppi71

    Answer 2 years ago

    The 7805 is in series between the battery and the Wheatstone-Bridge and the LF353 amplifier. The arduino nano gets the whole 7.4V from the battery....

    1
    steveinjava
    steveinjava

    Question 2 years ago

    Thanks for the inspiration to try this myself. I am unclear how you connect the amplifier(s)

    LF353 to the strain guages. Could you give us a circuit diagram/parts list of the wheatstone bridge set up please?