Introduction: Homemade Cycling Powermeter


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 ( 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:

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


XczL made it!(author)2017-04-23

First of all, I give you my congratulations to the project.

I wanted to know, if you can send me the arduino project code ?, I would be very helpful, thanks

YannicM1 made it!(author)2017-03-30

Very nice work!

How many values do you record in one crank revolution (approximately, more like 10, 100, 1000,...)?

Can you please share the code for this project?

Bijohemoth_ElectronicsGuy made it!(author)2017-03-22

do you fancy sharing the code for this? thanks! :)

Anders+H%C3%B8xbroL made it!(author)2016-10-26

Nice project - Doing a similar project at my education. Did you do anything special to programme the Nano V3?

stoppi71 made it!(author)2016-10-27


What do you exactly mean with special?

Anders+H%C3%B8xbroL made it!(author)2016-11-05

Can you upload the arduino code for the NRF boards?

Anders+H%C3%B8xbroL made it!(author)2016-10-27

I'm having trouble on how to make the nano board and the NRF24L01 communicate with each other.

You write: "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 would like it to do exactly the same thing, but i just do not know the process of this?

WillemP1 made it!(author)2016-08-21

Very Interesting project and clear hardware design. Can you tell a litlle more about the software? I am specially interested in the calculations for the power.

mopswachtel made it!(author)2016-04-28

How much money did you end up spending on this?

stoppi71 made it!(author)2016-04-28

Please read page 4 ;-)

mopswachtel made it!(author)2016-04-28

Aahaaĺ! Sorry I didn't see the button in the mobile phone layout :) Great work! As soon as I have more free time I'll definetly give this a shot.

szabonandi. made it!(author)2016-04-28

Very good idea to use strain gauges on the crank to detect the force! Congrat!

EnriqueD2 made it!(author)2016-04-28

how hard and what else is needed to send the info via ant+ protocol or BTLE 4.0?

awesome job, now it needs to be waterproof and minimal.


stoppi71 made it!(author)2016-04-28

With HC-05/06 modules instead of the 2.4 GHz-NRF24L01 you can send them to any Smartphone...

Tekturka made it!(author)2016-04-17

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

stoppi71 made it!(author)2016-04-18

Great ;-)

About This Instructable




More by stoppi71:Multi Channel Analyzer for Gamma Spectroscopy With Arduino & Thereminoscanning laser microscope with ArduinoArduino Segway
Add instructable to: