How to switch between accelerometer and gyroscope to detect cadence on a bicycle

By automatically switching between accelerometers and gyroscopes based on data quality, the method ensures accurate cadence measurement while optimizing battery life in bicycle cadence detection systems.

JP2025536700APending Publication Date: 2025-11-074IIII INNOVATIONS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025528734
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-11-18
Filing Date
2023-11-17
Publication Date
2025-11-07

AI Technical Summary

Technical Problem

There is a trade-off between battery life and data quality when measuring cadence on a bicycle, as accelerometers provide less reliable data under certain conditions but consume less power, while gyroscopes offer more reliable data but drain the battery faster.

Method used

A method that automatically switches between using an accelerometer and a gyroscope for cadence detection, activating the gyroscope only when accelerometer data quality is poor, thereby conserving battery life without compromising data accuracy.

Benefits of technology

This approach maintains reliable cadence data while significantly reducing battery consumption by minimizing continuous gyroscope usage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025536700000001_ABST
    Figure 2025536700000001_ABST
Patent Text Reader

Abstract

The power meter may use acceleration data from the accelerometer to determine pedaling cadence. When the power meter determines a first condition indicating that cadence quality is below a desired level, the power meter activates the gyroscope and determines cadence using rotation data from the gyroscope. Subsequently, when the power meter determines that the first condition no longer exists, the gyroscope is deactivated and the acceleration data from the accelerometer is used to determine cadence.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to U.S. Patent Application No. 63 / 426,640, filed November 18, 2022, entitled "Method for detecting cadence on a bicycle by switching between an accelerometer and a gyroscope," which is incorporated herein by reference in its entirety. [Background technology]

[0002] Processing sensor data from a gyroscope is more reliable than processing sensor data from an accelerometer to measure bicycle pedaling cadence, but because gyroscopes consume more power than accelerometers, using a gyroscope reduces battery life. Summary of the Invention [Problem to be solved by the invention]

[0003] One aspect of the present embodiment involves recognizing that there is a trade-off between battery life and data quality when measuring cadence on a bicycle or other human-powered, pedal-driven vehicle. On the one hand, battery life can be extended by detecting cadence using a low-power accelerometer. However, accelerometers are less robust under certain conditions, such as certain levels of unevenness from the road / sidewalk surface, other unpredictable forces on the bike, and high cadence rates, which can contaminate the collected accelerometer data. On the other hand, gyroscope sensors provide more reliable cadence data than accelerometers because they directly measure rotation, but require significantly more power to operate (e.g., twice as much) than accelerometers. Thus, cadence measurement devices that use accelerometers to detect cadence have longer battery life but less reliable data, while cadence measurement devices that use gyroscopes have more reliable data but shorter battery life. The present embodiment solves this problem by automatically switching between using an accelerometer and a gyroscope to detect cadence when the quality of the cadence determined from the accelerometer is poor. For example, in a cadence measurement device that includes both an accelerometer and a gyroscope, the accelerometer is used when the accelerometer is appropriate, and the gyroscope is activated only when the accelerometer is not appropriate. This method has the advantage that the gyroscope is not used continuously, thereby draining the battery less than a device that continuously uses the gyroscope to detect cadence. Advantageously, the gyroscope is not used continuously, thereby draining the battery less than a device that continuously uses the gyroscope to detect cadence.

[0004] In one embodiment, the technology described herein relates to a method for measuring cadence in a cycling power meter using an accelerometer and a gyroscope, including determining cadence using acceleration data from the accelerometer, determining a first condition indicating that cadence quality is below a desired level, activating the gyroscope based on the first condition, and determining cadence using rotation data from the gyroscope.

[0005] In one embodiment, the technology described herein relates to a power meter for use in a pedal-powered vehicle, the power meter including an accelerometer, a gyroscope, a processor, and a memory storing machine-readable instructions that, when executed by the processor, cause the power meter to determine pedaling cadence using acceleration data from the accelerometer, determine a first condition indicating that cadence quality is below a desired level, activate the gyroscope, and determine cadence using rotation data from the gyroscope.

[0006] In one embodiment, the technology described herein relates to a software product stored on a non-transitory computer-readable medium for switching between an accelerometer and a gyroscope to measure cadence in a cycling power meter, the software product including instructions that, when executed by a controller, cause the controller to: determine cadence using acceleration data from the accelerometer if the gyroscope is dormant; determine a first condition indicating that the cadence quality is below a desired level; activate the gyroscope in response to the first condition; and, if the gyroscope is active, determine cadence using rotation data from the gyroscope; determine a second condition indicating that the cadence quality is above a desired level; and deactivate the gyroscope. [Brief explanation of the drawings]

