Homemade Cycling Powermeter

25,769

74

38

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

Share

    Recommendations

    • First Time Author

      First Time Author
    • PCB Contest

      PCB Contest
    • Big and Small Contest

      Big and Small Contest

    38 Discussions

    0
    None
    steveinjava

    4 months 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?

    2 replies
    0
    None
    steveinjavastoppi71

    Reply 6 weeks 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
    None
    steveinjava

    Question 8 months 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 more answer
    1
    None
    stoppi71steveinjava

    Answer 8 months 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
    None
    steveinjava

    Question 8 months 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 more answer
    1
    None
    stoppi71steveinjava

    Answer 8 months 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
    None
    steveinjava

    Question 8 months 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 more answer
    1
    None
    stoppi71steveinjava

    Answer 8 months 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
    None
    steveinjava

    Question 8 months 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?

    2 more answers
    1
    None
    stoppi71steveinjava

    Answer 8 months ago

    Hi! The 7805 voltage regulator is used for the wheatstone bridge and the LF353 amplifier. The incoming voltage is about 7.4V from the lipo-accu and with the 7805 you get stabilized 5V, even when the input voltage drops a little bit...

    0
    None
    steveinjavasteveinjava

    Answer 8 months ago

    I watched the video and there is the circuit diagram for the sensors- sorry i didn't look first. Where does the voltage regulator get used...You seem to put the 7.4V straight into VIN (which is fine) so where does the 7805 regulator get used? Thanks!

    0
    None
    Tekturka

    2 years ago

    Nice project :) I did something like this in the last year, but i kept things minimal. Here are few photos of my powermeter

    temp_-1136668075.jpgtemp_2049444351.jpgtemp_912262100.jpg
    6 replies
    0
    None
    doricardoTekturka

    Reply 11 months ago

    Hi friend, Would you give us details about your project? I mean, arduino model and etc.

    0
    None
    hanlin_yTekturka

    Reply 1 year ago

    Did you use two interrupts in your program? I think that would make a good idea Instructable. You might win some contests!

    0
    None
    stoppi71hanlin_y

    Reply 1 year ago

    At the Moment I use a while-loop. while(angle < 360 degrees) add the forces. if angle >= 360°, calculate the average force F and speed v ---> P = F*v, degrees = degrees - 360° ----> next while-loop

    0
    None
    hanlin_yTekturka

    Reply 1 year ago

    Another use of the cadence sensor is power saving. When you pedal, the mcu turns back on and when it times out, it goes to sleep.