How does a Wahoo Kickr measure / "measure" power?

So I’ve been searching around and not really found a satisfactory answer…

I believe Kickrs used to have a strain gauge but turned out to be unreliable. Now they don’t, how exactly is the power number produced?

I’m assuming because of the spindown calibration it has something to do with acceleration / deceleration / speed of the flywheel, but can’t quite figure it out exactly.

The following is just my guess, without knowing much about the Kickr hardware:


  1. Kickr can accurately measure rotational velocity ω as a function of time
  2. Kickr knows the moment of inertia I of it’s own flywheel (easy to calculate from the design or measure once)
  3. Kickr knows the calibration ‘spindown torque’ τ_s as a function of rotational velocity
  4. Kickr knows the torque it induces on the flywheel with it’s electro magnets τ_e. Of course Kickr can vary the torque it applies to change resistance.

A. With I and ω known, the energy in the flywheel is E_K = 1/2 I ω² at any point in time. Monitor ω while keeping track of the energy loss on flywheel due to spindown and electromagnet, then the energy input from the rider is known.
B. total torque is equal to time derivative of I times ω. Note that τ_total = τ_s + τ_e + τ_human. Time derivative of ω is easily computed, so τ_human on flywheel is computed. Subsequently Power = τ_human times ω. Mission complete!

Two strategies to get at the same result. Essentially: calibrate losses, known moment of inertia, measure rotational velocity, and know the effect of your magnets, then calculate back. Pretty good way of calculating power!
Note that a strain gauge just measures force, you’d still need (rotational) velocity to translate to power. So pedals do essentially the same thing, except the measurement of torque is more direct so to speak.



That’s me, blinded by your science.


Small ps: the funny thing is when the flywheel has constant speed, the Kickr knows the power you’re delivering is balanced with the power the kickr is extracting.

pps: I might well be that instead of derivative the kickr software takes a numerical integral over tau times omega with a soft of moving average, which might be less susceptible to high frequency noise in the rotational velocity. So it could be implemented in many ways, and depending on where the dominant noise contribution / uncertainty sits in the measurement system a different calculation leads to a more precise/accurate result.

Another small beside: the kickr supports cadence readout without an additional sensor. I suppose the readout from the torque is sufficiently low noise and with enough temporal resolution to detect the modulation of torque corresponding with pedal strokes. Like detecting the frequency of a small AC signal on top of a DC signal. This is consistent with the kickr not being able to detect cadence when you pedal without force…

One thing that I don’t get yet is the dependency in temperature. I suppose it is relevant as the Kickr Core upon spindown gives that readout. What bugs me too is that for me the offset always gives 32768 (with a minus? I forget), which is exactly 2^15. That suggests the value is clipping the dynamic range, which in my experience is never good in a measurement system. But ah well, I’m having fun on the Kickr and never worry about the thing, which is optimal.

Any smart trainer without a strain gauge is estimating power based on the flywheel speed versus resistance that is estimated based on some baseline numbers plus the calibration rundown.

Optical sensor measures flywheel speed.

On the 2017 Kickr the optical sensor is not well protected from external light, and things like shifting light (e.g. shadows) can impair power estimates and mess with Erg mode.

The real answer is there is an Army of little dudes inside the flywheel. They don’t like the wheel to spin. They’re called “We’re Against Things Turning“ or WATT. The harder you work the more members of WATT get called into action. Then the Head WATT counts his little soldiers and reports to the computer. You may think the flywheel on the Kickr vs. Core is heavier but it’s just more WATT soldiers packed inside. There you go.


I would almost believe it. In a pre-scientific civilization you’d be the priest explaining why the sun rises and the rain falls, and that would be our worldview.

Power = force x angular speed.
Strain gauge is not only method to measure force.
i.e. Elite Direto’s OTS is measuring axle twist to determine force.

1 Like

My wheel-on Tacx does the same thing, but because it’s wheel-on, its related to how much the wheel is tightened to the trainer. Going towards “too tight”, calibration numbers are small positive (0,…), towards “not tight enough” close to 16bit-large like yours. I guess they wanted to avoid negative numbers for some reason, which is why they implememted it that way. (So I think if your calibration number would go larger, it wouldn’t get clipped, it would go to 0,1,2,…)

This is not an estimate at all. All (cycling) power meters I am aware of deduce power indirectly, including strain gauge-based power meters. One way is exploit that power equals the change in energy, which is what @LukasKun nicely explained. The other is that force equals force times speed.

This is what happens in strain gauge-based power meters: from the strain you deduce a force (which also requires a temperature-dependent calibration curve), and when you multiply the velocity (deduced from the cadence, which needs to be measured as well) you get your power reading. Many of Elite’s trainers measure power differently, they use what they all an optical torque sensor, which has the highest claimed accuracy of any power meter (+/- 0.5 %) on the mass market.

Exploiting that power is the change in energy over time is just another equally valid way. Probably the reason why you are putting it in a separate category is that many dumb trainers could be equipped with speed sensors to get “virtual power”. Scientifically speaking, these are just much less accurate. So the manufacturer uses the same power curve for all units rather than calibrate each unit separately. Also, many of the speed sensors do not include temperature compensation (although I heard that Elite’s sensor does). Factory calibration costs money, which is why dumb trainers are cheaper and making power meters at scale is highly non-trivial.

This is what happens in strain gauge-based power meters: from the strain you deduce a force (which also requires a temperature-dependent calibration curve), and when you multiply the velocity (deduced from the cadence, which needs to be measured as well) you get your power reading.

Also, many of the speed sensors do not include temperature compensation (although I heard that Elite’s sensor does). [/quote]

Cadence measurement can’t be used as such for velocity source. There might be user controllable gear ratios between.
Velocity has to measured with fixed ratio to force measurement.

Speed sensors as such don’t need temperature compensation, but force measurement sensors usually do need.

The Elite trainers are using an optical strain gauge, AFAIK. They’re one of the few smart trainers that has an actual power meter.


Most smart trainers AFAIK measure (really, estimate) power based on measured RPMs (flywheel speed) versus assumed torque (which I assume is based on a predetermined value for a given amount of power applied to the electromagnets in the resistance unit) plus/minus a calibration factor that corrects for the drag in the system (unless you have a Tacx Neo, which in theory doesn’t need to be calibrated because it doesn’t have a belt drive).

Most smart trainers don’t directly measure torque/power like power meters do (RPM calculated via an accelerometer or cadence sensor vs torque calculated based on mechanical strain).

My old Taxc Flux measured something like 30 watts high at threshold because (I assume) the pulley warped after the belt slipped off of it.

I should have been more precise: it is the velocity of the crank that matters, not the velocity of the bike. The cadence is, up to a factor of 2 pi, the angular velocity. And since you know where on the crank that sensor is, this gives you the linear velocity of the crank. From that you can compute the power as the (dot) product of force and (linear) velocity.

I was only referring to the strain gauge when it came to temperature compensation. Elite’s optical sensor is, as a matter of principle, not affected by temperature fluctuations, so it doesn’t need to compensate for that either.

No, it is not an estimation of power, you compute power from the quantities you measure, just that you are using a different equation for power. Crank-based power meters use power = force * velocity, where * is the dot product of vectors, and is based on the mechanics of the crank. But all ways are equally valid. Other power meters use an energy balance, which means they measure different physical quantities. In case you have a rotating flywheel, once you account for the friction built into the mechanism and all other interactions, you can make an energy balance. From that you can infer the contribution by the rider in the way that @LucasKun explained.

Neither do power meters. Strain gauges infer a force from a change in resistance, which, in turn, is due to a change in length as a result of the applied force. Crank-based power meters also need cadence as an input, and from that they compute the power. But it is important to keep in mind that strain gauges do not measure power.


Unless you have a gen 1 Kickr yours does not use a strain gauge. There is an interview with the CEO of Wahoo by Ray Maker where he explains why they removed the strain gauge when they produced the second generation. It takes some finding, but it’s on YouTube here - Wahoo's New KICKR: Accuracy Tech Talk - YouTube

I’m not a mechanical engineer but my understanding is that because of the position of the strain gauge they could not get the precision required.

1 Like

And, I believe from memory that to many were getting damaged during delivery