[0007] [Figure 1]FIG. 1 is a schematic diagram illustrating an example of a power meter coupled to a crank arm in some embodiments.

[0008] [Figure 2] FIG. 2 is a block diagram showing, by way of example, further detail of the power meter of FIG. 1 in accordance with some embodiments.

[0009] [Figure 3A] FIG. 3A is a graph illustrating an example of a mode-switching algorithm switching between the accelerometer and gyroscope of FIG. 2 during a 90-second bike ride, in some embodiments.

[0010] [Figure 3B] FIG. 3B is a graph illustrating the difference in signal quality from an accelerometer and a gyroscope in some embodiments.

[0011] [Figure 4] FIG. 4 is a data flow diagram illustrating an example operation of the mode switching algorithm of FIG. 2, which automatically switches between using an accelerometer and a gyroscope to determine cadence in some embodiments.

[0012] [Figure 5] FIG. 5 is a graph illustrating an example comparison of the switching cadence signal of the power meter of FIG. 1 generated by the mode-switching and cadence algorithms of FIG. 2 in some embodiments with a prior art cadence signal derived solely from accelerometer-based sensor data. DETAILED DESCRIPTION OF THE INVENTION

[0013] U.S. Patent Nos. 10,060,738 and 11,033,217 (both of which are incorporated herein by reference in their entireties) disclose power and cadence meters for bicycles. Cadence, also known as pedaling rate, is a measure of the number of crank revolutions per minute. It is a measure of angular velocity, which is proportional to, but not the same as, wheel speed.

[0014] Some prior art bicycle meters include both an accelerometer and a gyro sensor, but these prior art bicycle meters do not automatically switch between the accelerometer and the gyro sensor to conserve battery power while maintaining the quality of the detected cadence.

[0015] FIG. 1 is a schematic diagram illustrating an example of a power meter 101 coupled to a crank arm 100, which drives a circular chain ring 106 around a crank bearing 110 from a pedal (not shown) attached to an opening 108 at the distal end of the crank arm 100, thereby driving at least one wheel of a pedal-driven vehicle (e.g., a bicycle). In one embodiment, a housing 102 of the power meter 101 is adhesively secured to the crank arm 100. In other embodiments, the power meter 101 is integrated into the crank arm 100. The housing 102 may include a battery door 104 to allow for battery replacement of the power meter 101. At least one function of the power meter 101 is to measure the cadence applied to the crank arm 100 by a cyclist using the bicycle. Although not shown, a second power meter may be coupled to the crank bearing 110 and attached to a second crank arm on the opposite side of the pedal-driven vehicle.

[0016] FIG. 2 is a block diagram illustrating the power meter 101 of FIG. 1 in further detail. The power meter 101 includes a battery 202 (optionally rechargeable), a controller 204 (e.g., a microprocessor or microcontroller having at least one processor 250 and memory 252 storing readable instructions, such as software, firmware, etc., that execute the functions of the power meter 101 described herein), at least one accelerometer 206 (using X and Y axes), a gyroscope 208, and a wireless interface 210. In one embodiment, the accelerometer 206 and gyroscope 208 are implemented in a single package, such as the LSM6DS0 Inertial Measurement Unit (IMU) manufactured by STMicroelectronics. The power meter 101 may include other sensors and components without departing from the scope of this specification. For example, the power meter 101 may include one or more strain gauges for detecting forces applied to the crank arm 100. The controller 204 may include at least one analog-to-digital converter for converting analog signals to digital, which may be stored and / or processed using a cadence algorithm 207 that determines cadence 209 based on input from the accelerometer 206 or gyroscope 208. The controller 204 may control a wireless interface 210 to communicate with one or more of a smartphone 220, a bike computer 230, and other computers 240. Cadence is an important metric for cyclists and may also be used in other metrics, such as in determining the amount of work or power produced by a cyclist. Therefore, it is necessary to accurately determine cadence.

[0017] As mentioned above, the gyroscope 208 detects cadence with greater accuracy than the accelerometer 206, especially under certain conditions. However, the gyroscope 208 consumes more power than the accelerometer 206. The controller 204 includes a mode switching algorithm 205 that characterizes the data from the accelerometer 206, detects conditions in which the accelerometer 206 performance degrades (e.g., uneven terrain, high cadence), and automatically switches between using the accelerometer 206 data or the gyroscope 208 data. In one embodiment, the controller 204 processes the sensor data (e.g., acceleration data) from the accelerometer 206 and determines a vibration metric that indicates the amount of vibration being detected by the accelerometer 206. If the vibration metric exceeds a high vibration threshold, the vibration metric indicates that the cadence 209 calculated using the sensor data from the accelerometer 206 is of poor quality. Therefore, the controller 204 activates (e.g., powers) the gyroscope 208 only in conditions in which the accelerometer 206 performance degrades. The controller 204 may adjust the sample rate of the accelerometer 206 in these situations. These situations (which degrade the performance of the accelerometer 206) only occur a certain percentage of the power meter 101's operating time during normal cycling, thereby reducing the user's exposure to poor quality cadence and power data while still achieving battery life goals and eliminating the need for the cyclist to adjust the power meter 101's settings mid-ride. In particular, the switch between using the accelerometer 206 and the gyroscope 208 is transparent to the cyclist. Advantageously, the controller 204 uses the mode switching algorithm 205 to activate the gyroscope 208 only when necessary to maintain the quality of the cadence 209, thereby avoiding excessive battery power consumption by using the gyroscope 208 when it is not needed.

[0018] The mode switching algorithm 205 uses the vibration metrics to determine when to switch between using the accelerometer 206 and the gyroscope 208. The following pseudocode shows an example algorithm for calculating the vibration metrics:

[0019] function calculateVibrationalMetric(accelX, accelY, lastAccelX, lastAccelY, cadence, lastCadence, gyroCadence, accelCadence) let vibrationalMetric = this.lastVibrationalMetric; / / we could use a kalman filter to see if accelerometer data is getting too noisy to predict vibrationalMetric += KALMAN_WEIGHT * kalmanFilterError(predictedAccelX, predictedAccelY, accelX, accelY) / / we could use simple sample-to-sample noise to measure vibration vibrationalMetric += SIMPLE_WEIGHT * sqrt((accelX - lastAccelX)^2 + (accelY - lastAccelY)^2) if(gyro is on) # we could compare the accelerometer output to the gyro output. More error means a higher vibrational metric vibrationalMetric += ACCEL_COMPARE_WEIGHT * |gyroCadence - accelCadence| # we may increase our metric during periods of rapid cadence change vibrationalMetric += CADENCECHANGE_WEIGHT * |cadence - lastCadence| # we may apply a 0..1 continuous decay to the vibrational metric so that it requires constant stimulation to stay in gyro mode vibrationalMetric *= VIBRATIONAL_DECAY this.lastVibrationalMetric = vibrationalMetric; # now that we've blended together all our sensor inputs, return our vibrationalMetric return vibrationalMetric;

[0020] The following pseudo-code shows an example of a mode switching algorithm 205:

[0021] function modeswitch_step() vibrationalMetric = calculateVibrationalMetric(...sensor inputs...) if(in gyro mode) # look for reasons to exit gyro mode and save battery if(panicTimeout > 0) panicTimeout-- if(rider has stopped) enterAccelerometerMode() else if(vibrationalMetric < THRESHOLD_BUMPY) # low-vibration road, go to accelerometer enterAccelerometerMode() else if(was panicking and panicTimeout <= 0) # we engaged the gyro to escape an algorithm issue, but have had it on long enough and can turn it off enterAccelerometerMode() else if(gyroCadence <= THRESHOLD_SLOW) # rider is going very slowly, we can switch to the accelerometer enterAccelerometerMode() else # couldn't find a reason to exit gyro mode, so just continue in it else(not in gyro mode) # we're not in gyro mode, so look for reasons to enter gyro mode if(recent algorithm panic) # something has told us it would be wise to use the gyro enterGyroMode() else if(vibrationalMetric >= THRESHOLD_BUMPY) # the road is bumpy, go to gyro enterGyroMode() else if(currentCadence >= THRESHOLD_FAST) # the user is spinning really fast, go to gyro enterGyroMode() else # no reason to enter gyro mode

[0022] As shown in the pseudocode above, a vibration metric is calculated and compared to a threshold (e.g., a high vibration threshold known to degrade the quality of cadence calculations from accelerometer data) to determine when to activate the gyroscope 208 to improve the quality of the cadence 209 and when to deactivate the gyroscope 208 when it is no longer needed. The vibration metric is determined by processing sensor data from the accelerometer 206 and determining the amount of vibration (e.g., road noise) detected by the accelerometer 206. For example, if the bicycle is riding on a smooth surface, the vibration metric will be low, while if the bicycle is riding on a rough surface, the vibration metric will be high.

[0023] The pseudocode for the mode-switching algorithm 205 further illustrates other conditions that cause the mode-switching algorithm 205 to switch between using the accelerometer 206 and the gyroscope 208 to determine cadence 209. For example, the mode-switching algorithm 205 silences the gyroscope 208 if any of the following occurs: (a) the rider stops pedaling; (b) the calculated vibration metric falls below a high vibration threshold; (c) the panic flag is canceled; and (d) the timer associated with the panic flag expires. In another example, the mode-switching algorithm 205 activates the gyroscope 208 if any one (or more) of the following occurs: (a) the panic flag is set; (b) the calculated vibration metric exceeds a high vibration threshold; and (c) the cadence exceeds a high cadence threshold. Other portions of software within the controller 204 may set the panic flag if an anomaly is detected. For example, the cadence algorithm 207 may set the panic flag if an error is detected during the calculation of cadence 209. It has been found that where a cyclist is pedaling at a cadence above a high cadence threshold (e.g., 110 revolutions per minute), sensor data from the accelerometer 206 results in poor cadence calculations. That is, the mode switching algorithm 205 activates the gyroscope 208 if any of the above conditions occur and deactivates the gyroscope 208 if neither condition occurs or persists. That is, the mode switching algorithm 205 deactivates the gyroscope 208 only if none of the conditions that would cause the gyroscope 208 to activate are occurring. For example, if the cadence increases above the high cadence threshold and the gyroscope 208 is activated, then when the cadence falls below the high cadence threshold, the gyroscope 208 is deactivated only if no other conditions (e.g., the vibration metric exceeds the high vibration threshold or the panic flag is set) are also occurring.However, if the cadence is zero (eg, the rider stops pedaling), the mode switching algorithm 205 will deactivate the gyroscope 208 even if other conditions remain.

[0024] 3A is a graph 300 illustrating an example of the mode-switching algorithm 205 switching between the accelerometer 206 and the gyroscope 208 of FIG. 2 over the course of approximately one minute of riding a bicycle. The graph 300 shows a true cadence signal 302 (e.g., a reference signal derived to post-process gyroscope data to determine true cadence as accurately as possible), one example cadence signal 304 (e.g., cadence 209) determined by the cadence algorithm 207, and a switch line 306 output from the mode-switching algorithm 205 that indicates when the cadence algorithm 207 switches between using the data detected by the accelerometer 206 and the data detected by the gyroscope 208.

[0025] During a first time period 310, the switch line 306 is low and the cadence algorithm 207 determines the cadence signal 304 from the data detected by the accelerometer 206. During the first time period 310, the cadence signal 304 is not perfect (e.g., it fluctuates around the true cadence signal 302), but the cadence signal 304 remains within an acceptable error threshold (e.g., 1 revolution per minute) of the true cadence signal 302. At time 312, the mode switch algorithm 205 transitions the switch line 306 to non-zero, indicating that the cyclist has exceeded the accelerometer cadence threshold (e.g., 110 revolutions per minute, above which the sensor data from the accelerometer 206 becomes unreliable), and the gyroscope 208 is activated, thereby determining the cadence signal 304 from the data detected by the gyroscope 208. After the cadence algorithm 207 begins using data detected from the gyroscope 208, after a short time (e.g., a quarter second), the cadence signal 304 improves to accurately track the true cadence signal 302. Thus, within a time period 314, the cadence 209 is derived from the gyroscope 208. At time 316, the mode switch algorithm 205 transitions the switch line 306 to zero, indicating that the cadence algorithm 207 should determine the cadence signal 304 from data detected by the accelerometer 206, and the gyroscope 208 is paused. For a period 318 following time 316, the cadence signal 304 varies from the true cadence signal 302.

[0026] FIG. 3B is a graph 350 illustrating the difference in signal quality from the accelerometer 206 and gyroscope 208. Graph 350 represents the same time period as graph 300 in FIG. 3A and shows the true cadence signal 302 and a reference switching line 306. Line 352 represents an estimate (e.g., a frame-by-frame estimate) of the accelerometer-based cadence 209 based on calculating the percentage of the circle the accelerometer 206 completed during the last update period (e.g., the time between successive readings of sensor data from the accelerometer, e.g., 1 / 26th of a second). Line 354 represents the instantaneous reading from the gyroscope 208 sensor data. As can be seen, line 352 exhibits extremely periodic high-low cycles. While the primary signal is maintaining 1g of gravity in a circular motion, the vibrations are likely due to the actual acceleration and deceleration of the crank / bicycle / rider. Line 354 closely follows the true cadence signal 302 throughout the sample period, demonstrating the qualitative superiority of the gyroscope 208 over the accelerometer 206.

[0027] The sensor data from the accelerometer 206 may be processed in other ways to determine the cadence 209. In one embodiment, the cadence algorithm 207 may measure the time intervals between peaks, zeros, and troughs of the sensor data from the accelerometer 206 to determine the cadence 209. In another embodiment, the cadence algorithm 207 measures the slope of atan2 (e.g., a two-argument arctangent function) of the X-axis and Y-axis sensor data from the accelerometer 206 over time, where the slope is defined in radians per second and may be multiplied to determine the cadence 209 (e.g., revolutions per minute). In another embodiment, the cadence algorithm 207 uses a frequency domain transform of the sensor data from the accelerometer 206. In another embodiment, the cadence algorithm 207 implements a trained neural network that uses the sensor data from the accelerometer 206 to determine the cadence 209. In another embodiment, the cadence algorithm 207 uses sine or cosine curve fitting to the sensor data from the accelerometer 206 to determine the cadence 209 .

[0028] FIG. 4 is a data flow diagram 400 illustrating an example operation of the mode switching algorithm 205 of FIG. 2 to automatically switch between using the accelerometer 206 and the gyroscope 208 of FIG. 2 to determine cadence 209. During operation of the power meter 101 (FIG. 1), the accelerometer 206 is active and continuously transmits acceleration data 402 to the cadence algorithm 207 while the power meter 101 is in operation. The gyroscope 208 is active only when necessary and, when active, transmits rotation data 404 to the cadence algorithm 207. The cadence algorithm 207 includes software that transmits the acceleration data 402 and rotation data 404 (if available) to the mode switching algorithm 205, applies the acceleration data 402 to an accelerometer algorithm 410, and applies the rotation data 404 to a gyroscope algorithm 412. The gyroscope algorithm 412 operates only when the gyroscope 208 is active. The following pseudocode illustrates an example of the accelerometer algorithm 410:

[0029] function calculateAccelerometerCadence(thisAccelX, lastAccelX, thisSeconds, lastZeroCrossSeconds) if(thisAccelX * lastAccelX <= 0) # zero-cross detected this.lastPeriod = (thisSeconds - lastZeroCrossSeconds) # calculate RPM this.lastCadence = 60 / this.lastPeriod if(thisSeconds < this.lastZeroCrossSeconds) # last zero was in the future? this is weird, panic modeswitch_panic() this.lastZeroCrossSeconds = thisSeconds if(this.lastCadence >= 300) # something has gone wrong with this calculation, panic modeswitch_panic() return this.lastCadence

[0030] The above pseudocode detects zero crossings in the sensor data from the accelerometer 206, determines the period of the previous cycle in the sensor data, and calculates the cadence 209 from the last period. If the accelerometer algorithm 410 detects an anomaly, such as the time of the last zero crossing being in the future, a panic is triggered and the mode switching algorithm 205 activates the gyroscope 208, thereby ensuring the quality of the cadence 209.

[0031] The following pseudo-code shows an example of a gyroscope algorithm 412:

[0032] function calculateGyroCadence(sensorReadingRadiansPerSecond) # convert raw sensor reading to RPM return 60*sensorReadingRadiansPerSecond / (2*PI)

[0033] As shown in the pseudocode above, the sensor data (eg, rotation data) from the gyroscope 208 is already in radians per second and can therefore be used directly to calculate the cadence 209.

[0034] The accelerometer algorithm 410 generates at least one filtered estimate of the cyclist's current cadence from the acceleration data 402. However, if the gyroscope 208 is active, the gyroscope algorithm 412 may determine an accurate cadence value from the rotation data 404 and provide an accurate cadence value 414 to update or replace the cadence value determined by the accelerometer algorithm 410. The accelerometer algorithm 410 also includes software to detect when the acceleration data 402 has produced a poor quality cadence 209. For example, the accelerometer algorithm 410 may determine if the generated cadence 209 requires unrealistic acceleration, contains rapid oscillations, and / or if the acceleration data 402 contains excessive noise. If the accelerometer algorithm 410 determines that the cadence 209 is of poor quality, the accelerometer algorithm 410 sends a “panic” notification 416 to the mode switch algorithm 205, which generates a gyroscope activation signal 420 to activate the gyroscope 208.

[0035] The mode switching algorithm 205 may also determine when poor quality acceleration data 402 causes the gyroscope activation signal 420 to be generated. Additionally, the mode switching algorithm 205 may also determine when improved quality acceleration data 402 causes the gyroscope activation signal 420 to be paused, powering off the gyroscope 208 to conserve battery power.

[0036] Cadence 209 and / or precise cadence value 414 are input to a power algorithm 430, which receives torque sensor data 432 from a power sensor 434. In one embodiment, power sensor 434 includes at least one strain gauge applied to crank arm 100 to measure the torque exerted by the cyclist on crank arm 100. Power algorithm 430 calculates the cyclist's power in watts based on the measured torque indicated by torque sensor data 432 and cadence 209 or precise cadence value 414, when available.

[0037] The following pseudo-code shows an example of a power algorithm 430: function calculatePower() # see other algorithms recentCadenceRpm = modeswitch_getCadenceFromAppropriateSensor() # see past 4iiii patents for torque determination recentTorqueNm = getRecentTorqueFrom3dPower() # convert to radians per second recentCadenceRadsPerSec = 2*PI*(recentCadenceRpm / 60) # power = torque * angular velocity return recentCadenceRadsPerSec * recentTorqueNm;

[0038] As shown in the pseudocode above, the torque that the cyclist exerts on the cranks is measured (e.g., using strain gauges attached to the cranks) and used in conjunction with cadence 209 to calculate a power value. Other methods of calculating power may be used without departing from the scope of the present invention.

[0039] Actual Comparison 5 is a graph 500 illustrating an example comparison of a switching cadence signal 502 of the power meter 101 of FIG. 1, as generated by the mode switching algorithm 205 and the cadence algorithm 207 of FIG. 2, with a prior art cadence signal 504 derived solely from accelerometer-based sensor data. Both the power meter 101 and the prior art cadence meter were simultaneously mounted on a mountain bike, and the cadence 209 of the power meter 101, shown as the switching cadence signal 502, and the prior art cadence from the prior art cadence meter, shown as the prior art cadence signal 504, were recorded for approximately one minute.

[0040] Notably, prior art cadence signal 504 exhibits extreme cadence fluctuations in region 506 (e.g., near the center of the display period) and also exhibits consistently more noise compared to switching cadence signal 502.

[0041] Gyro On-Time Data Detailed log data reflecting actual riding conditions captured by internal and external testers in the power meter 101 (FIG. 1) is used to determine the impact of the mode switching algorithm 205 of FIG. 2 on battery life. These data sets are then used to tune the mode switching algorithm 205 to balance power meter 101 battery life with improving the quality of cadence 209. That is, this test data is used to tune the parameters of the mode switching algorithm 205 to maximize cadence accuracy while keeping power consumption below budgeted battery life targets.

[0042] For example, if you are using a 200mAh CR2032 battery and are targeting a battery life of 800 hours, the average current consumption should not exceed 250µA. Average power consumption is calculated using the following formula: (Gyro on time ratio) × (Gyro on current) + (Gyro off time ratio) x (Gyro off current)

[0043] Therefore, by measuring both the gyro on current and the gyro off current of the power meter 101, the maximum gyro on time ratio can be determined. For example, if the measured gyro off current is 180 μA and the measured gyro on current is 540 μA, the maximum gyro on time is 20%. The collected logs show that, as expected, gyro on time increases as the ride becomes rougher, as shown in Table 1 for gyro on time. Of the data set, 32.6% of the time corresponded to smooth riding conditions, such as those on a cycle trainer or bicycle, 45.8% of the ride time corresponded to riding on road-type surfaces, and 21.5% of the ride time corresponded to riding on gravel roads or mountain bike trail-type surfaces. During smooth riding, gyroscope 208 activation was minimal (0.02%). During riding on road-type surfaces, the gyro on time was 32.5%. During riding on gravel roads or mountain bike trails, the gyro on time was 48.3%.

[0044] [Table 1]

[0045] Changes can be made in the above-described methods and systems without departing from the scope of this specification. Accordingly, it should be noted that the matter contained in the above description or shown in the accompanying drawings should be construed as illustrative and not limiting. The following claims are intended to cover all general and specific features described herein, as well as all statements of applicability of the methods and systems herein, and may lie therebetween as a matter of language.

[0046] Combination of features The features described above and claimed below can be combined in various ways without departing from the scope of the present specification. The examples listed below are examples of some possible combinations and are not intended to be limiting.

[0047] (A1) A method for measuring cadence in a cycling power meter by switching between an accelerometer and a gyroscope includes determining cadence using acceleration data from the accelerometer, determining a first condition indicating that the quality of the cadence is below a desired level, activating the gyroscope based on the first condition, and determining cadence using rotation data from the gyroscope.

[0048] (A2) In an embodiment of (A1), determining the first condition includes processing the acceleration data to determine a vibration metric indicative of an amount of vibration being detected by the accelerometer, and the first condition occurs when the vibration metric exceeds a vibration threshold.

[0049] (A3) In any of the embodiments of (A1) and (A2), determining the first condition includes determining that a panic flag is set, the panic flag being set by software when an abnormality is detected.

[0050] (A4) In any of the embodiments (A1) to (A3), determining the first condition further includes determining when the cadence exceeds a high cadence threshold.

[0051] (A5) Any of the embodiments of (A1) to (A4) further includes determining that the first state is not maintained, pausing the gyroscope based on the first state, and determining cadence using acceleration data from the accelerometer.

[0052] (A6) In any embodiment of (A1) to (A5), determining that the first state is not maintained includes processing the acceleration data to determine a vibration metric indicative of an amount of vibration being detected by the accelerometer, and if the vibration metric is below a vibration threshold, the first state is not maintained.

[0053] (A7) In any of the embodiments (A1) through (A6), determining that the first state is not maintained includes that the panic flag is not set, and in that case, the panic flag that is set by the software when the abnormality is detected has expired.

[0054] (A8) In any of the embodiments (A1) to (A7), determining that the first state is not maintained includes determining when the rider has stopped pedaling.

[0055] (A9) In any of the embodiments of (A1) to (A8), determining that the first state is not maintained includes determining when the cadence falls below a high cadence threshold.

[0056] (A10) In any embodiment of (A1) through (A9), determining cadence using the acceleration data further includes using the acceleration data to calculate the percentage of a circle that the accelerometer has completed in an update period between successive readings of the acceleration data.

[0057] (A11) In any of the embodiments of (A1) to (A10), determining cadence using the acceleration data includes calculating the time intervals between peaks, zeros, and troughs in the acceleration data.

[0058] (A12) In any of the embodiments (A1) through (A11), determining cadence using the acceleration data further includes calculating the slope of the output of the atan2 function of the x-axis and y-axis components of the acceleration data over time.

[0059] (A13) In any of the embodiments of (A1) to (A12), determining cadence using the acceleration data further includes using a frequency domain transform of the acceleration data.

[0060] (A14) In any of the embodiments of (A1) to (A13), determining cadence using acceleration data further includes processing the acceleration data using a trained neural network.

[0061] (A15) In any of the embodiments (A1) to (A14), determining cadence using the acceleration data further includes curve fitting a sine wave or cosine wave to the acceleration data.

[0062] (B1) A power meter for use in a pedal-powered vehicle, comprising: an accelerometer; a gyroscope; a processor; and a memory storing machine-readable instructions that, when executed by the processor, cause the power meter to determine pedaling cadence using acceleration data from the accelerometer; determine a first condition indicating that cadence quality is below a desired level; activate the gyroscope; and determine cadence using rotation data from the gyroscope.

[0063] (B2) In the embodiment of (B1), the memory further includes machine-readable instructions that, when executed by the processor, cause the power meter to determine that the first state is not maintained, pause the gyroscope, and determine cadence using acceleration data from the accelerometer.

[0064] (B3) In any of the embodiments of (B1) and (B2), the memory further includes machine-readable instructions that, when executed by the processor, cause the power meter to process the acceleration data to determine a vibration metric representative of the amount of vibration detected by the accelerometer, and compare the vibration metric to a high vibration threshold to determine a first condition.

[0065] (B4) In any of the embodiments (B1) to (B3), the memory further includes machine-readable instructions that, when executed by the processor, cause the power meter to determine that a first condition exists if a panic flag is set, the panic flag being set by the software when an abnormality is detected, and the first condition exists if the cadence exceeds a high cadence threshold.

[0066] (C1) A software product for switching between an accelerometer and a gyroscope to measure cadence in a cycling power meter, comprising instructions stored on a non-transitory computer-readable medium that, when executed by a controller, cause the controller to: determine cadence using acceleration data from the accelerometer when the gyroscope is dormant; determine a first condition indicating that the quality of the cadence is below a desired level; activate the gyroscope in response to the first condition; and, when the gyroscope is active, determine cadence using rotation data from the gyroscope; determine that the first condition is not maintained; and dormant the gyroscope.

Claims

1. 1. A method for measuring cadence with a cycling power meter by switching between an accelerometer and a gyroscope, comprising: determining the cadence using acceleration data from the accelerometer; determining a first condition indicative of the cadence quality being below a desired level; activating the gyroscope based on the first state; determining the cadence using rotational data from the gyroscope.

2. 2. The method of claim 1 , wherein determining the first condition comprises processing the acceleration data to determine a vibration metric indicative of an amount of vibration being detected by the accelerometer, the first condition occurring when the vibration metric exceeds a vibration threshold.

3. 2. The method of claim 1, wherein determining the first condition comprises determining that a panic flag is set, the panic flag being set by software when an abnormality is detected.

4. The method of claim 1 , wherein determining the first condition further comprises determining when the cadence exceeds a high cadence threshold.

5. determining that the first state is not maintained; Pausing the gyroscope based on the first condition; The method of claim 1 , further comprising determining the cadence using acceleration data from the accelerometer.

6. 6. The method of claim 5, wherein determining that the first state is not maintained includes processing the acceleration data to determine a vibration metric indicative of an amount of vibration being detected by an accelerometer, and wherein the first state is not maintained if the vibration metric is below a vibration threshold.

7. 6. The method of claim 5, wherein determining that the first state is not maintained comprises a panic flag not being set, and wherein the panic flag, set by software when an anomaly is detected, has expired.

8. 6. The method of claim 5, wherein determining that the first condition is not maintained comprises determining when a rider stops pedaling.

9. The method of claim 5 , wherein determining that the first condition is not maintained comprises determining when the cadence falls below a high cadence threshold.

10. 10. The method of claim 1, wherein determining cadence using the acceleration data further comprises using the acceleration data to calculate a percentage of a circle completed by the accelerometer in an update period between successive readings of acceleration data.

11. The method of claim 1 , wherein determining cadence using the acceleration data comprises calculating time intervals between peaks, zeros, and troughs in the acceleration data.

12. 10. The method of claim 1, wherein determining cadence using the acceleration data further comprises calculating a slope of an output of an atan2 function of x-axis and y-axis components of the acceleration data over time.

13. The method of claim 1 , wherein determining cadence using the acceleration data further comprises using a frequency domain transform of the acceleration data.

14. The method of claim 1 , wherein determining cadence using the acceleration data further comprises processing the acceleration data using a trained neural network.

15. The method of claim 1 , wherein determining cadence using the acceleration data further comprises curve fitting a sine wave or a cosine wave to the acceleration data.

16. 1. A power meter for use in a pedal-driven vehicle, comprising: an accelerometer; A gyroscope and a processor; a memory storing machine-readable instructions; The instructions, when executed by a processor, cause the power meter to: determining pedaling cadence using acceleration data from the accelerometer; determining a first condition indicative of the quality of the cadence being below a desired level; Activate the gyroscope A power meter that uses rotational data from a gyroscope to determine the cadence.

17. The memory further, when executed by the processor, causes the power meter to: determining that the first state is not maintained; resting the gyroscope; 17. The power meter of claim 16, comprising machine-readable instructions that cause acceleration data from the accelerometer to be used to determine the cadence.

18. The memory further, when executed by the processor, causes the power meter to: processing the acceleration data to determine a vibration metric representative of an amount of vibration detected by the accelerometer; 17. The power meter of claim 16, comprising machine-readable instructions for comparing the vibration metric to a high vibration threshold to determine the first condition.

19. The memory, when executed by the processor, further causes the power meter to: determining that the first condition exists if a panic flag is set, the panic flag being set by software when an abnormality is detected; 17. The method of claim 16, comprising machine-readable instructions for determining that the first condition exists if the cadence exceeds a high cadence threshold.

20. A software product for measuring cadence with a cycling power meter by switching between an accelerometer and a gyroscope, instructions stored on a non-transitory computer-readable medium; The instructions, when executed by a controller, cause the controller to: When the gyroscope is dormant, acceleration data from the accelerometer is used to determine the cadence; determining a first condition indicative of the cadence quality being below a desired level; activating the gyroscope in response to the first state; determining the cadence using rotational data from the gyroscope when the gyroscope is active; determining that the first state is not maintained; A software product that pauses the gyroscope.