Adjustable suspension component for a bicycle

文档序号:147942 发布日期:2021-10-26 浏览:57次 中文

阅读说明:本技术 用于自行车的可调节悬架部件 (Adjustable suspension component for a bicycle ) 是由 R·J·小斯库克拉夫特 G·尼克尔斯 W·钱布利斯 M·桑图尔班 C·M·利贝拉托 于 2021-04-23 设计创作,主要内容包括:本发明涉及用于自行车的可调节悬架部件。示例性自行车悬架部件包括:阻尼器,其可在低阻尼状态、高阻尼状态和介于低阻尼状态和高阻尼状态之间的中间阻尼状态下工作;运动控制器,其可工作以使阻尼器在低阻尼状态、中间阻尼状态和高阻尼状态之间改变;以及处理器,其基于传感器数据来激活运动控制器以使阻尼器在低阻尼状态和高阻尼状态这二者中的一者与中间阻尼状态之间改变。(The present invention relates to an adjustable suspension component for a bicycle. An exemplary bicycle suspension component includes: a damper operable in a low damping state, a high damping state, and an intermediate damping state between the low damping state and the high damping state; a motion controller operable to change the damper between a low damping state, an intermediate damping state, and a high damping state; and a processor that activates the motion controller based on the sensor data to change the damper between one of the low and high damping states and the intermediate damping state.)

1. A suspension component for a bicycle, the suspension component comprising:

a damper operable in a low damping state, a high damping state, and an intermediate damping state between the low damping state and the high damping state;

a motion controller operable to change the damper between the low damping state, the intermediate damping state, and the high damping state; and

a processor that activates the motion controller to change the damper between one of the low and high damping states and the intermediate damping state based on sensor data.

2. The suspension component of claim 1 wherein the sensor data is from a sensor for detecting pedaling of the bicycle.

3. The suspension component of claim 2 further comprising a wireless transceiver for receiving the sensor data from the sensor.

4. The suspension component of claim 1, further comprising a sensor for detecting a vibration input to the suspension component, the sensor outputting the sensor data.

5. The suspension component of claim 1 wherein the processor selects values for one or more flags based on the sensor data, the one or more flags representing a parameter of a state of the bicycle and/or a parameter of a riding environment of the bicycle.

6. The suspension component of claim 5 wherein the processor selects one of the low damping state, the intermediate damping state, and the high damping state based on the value of the one or more flags.

7. The suspension component of claim 6 wherein:

when the damper is in the low damping state, the processor checks one or more of the flags using a first process;

when the damper is in the low damping state, the processor checks one or more of the flags using a second process different from the first process; and

when the damper is in the high damping state, the processor checks one or more of the flags using a third process different from the first and second processes.

8. The suspension component of claim 6 wherein the processor selects a value for the flag based on a comparison of the sensor data to a threshold value.

9. The suspension component of claim 8 wherein the processor varies the threshold based on a current state of the damper.

10. A suspension component for a bicycle, the suspension component comprising:

a damper;

a motion controller operable to change the damper between a first damping state and a second damping state; and

a processor that activates the motion controller to change the damper between the first damping state and the second damping state based on sensor data from a first time period and a second time period, the second time period being longer than the first time period.

11. The suspension component of claim 10 wherein the second time period comprises the first time period and a time period occurring before the first time period.

12. The suspension component of claim 10 wherein the processor is configured to:

detecting a current amount of vibration based on the sensor data from the first time period; and

detecting a quantity of terrain-derived vibrations based on the sensor data from the second time period.

13. The suspension component of claim 10 wherein the processor is configured to:

applying a standard deviation filter to the sensor data from the first time period to produce a first output value; and

applying an exponential moving average filter to the sensor data from the second time period to produce a second output value.

14. The suspension component of claim 13 wherein the processor is configured to:

comparing the first output value to a first threshold to set a first flag; and

comparing the second output value to a second threshold to set a second flag.

15. The suspension component of claim 14 wherein the processor selects the first damping state or the second damping state based on the first flag and the second flag.

16. A suspension component for a bicycle, the suspension component comprising:

a damper;

a motion controller that changes the damper between a first damping state and a second damping state;

a wireless transceiver to receive sensor data from a sensor; and

a processor that activates the motion controller to change the damper between the first damping state and the second damping state based on the sensor data.

17. The suspension component of claim 16 wherein the sensor is a pedal detection sensor and the sensor data is pedaling data.

18. The suspension component of claim 17 wherein the processor determines whether a rider is currently pedaling the bicycle and activates the motion controller based on whether the rider is currently pedaling the bicycle.

19. The suspension component of claim 16 wherein the suspension component is a first suspension component, the sensor is an accelerometer of a second suspension component, and the sensor data is acceleration data.

20. The suspension component of claim 19 wherein the processor determines a pitch state of the bicycle based on the acceleration data and activates the motion controller based on the pitch state.

Technical Field

The present disclosure relates generally to bicycle components and, more particularly, to adjustable suspension components for bicycles.

Background

Bicycles are known to have suspension components. Suspension components are used in a variety of applications, such as cushioning shocks, vibrations, or other disturbances experienced by a bicycle during use. A common application of suspension components is to dampen the shock or vibration experienced by the rider when riding a bicycle on bumps, ruts, rocks, potholes, and/or other obstacles. These suspension components typically include rear wheel suspension components and/or front wheel suspension components.

Disclosure of Invention

A suspension component for a bicycle is disclosed herein. The suspension component includes a damper operable in a low damping state, a high damping state, and an intermediate damping state between the low damping state and the high damping state, a motion controller operable to change the damper between the low damping state, the intermediate damping state, and the high damping state, and a processor for activating the motion controller based on sensor data to change the damper between one of the low damping state or the high damping state and the intermediate damping state.

A suspension component for a bicycle is disclosed herein. The suspension component includes a damper, a motion controller operable to change the damper between a first damping state and a second damping state, and a processor for activating the motion controller to change the damper between the first damping state and the second damping state based on sensor data from a first time period and a second time period, the second time period being longer than the first time period.

A suspension component for a bicycle is disclosed herein. The suspension component includes a damper, a motion controller for changing the damper between a first damping state and a second damping state, a wireless transceiver for receiving sensor data from the sensor, and a processor for activating the motion controller based on the sensor data to change the damper between the first damping state and the second damping state.

Disclosed herein is a non-transitory machine-readable medium comprising instructions that, when executed, cause at least one processor to at least determine a pitch angle of a bicycle and change a damping level of a damper of a suspension component of the bicycle based on the pitch angle.

Disclosed herein is a non-transitory machine-readable medium comprising instructions that, when executed, cause at least one processor to at least determine that a rider is pedaling a bicycle pedal and change a damping level of a damper of a suspension component of a bicycle based on the determination that the rider is pedaling the bicycle pedal.

Drawings

FIG. 1 is a side elevational view of an exemplary bicycle on which the exemplary components disclosed herein may be implemented.

FIG. 2 is a block diagram of example suspension components that may be implemented on the example bicycle of FIG. 1.

FIG. 3 is a block diagram of an exemplary sensor that may be implemented on the exemplary bicycle of FIG. 1.

FIG. 4 is a block diagram of an example system including the example suspension component of FIG. 2 in communication with the example sensor of FIG. 3.

FIG. 5 is a block diagram of an example system including the example suspension component of FIG. 2 in communication with a plurality of example components and sensors.

FIG. 6 is a flow diagram of an exemplary process implemented by an exemplary processor of the exemplary suspension component of FIG. 2 for adjusting a suspension state of the exemplary suspension component.

FIG. 7 is a flow diagram of an example process implemented by the example processor of the example suspension component of FIG. 2 in the example process of FIG. 6 for setting an example flag associated with a vibration.

FIG. 8 is a flow diagram of an exemplary process implemented by the exemplary processor of the exemplary suspension component of FIG. 2 in the exemplary process of FIG. 6 for setting an exemplary flag associated with pedaling.

FIG. 9 is a flow diagram of an example process implemented by the example processor of the example suspension component of FIG. 2 in the example process of FIG. 6 for setting example flags associated with yaw, pitch, and/or roll.

Fig. 10 is a flow diagram of an example process implemented by the example processor of the example suspension component of fig. 2 in the example process of fig. 6 for setting an example flag associated with a bump count.

FIG. 11 is a flow diagram of an exemplary process implemented by the exemplary processor of the exemplary suspension component of FIG. 2 in the exemplary process of FIG. 6 for determining a process for checking one or more exemplary flags.

Fig. 12 is a flow diagram of an exemplary process implemented by the exemplary processor of the exemplary suspension component of fig. 2 in the exemplary process of fig. 11 for checking one or more exemplary flags when the exemplary suspension component is in a first suspension state (open state).

FIG. 13 is a flow chart of an exemplary process implemented by the exemplary processor of the exemplary suspension component of FIG. 2 in the exemplary process of FIG. 11 for checking one or more exemplary flags when the exemplary suspension component is in a second suspension state (pedal state).

FIG. 14 is a flow diagram of an exemplary process implemented by the exemplary processor of the exemplary suspension component of FIG. 2 in the exemplary process of FIG. 11 for checking one or more exemplary flags when the exemplary suspension component is in a third suspension state (lockout state).

Fig. 15 is a flow diagram of an exemplary process implemented by an exemplary processor of the exemplary suspension component of fig. 2 in the exemplary process of fig. 6 for adjusting a threshold in one or more of the exemplary processes of fig. 6.

The figures are not drawn to scale. Rather, the thickness of layers or regions may be exaggerated in the figures. Generally, the same reference numbers will be used throughout the drawings and the following written description to refer to the same or like parts.

The descriptors "first", "second", "third", etc. are used herein when identifying a plurality of elements or components that may be referred to individually. Unless otherwise stated or understood based on their context of use, such descriptors are not intended to define any meaning of priority or order in real time, but merely to refer individually to a plurality of elements or components for ease of understanding the disclosed examples. In some examples, the descriptor "first" may be used to refer to an element in a particular embodiment, and the same element may be referred to in the claims as having a different descriptor, such as "second" or "third". In such instances, it should be understood that such descriptors are used only for convenience in referencing a plurality of elements or components.

Detailed Description

Example adjustable suspension components for bicycles and example methods and processes implemented by such suspension components are disclosed herein. The example suspension components disclosed herein are capable of automatically adjusting the damping level or state of the suspension component without user input. This optimizes the performance of the bicycle for the rider and eliminates the need for the rider to manually select the suspension state of the suspension components. For example, the suspension components can automatically change suspension states based on changes in the bicycle state and/or riding environment in which the bicycle is riding.

Suspension components such as shock absorbers include springs and dampers. In some examples, the damping level of the damper may be increased or decreased, thereby affecting the response of the suspension component to shocks and impacts. In some examples, the damper may be adjusted to two or more defined damping levels, referred to as a damping state or a suspension state. Different damping states are preferred for different environmental and/or riding conditions. For example, when riding bicycles on rough terrain, it is often preferable to have the damper in a lower damping state to enable the suspension components to absorb shocks and impacts. However, when pedaling a bicycle on a relatively flat and/or smooth ground, it is generally preferred to have the damper in a high damping state, which minimizes power loss when pedaling the bicycle.

The example suspension components disclosed herein can detect various parameters of the bicycle state and/or riding environment and automatically adjust the damping state for optimal performance. In some examples, the suspension component detects the parameter based on sensor data from one or more sensors on the bicycle. Some example suspension components disclosed herein include a processor that analyzes sensor data and determines whether to maintain the suspension components in the same state or switch to a different damping state. In some examples, the sensor data is from a sensor (e.g., an accelerometer) that detects pedaling of the bicycle. Additionally or alternatively, the sensor data may come from a sensor (e.g., an accelerometer) that detects a vibration input to the bicycle, such as caused by bumpy terrain.

In some examples disclosed herein, the damper is operable between three damping states, such as a low damping state, a high damping state, and an intermediate damping state between the low and high damping states. The suspension component may include a motion controller operable to change a damping state of the damper. The processor analyzes the sensor data and, based on the sensor data, may activate the motion controller to change the damper between the low damping state, the intermediate damping state, and the high damping state. In some examples, the processor analyzes data from a plurality of sensors. For example, the processor may analyze vibration data from a vibration sensor (e.g., an accelerometer) on the suspension component, the vibration data indicative of a vibration input to the bicycle, and/or analyze pedal data from a pedal detection sensor (e.g., an accelerometer), the pedal data indicative of pedaling.

In some examples, the suspension component wirelessly receives sensor data from one or more sensors on the bicycle. For example, the suspension component may include a wireless transceiver to receive sensor data via wireless communication signals from one or more sensors. This reduces the amount of physical wires or cables on the bicycle, which results in a lighter, more aerodynamic bicycle. This also reduces assembly and/or manufacturing costs by eliminating the need to physically route wires or cables throughout the bicycle. Furthermore, if certain sensors are removed from the bicycle and/or new sensors are added to the bicycle, the suspension components can easily adapt to the new sensor data without having to change the wire or cable configuration. Furthermore, physical wires or cables on the bicycle are easily caught or hooked by foreign objects (e.g., twigs) and stripped from the bicycle, which can compromise the reception of data important to maintaining control in a dynamic environment. Wireless communication eliminates this drawback and ensures the reception of these important signals.

In some examples, the processor analyzes the sensor data and sets or selects values of a plurality of flags based on the sensor data. These flags indicate the presence of different parameters of the bicycle state and riding environment, such as medium vibration, large vibration, pitch angle of the bicycle, etc. For example, the presence of a moderate or large vibration indicates that the bicycle is riding over a relatively large object (e.g., a bump, a rock, etc.). The processor examines the value of the flag to determine whether to maintain the suspension components in the same state or to switch to a different state.

In some examples, the process or logic for checking the flag is different for each suspension state. This enables the suspension components to be switched to different states based on different criteria. For example, it may be advantageous to switch the damper to a higher damping level when the bicycle is being pedaled. However, when pedaling ceases, it may be advantageous to switch the damper to a lower damping level to absorb any upcoming impact or shock.

In some examples, the processor determines whether to switch the suspension component between two states based on sensor data from a first time period and a second time period, wherein the second time period is longer than the first time period. For example, the processor may analyze current acceleration data indicative of current or instantaneous vibrations experienced by the bicycle. When the processor detects a large vibration, such as when riding on a rock, the suspension components may immediately switch to a lower damping state to help absorb the shock. However, there may be situations where little or no vibration is experienced when traveling over generally rougher terrain. Thus, the processor analyzes a larger acceleration data set over a longer period of time. The processor may determine that the bicycle is riding on rough terrain and may therefore maintain the suspension components in a low damping state even if no transient vibration is detected. These and other parameters for determining whether to switch suspension states are disclosed in further detail herein.

Turning now to the drawings, FIG. 1 illustrates one example of a human-powered vehicle on which the example components disclosed herein may be implemented. In this example, the vehicle is one possible type of bicycle 100, such as a mountain bike. In the illustrated example, the bicycle 100 includes a frame 102 and a front wheel 104 and a rear wheel 106 rotatably coupled to the frame 102. In the example shown, the front wheel 104 is coupled to a front end of the frame 102 via a front fork 108. The forward and/or forward riding direction or orientation of bicycle 100 is indicated by the direction of arrow a in fig. 1. Thus, the forward moving direction of the bicycle 100 is indicated by the direction of arrow a.

In the example shown in fig. 1, the bicycle 100 includes a seat 110 coupled to the frame 102 (e.g., relative to the forward direction a near a rear end of the frame 102) via a seat post 112. Bicycle 100 also includes a handlebar 114 coupled to frame 102 and front fork 108 (e.g., relative to forward direction a near the front end of frame 102) for steering bicycle 100. Bicycle 100 is shown on riding surface 116. The riding surface 116 can be any riding surface, such as a ground surface (e.g., a dust path, a sidewalk, a street, etc.), an artificial structure above the ground surface (e.g., a wooden slope), and/or any other surface.

In the illustrated example, the bicycle 100 has a drive train 118, the drive train 118 including a crank assembly 120. The crank assembly 120 is operatively coupled via a chain 122 to a sprocket assembly 124 mounted to a hub 126 of the rear wheel 106. The crank assembly 120 includes at least one and typically two crank arms 128 and pedals 130, and at least one front sprocket or chain ring 132. In the illustrated example, the bicycle 100 includes a rear gear changing device 134, such as a derailleur, disposed at or near the rear wheel 106 to move the chain 122 through the various sprockets of the sprocket assembly 124. Additionally or alternatively, the bicycle 100 may include a front gear changing device to move the chain 122 through the gears on the chainrings 132.

The exemplary bicycle 100 includes a suspension system having one or more suspension components. In this example, the bicycle 100 includes a front (first) suspension member 136 and a rear (second) suspension member 138. Front and rear suspension members 136, 138 are shock absorbers (sometimes referred to as shock absorbers). The front and rear suspension members 136, 138 absorb shock when riding the bicycle 100. In this example, the front suspension member 136 is integrated into the front fork 108. A rear suspension component 138 is coupled between the two portions of the frame 102, including a swing arm 140 coupled to the rear wheel 106. In other examples, the front and/or rear suspension members 136, 138 may be integrated into the bicycle 100 in other configurations or arrangements. Moreover, in other examples, the bicycle 100 may include only one suspension component (e.g., only the front suspension component 136) or more than two suspension components (e.g., additional suspension components on the seatpost 112) in addition to or instead of the front and rear suspension components 136, 138.

While the example bicycle 100 depicted in fig. 1 is a mountain bike, the example suspension components and associated methods disclosed herein may be implemented on other types of bicycles. For example, the disclosed suspension components can be used in road bicycles as well as bicycles having mechanical (e.g., cable, hydraulic, pneumatic, etc.) and non-mechanical (e.g., wired, wireless) drive systems. The disclosed suspension components may also be implemented on other types of two-, three-, and four-wheeled human powered vehicles. Further, example suspension components may be used with other types of vehicles, such as automotive vehicles (e.g., motorcycles, automobiles, trucks, etc.).

The example bicycle 100 includes one or more components that can be used to monitor and/or control various aspects of the bicycle 100. These components may include controllable components and/or sensor components. In some examples, the components communicate wirelessly. In particular, a component may broadcast (transmit) data (e.g., sensor data) and/or other information to and/or receive data (e.g., sensor data) and/or other information from other components. In some examples, this information is used to control and/or adjust parameters of certain components of the bicycle 100. For example, the front suspension component 136 may be adjustable to increase or decrease the level of damping, such as between two more damping states. In some examples, front suspension component 136 may receive data (e.g., sensor data) from one or more other components and use the data to determine whether to switch or change the damping state.

For example, the front suspension components 136 may receive sensor data from the rear suspension components 138. The rear suspension component 138 may include an accelerometer that generates acceleration data indicative of vibration. The rear suspension component 138 can broadcast acceleration data. The front suspension component 136 can use the acceleration data to determine whether to switch or change between damping states. As another example, the bicycle 100 includes a pedal detection sensor 142 (e.g., a cadence sensor) coupled to the crank assembly 120 (e.g., coupled to the crank spindle). The pedal detection sensor 142 outputs pedal data indicative of the occurrence of a step and/or the speed of the step (e.g., Revolutions Per Minute (RPM)). In some examples, the pedal detection sensor 142 includes an accelerometer. Acceleration data from the accelerometer can be used to determine whether the crank assembly 120 is rotating and/or a rotational speed, which is indicative of the occurrence of a step and/or the speed of the step. In other examples, the pedal detection sensor 142 may include other types of sensors to track rotation and/or speed, such as a hall effect sensor. The pedal detection sensor 142 broadcasts pedal data. The front suspension component 136 receives pedal data and uses the pedal data to determine whether to switch or change between damping states. The bicycle 100 can include other controllable components and/or sensors associated with other components on the bicycle 100, such as the seat post 112, the brake, the rear gear changing device 134, and the like.

Similarly, other components of the bicycle 100 can receive the broadcast data and use the data to control and/or adjust parameters of the respective components. For example, the rear suspension component 138 can receive data (e.g., from the front suspension component 136, from the pedal detection sensor 142, etc.) and use the data to independently adjust the damping state of the rear suspension component 138.

In some examples, the data is received directly by the component and processed by the component. For example, the front suspension component 136 may include an internal processor for analyzing the data. In other examples, the data may be analyzed in another location, and then commands may be transmitted to the components. For example, the front suspension component 136 can analyze the data and send commands to the rear suspension component 138. Additionally or alternatively, a separate device, such as controller 144, may be provided. The controller 144 may receive data, analyze data, and/or send commands to one or more components. Thus, the components may communicate directly with each other and/or via the controller 144. In some examples, the controller 144 provides an interface between the components and a user. The controller 144 may include a display that presents various information and/or settings to a user (e.g., a rider). In some examples, the controller 144 is a different device than the bicycle 100, such as a handheld mobile computing device, a smart phone, or other computer. While in this example, the components communicate wirelessly, in other examples, the bicycle 100 may include one or more wired connections (e.g., wires, cables, etc.) to communicatively couple the various components and/or the controller 144.

Fig. 2 is a block diagram of an example component 200 constructed in accordance with the teachings of the present disclosure and that may be implemented on the bicycle 100 of fig. 1. The example component 200 is a controllable component that can change a parameter of the respective component. The example component 200 in fig. 2 may represent, for example, the front suspension component 136 or the rear suspension component 138. For clarity, the example component 200 is described in connection with the front suspension component 136. However, it should be understood that any of the aspects disclosed in connection with the front suspension component 136 are equally applicable to the rear suspension component 138. Further, in other examples, the component 200 may represent other types of controllable components, such as the rear gear changing device 134, a movable seatpost part, a brake device, and so forth.

In the illustrated example, the front suspension component 136 includes electronic circuitry and an actuatable device (e.g., a valve) that can be used to change the suspension state of the front suspension component 136. In the example shown, front suspension component 136 includes a spring 202 and a damper 204. The spring 202 operates (by compressing or expanding) to absorb vibration or shock, while the damper operates to dampen (slow) the movement of the spring 202. The front suspension component 136 can operate in different suspension states or modes to provide more or less impact absorption. In particular, in this example, the damper 204 may operate in two or more states to provide different levels of damping. In the examples disclosed herein, the damper is described as having three damping states, which are also referred to as suspension states. However, it should be understood that the damper 204 may have any number of damping states, such as two damping states, four damping states, five damping states, and so forth. An example of a damper having multiple damping states can be implemented as the damper 204 disclosed in U.S. patent publication No.2019/0092421 entitled "Controllable Cycle Suspension" filed 24.9.2018, the entire contents of which are hereby incorporated by reference.

As described above, in some examples, the damper 204 may operate between three damping states, including a first damping state, a second damping state, and a third damping state. The first, second, and third damping states are referred to herein as an open state, a pedal state, and a locked state, respectively. The damping states provide different levels of damping that affect the operation of the front suspension components 136. For example, the open state may be considered a low damping state that provides relatively low (e.g., minimal) damping. Thus, in the open state, the front suspension members 136 are easily compressible, which equates to a high level of shock and vibration absorption. Thus, the open state is preferred when riding on larger bumps or rougher terrain, for example. However, the open state is generally not preferred when pedaling the bicycle 100 because the rider loses power when the front suspension member 136 compresses during pedaling.

The locked state may be considered a high damping state that provides relatively high (e.g., maximum) damping. In some examples, the locked state provides the maximum amount of damping, which substantially limits movement of the front suspension component 136. However, in some examples, some movement (compression or expansion) of front suspension component 136 is still possible in the locked state (e.g., at higher forces). The locked state is preferred when the bicycle 100 is pedaled on a horizontal and/or slippery surface. However, the locked state provides relatively low (e.g., minimal) impact absorption and is therefore generally not preferred when traveling over larger bumps or rougher terrain.

The pedal state is an intermediate damping state between the open state (low damping state) and the locked state (high damping state). The pedal state allows more movement than the locked state, but less movement than the open state. For example, the pedal state may be preferred when pedaling the bicycle 100 while riding on a medium sized bump or terrain. As can be appreciated, different damping states may be preferred at different times based on the bicycle state and/or riding environment. For example, when stepping on, it may be advantageous to have the front suspension member 136 in a pedal state or a locked state rather than an open state. The pedal state and the lockout state provide a stiffer suspension than the open state, which reduces the amount of pedal power lost compared to the open state. However, when the stepping is not performed, the front suspension member 136 may be switched back to the open state. This is advantageous because the front suspension member 136 can easily absorb any shock that may occur without sacrificing pedaling power because the rider is not currently pedaling. Examples disclosed herein utilize sensor data to automatically change or switch the front suspension components 136 between different suspension states to balance these objectives. Thus, the front suspension member 136 can be set to the current bicycle state and/or the optimal suspension state for the riding environment without requiring rider input.

To switch or change the damper 204 between the open, pedal and locked states, the front suspension component 136 includes a motion controller 206. The motion controller 206 is coupled to the damper 204 or integrated into the damper 204. The motion controller 206 may be implemented as any motion control device, such as a motor, an actuator (e.g., a hydraulic actuator), or a solenoid. In this example, the motion controller 206 is used to operate a valve 207 or other flow control member in the damper 204. For example, the valve 207 may be disposed in the hydraulic flow path in the damper 204. The motion controller 206 may be activated to move the valve 207 (e.g., a plug of the valve 207) to a different valve state or position to affect the flow of hydraulic fluid to change the damping rate of the damper 204. In some examples, the valve 207 may be moved to three different positions corresponding to an open, pedal, and locked state. In other examples, valve 207 may be moved to any number of positions for increasing or decreasing the damping level of damper 204. Thus, the motion controller 206 may be activated to change the damping state of the front suspension component 136.

In the illustrated example, front suspension component 136 includes a processor 208 and a memory 210. The processor 208 analyzes data from one or more sensors and/or components, such as sensor data, to determine whether to adjust the suspension state of the front suspension component 136. The analysis may include filtering the data and/or comparing the data to one or more thresholds, as disclosed in further detail herein. The processor 208 controls the motion controller 206. In some examples, the processor 208 includes a motion controller interface for controlling the motion controller 206. The processor 208 may activate the motion controller 206 to change the damping state of the damper 204. Data from one or more sensors is stored in memory 210. In the illustrated example, the memory 210 includes a buffer 212. The buffer 212 may be used to temporarily store an amount of data, as disclosed in further detail herein. In other examples, buffer 212 may be implemented as a separate hardware component. The processor 208 executes instructions stored in the memory 210 to implement a process for analyzing sensor data and determining a desired suspension state. Example processes stored in the memory 210 and implemented by the processor 208 are disclosed in further detail in connection with fig. 6-15.

As disclosed herein, the processor 208 analyzes sensor data from one or more sensors. In some examples, the processor 208 uses sensor data from one or more sensors that are part of or integrated with the front suspension component 136. For example, as shown in fig. 2, front suspension component 136 includes one or more sensors 214. In some examples, sensor 214 includes an accelerometer. The accelerometer generates acceleration data that can be used by the processor 208 to determine whether to switch suspension states to increase or decrease damping. Additionally or alternatively, the sensors 214 may include other types of sensors, such as gyroscopes, magnetometers, temperature sensors, and/or pressure sensors. The sensors 214 may be in communication with the processor 208 via any wired or wireless communication network. In other examples, the front suspension components 136 may not include any integrated sensors.

In some examples, the processor 208 receives sensor data from one or more sensors on the bicycle 100 that are remote from the front suspension component 136 or external to the front suspension component 136. In the example shown, front suspension component 136 includes a communication interface 216. In some examples, the communication interface 216 is a wireless transceiver. The wireless transceiver receives signals (e.g., sensor data, commands, etc.) from one or more sensors and/or components on the bicycle 100 (fig. 1) and/or other signals from any other device, such as a mobile phone. For example, the communication interface 216 may receive sensor data from the rear suspension component 138 (fig. 1) and/or the pedal detection sensor 142 (fig. 1). This reduces or eliminates the amount of physical wires or cables that would otherwise be required to transmit the sensor data to the processor 208. The use of physical wires and cables adds weight to the bicycle and also increases assembly and manufacturing costs. Furthermore, physical wires or cables on the bicycle are easily caught or hooked by foreign objects (e.g., twigs) and stripped from the bicycle, which can compromise the reception of data important to maintaining control in a dynamic environment. Wireless communication eliminates these disadvantages and ensures the reception of these important signals.

The sensor data is stored in memory 210 and analyzed by processor 208. In some examples, the communication interface 216 may also transmit (e.g., broadcast) data to other sensors and/or components on the bicycle 100. For example, the communication interface 216 may send sensor data from the sensors 214 and/or signals indicative of the status of the front suspension components 136 to the rear suspension components 138.

In some examples, front suspension component 136 includes a user interface 218 that enables a user (e.g., a rider) to interact with front suspension component 136. For example, the user interface 218 may indicate information (e.g., the current state of the front suspension component 136) to the user. In some examples, the user interface 218 is used to change the suspension state based on user input (e.g., by clicking a button). For example, the user interface 218 may receive a command from a user to switch the damper 204 to an open state (low damping state). In this case, the processor 208 (and/or motion controller interface) activates the motion controller 206 to switch the damper 204 to the open state. As disclosed in further detail herein, the processor 208 may operate in a mode in which the processor 208 receives and analyzes data to automatically adjust the state of the damper 204. In some examples, the auto-adjustment mode may be turned on or off. In some examples, the user interface 218 may be used to turn the auto-adjustment mode on or off. For example, if the user desires to turn off the auto-adjustment mode, the user may press a button and/or otherwise interact with the user interface 218 to deactivate the auto-adjustment mode. The user may then control the damper 204 by entering manual commands into the user interface 218. The user may return to the auto-adjustment mode at a later time. The user interface 218 may include one or more buttons, a keypad, a keyboard, a mouse, a stylus, a trackball, a rocker switch, a touchpad, voice recognition circuitry, or other devices or components for communicating data between a user and the front suspension component 136. The user interface 218 may be a touch screen, which may be capacitive or resistive. The user interface 218 may include a liquid crystal display ("LCD") panel, a light emitting diode ("LED"), an LED screen, a thin film transistor screen, or another type of display. The user interface 218 may also include audio capabilities or speakers. In some examples, the user interface 218 includes an LED indicator. The LED indicators emit light to indicate input of commands or other actions of the front suspension member 136.

In the illustrated example, the front suspension component 136 includes a power source 220 to power the electrical components of the front suspension component 136 (such as the motion controller 206, the processor 208, the sensors 214, the communication interface 216, the user interface 218, and the like). In some examples, the power source 220 includes a stored power source such as one or more batteries (e.g., a battery pack). The battery may be any type of battery such as an AA battery, an AAA battery, a CR2012 battery, a CR2016 battery, and the like. Such a stored power source may be integrated into the forward suspension member 136 and/or located elsewhere on the bicycle 100 (fig. 1) (e.g., a battery coupled to the frame 102). Additionally or alternatively, the power source 220 may be from a power generation device, such as a mechanical generator, a solar panel, a fuel cell device, a photovoltaic cell, and/or other power generation devices implemented on the bicycle 100.

The processor 208 may include a general purpose processor, a digital signal processor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), an analog circuit, a digital circuit, combinations thereof, and/or other now known or later developed processors. The processor 208 may be a single device or a combination of devices, such as through shared or parallel processing.

The memory 210 may be volatile memory or non-volatile memory. Memory 210 may include one or more of Read Only Memory (ROM), Random Access Memory (RAM), flash memory, Electrically Erasable Programmable Read Only Memory (EEPROM), and/or other types of memory. The memory 210 may be removable from the front suspension component 136 (such as a Secure Digital (SD) memory card). In some examples, the computer-readable medium may include a solid-state memory, such as a memory card or other package that houses one or more non-volatile read-only memories. Further, the computer readable medium may be a random access memory or other volatile rewritable memory. Additionally, the computer readable medium may include magneto-optical or optical media such as a magnetic disk or tape or other storage device. Accordingly, the disclosure is considered to include any one or more of a computer-readable medium and other equivalents and successor media, in which data or instructions may be stored.

Memory 210 is a non-transitory computer-readable medium and is depicted as a single medium. The term "computer-readable medium" however, includes a single medium or multiple media, such as a centralized or distributed memory structure, and/or associated caches that may operate to store one or more sets of instructions and other data. The term "computer-readable medium" shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methodologies or operations disclosed herein. As used herein, the terms "non-transitory computer-readable medium" and "non-transitory machine-readable medium" are used interchangeably and are expressly defined to include any type of computer or machine-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media.

In alternative examples, dedicated hardware implementations (e.g., application specific integrated circuits, programmable logic arrays, and other hardware devices) may be constructed to implement one or more of the methods disclosed herein. Applications that may include the various exemplary apparatus and systems may broadly include a variety of electronic and computer systems. One or more examples disclosed herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that may be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system includes software, firmware, and hardware implementations.

Communication interface 216 provides data and/or signal communication from front suspension component 136 to another component of bicycle 100 (FIG. 1) or an external device such as a mobile phone or other computing device. Communication interface 216 communicates data using any operable connection. An operable connection may be one in which signals may be sent and/or received, physical communication, and/or logical communication. The operable connection may include a physical interface, an electrical interface, and/or a data interface. The communication interface 216 may be configured to communicate wirelessly and, thus, include one or more antennas. In some examples, communication interface 216 wirelessly communicates with one or more other devices using a dedicated connection. The dedicated connection provides robust communication of signals and data. Example dedicated connections may include using an AIREATMSRAMLINK for low power, spread spectrum wireless communication protocolsTMAnd (4) connecting. SRAMLINKTMAnd AIREATMProvided by SRAM, LLC (talawa LLC, headquarters, chicago, illinois). Tong (Chinese character of 'tong')The communication interface 216 may provide wireless communication in any now known or later developed format. Although this disclosure describes components and functions that may be implemented in particular embodiments with reference to particular standards and protocols, this disclosure is not limited to these standards and protocols. For example, standards for Internet and other packet switched network transmissions (e.g., TCP/IP, UDP/IP, HTML, HTTP, HTTPS) represent examples of the state of the art. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same function. ANT + may also or alternatively be usedTMAnd (4) standard. Accordingly, replacement standards and protocols having the same or similar functions as those disclosed herein are considered equivalents thereof.

According to various examples of the disclosure, the methods described herein may be implemented in a software program executable by a computer system. Further, in an illustrative, non-limiting example, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, the virtual computer system process may be configured to implement one or more of the methods or functions described herein.

A computer program (also known as a program, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this disclosure can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

As used in this application, the term "circuitry" refers to all of the following: (a) hardware-only circuit implementations (such as implementations in analog and/or digital circuitry only) and (b) combinations of circuitry and software (and/or firmware), such as (if applicable): (i) a processor or (ii) a processor/software (including a digital signal processor), a portion of software and memory that work together to cause a device such as a mobile phone or a server to perform various functions) and (c) a circuit, such as a microprocessor or a portion of a microprocessor, that requires software or firmware for operation even if the software or firmware is not physically present.

This definition of "circuitry" applies to all uses of this term in this disclosure, including in any claims. As another example, as used in this disclosure, the term "circuitry" also encompasses an implementation of a processor (or multiple processors) or portion of a processor and its (or their) accompanying software and/or firmware, as well as other electronic components. The term "circuitry" further includes, for example and if applicable to the particular required element, a baseband integrated circuit or applications processor integrated circuit for a mobile computing device or a similar integrated circuit in a server, a cellular network device, or other network device.

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such a device. Further, the computer may be embedded in another device, such as a mobile telephone, a Personal Digital Assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, or front suspension component 136, to name a few. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; as well as CDROM and DVD-ROM discs. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

Fig. 3 is a block diagram of an example sensor 300 constructed in accordance with the teachings of the present disclosure and that may be implemented on the bicycle 100 of fig. 1. Unlike the component 200 of fig. 2, the sensor 300 does not include a motion controller. The sensor 300 senses one or more parameters and transmits (e.g., wirelessly) sensor data. The sensor 300 may represent any sensor implemented on the bicycle 100, such as the pedal detection sensor 142, a tire pressure sensor, a wheel speed sensor, and the like.

In the illustrated example, the sensor 300 includes a processor 302, a memory 304, one or more sensor elements 306, a communication interface 308, a user interface 310, and a power source 312. The sensor elements may include any sensing element, such as an accelerometer, a thermocouple, a pressure transducer, a gyroscope, a magnetometer, or the like. For example, the pedal detection sensor 142 (fig. 1) may include an accelerometer that detects motion, which may be used to detect pedaling. The processor 302, memory 304, communication interface 308, user interface 310, and power supply 312 may be the same as the processor 208, memory 210, communication interface 216, user interface 218, and power supply 220 disclosed above in connection with fig. 2. Thus, any of the descriptions of those components in fig. 3 may apply equally to the components in fig. 3.

The processor 302 receives a raw signal (e.g., an analog signal) from the sensor element 306. In some examples, processor 302 performs one or more conditioning and/or filtering processes (e.g., a/D conversion, low pass filtering, etc.) on the raw data signal before the sensor data is transmitted by communication interface 308. In some examples, processor 302 may execute one or more processes to determine commands for components on bicycle 100 (fig. 1). For example, the communication interface 308 may receive sensor data from one or more other sensors or components on the bicycle 100. The processor 302 may analyze the sensor data and determine the status of a component, such as the front suspension component 136. The processor 302 may generate a command (e.g., change to a different state) and the communication interface 308 may send the command to the corresponding component to cause the change.

FIG. 4 is a block diagram of an example system 400 including the component 200 of FIG. 2 and the sensor 300 of FIG. 3. The sensor 300 transmits and/or otherwise broadcasts sensor data (e.g., via wired or wireless communication). The component 200 receives sensor data from the sensor 300. The component 200 can analyze the sensor data and determine whether to make changes to the component 200. For example, the component 200 may be the front suspension component 136 (fig. 1), and the sensor 300 may be the pedal detection sensor 142 (fig. 1). The front suspension component 136 can analyze the pedal sensor data and determine whether to increase or decrease the damping level (e.g., switch to a different damping state).

Component 200 can similarly receive sensor data and/or other information from one or more other sensors and/or components on bicycle 100 (fig. 1). For example, fig. 5 is a block diagram of an example system 500 including a first component 200A, a second component 200B, and a first sensor 300A. The first sensor 300A and the second component 200B transmit and/or otherwise broadcast sensor data and/or other information (e.g., status of the components) (e.g., via wired or wireless communication). The first component 200A receives sensor data and/or other information from the first sensor 300A and the second component 200B. First component 200A may analyze the sensor data and/or other information and determine whether to make changes to first component 200A. For example, the first component 200A may be the front suspension component 136 (fig. 1), the second component 200B may be the rear suspension component 138 (fig. 1), and the first sensor 300A may be the pedal detection sensor 142 (fig. 1). The front suspension component 136 can analyze pedal sensor data from the pedal detection sensor 142 and acceleration data from the rear suspension component 138 and determine whether to increase or decrease the damping level (e.g., switch to a different damping state).

The first component 200A may further receive sensor data and/or other information from additional sensors and components. For example, fig. 5 shows a third component 200C, a second sensor 300B, a third sensor 300C, a fourth sensor 300D, and a fifth sensor 300E. Thus, the first component 200A may receive sensor data and/or other information from any number of sensors and/or components. Further, the first component 200A may communicate with the second component 200B and the third component 200C. For example, the first component 200A may send sensor data (e.g., from internal sensors, from one or more of the sensors 300A-300E) to the second component 200B and/or the third component 200C. The second component 200B and/or the third component 200C may similarly analyze the sensor data and determine whether to change state. Additionally or alternatively, the first component 200A may transmit commands to the second component 200B and/or the third component 200C. For example, the first component 200A may determine that the second component 200B should change state and send a corresponding command to the second component 200B.

Flow diagrams representing example hardware logic, machine readable instructions, hardware implemented state machines, and/or any combination thereof that may be implemented by the processor 208 of fig. 2 are shown in fig. 6-15. The machine-readable instructions may be one or more executable programs or portions of executable programs for execution by a computer processor, such as processor 208. The program may be embodied in software stored on a non-transitory computer readable storage medium such as a CD-ROM, a floppy disk, a hard drive, a DVD, a blu-ray disc, or a memory associated with the processor 208 (e.g., memory 210), but the entire program and/or parts thereof could alternatively be executed by a device other than the processor 208 and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the flowcharts shown in fig. 6-15, many other methods of implementing the example process may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined. Additionally or alternatively, any or all of the blocks may be implemented by one or more hardware circuits (e.g., discrete and/or integrated analog and/or digital circuits, FPGAs, ASICs, comparators, operational amplifiers (op-amps), logic circuits, etc.) structured to perform corresponding operations without the execution of software or firmware.

Machine-readable instructions as described herein may be stored in one or more of a compressed format, an encrypted format, a fragmented format, a compiled format, an executable format, a packaged format, and the like. The machine-readable instructions described herein may be stored as data (e.g., portions, code representations, etc.) that may be used to create, fabricate, and/or generate machine-executable instructions. For example, the machine-readable instructions may be segmented and stored on one or more storage devices and/or computing devices (e.g., servers). The machine-readable instructions may require one or more of installation, modification, adaptation, updating, combining, supplementing, configuring, decrypting, decompressing, unpacking, distributing, reassigning, compiling, etc., in order to make them directly readable, interpretable, and/or executable by the computing device and/or other machine. For example, machine-readable instructions may be stored in multiple portions that are separately compressed, encrypted, and stored on separate computing devices, where the portions, when decrypted, decompressed, and combined, form a set of executable instructions that implement a program such as that described herein.

In another example, machine-readable instructions may be stored in a state where they are readable by a computer, but require the addition of libraries (e.g., Dynamic Link Libraries (DLLs)), Software Development Kits (SDKs), Application Programming Interfaces (APIs), and the like, in order to execute the instructions on a particular computing device or other device. In another example, machine readable instructions may need to be configured (e.g., stored settings, data input, recorded network address, etc.) before the machine readable instructions and/or corresponding program can be executed in whole or in part. Accordingly, the disclosed machine readable instructions and/or corresponding programs are intended to include such machine readable instructions and/or programs regardless of the particular format or state of the machine readable instructions and/or programs as they are stored or otherwise at rest or in transit.

The machine-readable instructions described herein may be represented by any past, current, or future instruction language, scripting language, programming language, or the like. For example, the machine-readable instructions may be represented using any of the following languages: C. c + +, Java, C #, Perl, Python, Java Script, HyperText markup language (HTML), Structured Query Language (SQL), Swift, and the like.

As described above, the example processes of fig. 6-15 may be implemented using executable instructions (e.g., computer readable instructions and/or machine readable instructions) stored on a non-transitory computer and/or machine readable medium, such as a hard disk drive, a flash memory, a read-only memory, an optical disk, a digital versatile disk, a cache, a random-access memory, and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended periods of time, permanently, for brief instances, for temporarily buffering, and/or for caching of the information).

Fig. 6 is a flow chart representing an example process 600 implemented by processor 208 of front suspension component 136 of fig. 2. In the example process 600, the processor 208 analyzes sensor data from one or more sensors and determines whether to change a damping level of the front suspension component 136 based on the sensor data. For example, the processor 208 may decide whether to stay in the current damping state or switch to a different damping state that provides a higher or lower amount of damping.

As disclosed in further detail, the example process 600 includes using sensor data to set one or more flags 602. The flags 602 represent various parameters or characteristics associated with the state of the bicycle 100 and/or the riding environment of the bicycle. Each of the flags 602 may be set or selected to one of two or more values (e.g., state, level, etc.) based on the level of the associated characteristic and/or whether the associated characteristic is present (e.g., presence or absence of pedaling). In some examples, the processor 208 selects the value of the flag 602 based on a comparison of the sensor data to a threshold value. Processor 208 stores the current value of flag 602 in memory 210 (fig. 2). The processor 208 then checks the flag value and determines whether to change the damping state of the damper 204 (fig. 2) based on the flag value (e.g., by activating the motion controller 206). In the illustrated example, the flags 602 include a medium vibration flag 602A, a large vibration flag 602B, a bump count flag 602C, a medium vibration terrain flag 602D, a large vibration terrain flag 602E, a pedal present flag 602F, a pedal short flag 602G, a pedal long flag 302G, a free fall flag 602I, a curve flag 602J, a pitch state flag 602K, and a trend pitch state flag 602L. In other examples, process 600 may include using more or fewer flags. In many of the examples disclosed herein, some of the flags 602 are described as having two states or values, referred to herein as flags being set or cleared. However, the two states or values may have any type of label, such as on and off, true and false, 0 and 1, and so on. These states or values indicate the level, presence, and/or absence of a certain parameter, which is then used to determine whether to remain in the current suspension state or switch to a new suspension state. Thus, the flag 602 is used to identify raw sensor data for changing suspension conditions.

In the example process 600, the processor 208 analyzes the acceleration data and uses the acceleration data to set one or more of the flags 602. In some examples, the acceleration data is from an accelerometer in the front suspension component 136. For example, the accelerometer may correspond to one of the sensors 214 (fig. 2) of the front suspension member 136. In some examples, the accelerometer is located on a sprung side (e.g., on an upper portion (fig. 1) of the front fork 108) of the bicycle 100 as opposed to being located on an unsprung side (e.g., on a lower portion of the front fork 108 at the front wheel 104 (fig. 1)). In some examples, having an accelerometer on the sprung side of bicycle 100 produces vibration data that more accurately reflects the riding environment and is less susceptible to certain characteristics of the rider (e.g., weight). However, in other examples, the accelerometer may be located on the unsprung side of the bicycle 100.

The acceleration data includes measurements from the accelerometer. These measurements are sampled or output at a particular frequency, such as 200 hertz (Hz). When the processor 208 receives the measurements, the processor 208 stores all of the measurements in the memory 210 (fig. 2). Additionally, at block 604, the processor 208 stores an amount of the most recent measurement in the buffer 212 in the memory 210. For example, the buffer 212 may store a plurality of measurement results. For example, the buffer 212 may store 10-20 measurements. If the buffer 212 stores ten (10) samples and the measurements are sampled at 200Hz (i.e., every 5ms), the buffer 212 may store the last 50ms value of the acceleration data. The acceleration data in the buffer 212 represents the instantaneous or current XYZ motion detected by the accelerometer. As new acceleration data values are received, the buffer 212 is updated with the latest acceleration data measurement of each 5 ms. In other examples, the acceleration data may be sampled at a higher or lower frequency and/or the buffer 212 may store more or fewer samples (e.g., 1, 2, 3, 4, etc.) to represent a longer or shorter time period.

At block 606, the processor 208 applies a filter to the Z (vertical) axis measurement. In this example, the processor 208 applies a standard deviation filter to the Z (vertical) axis measurements of the acceleration data stored in the buffer 212. In other examples, processor 208 may apply different types of filters to the acceleration data. The processor 208 then analyzes the filtered acceleration data from block 606 to determine whether there is a medium vibration and/or a large vibration. For example, at block 608, the processor 208 detects whether there is a moderate vibration. In some examples, processor 208 detects whether there is a moderate vibration based on the filtered acceleration data from block 606. In some examples, processor 208 detects whether there is a moderate vibration by comparing the output value from block 606 to one or more thresholds. An example of a vibration detection process used at block 608 is disclosed in connection with fig. 7. Based on the results of the vibration detection at block 608, the processor 208 selects the value of the medium vibration flag 602A. In this example, the moderate vibration flag 602A may be selected to one of two values, referred to herein as being set or cleared. If at least a moderate magnitude vibration is detected at block 608, the processor 208 sets or holds the moderate vibration flag 602A set. If at least a moderate magnitude vibration is not detected at block 608, the processor 208 clears the moderate vibration flag 602A or keeps the moderate vibration flag 602A clear. Thus, if the medium vibration flag 602A is set, it indicates at least a medium magnitude vibration (in the Z (vertical) direction) occurring in the front suspension component 136, such as when riding on a rock or bump, while if the medium vibration flag 602A is cleared, it indicates little or no vibration (in the Z (vertical) direction) occurring in the front suspension component 136, such as when riding on a relatively horizontal surface.

At block 610, the processor 208 detects whether there is a large vibration. In some examples, processor 208 detects whether there is a large vibration based on the filtered acceleration data from block 606. In some examples, processor 208 detects whether there is a large vibration by comparing the output value from block 606 to one or more thresholds. An example of a vibration detection process used at block 610 is disclosed in connection with fig. 7. In some examples, the vibration detection process at blocks 608 and 610 is the same, but utilizes different thresholds. Based on the results of the vibration detection process at block 610, the processor 208 selects the value of the large vibration flag 602B. In this example, the large vibration flag 602B may be selected to one of two values, referred to herein as being set or cleared. If at least a large size vibration is detected at block 610, the processor 208 sets the large vibration flag 602B or keeps the large vibration flag 602B set. If at least a large size vibration is not detected at block 610, the processor 208 clears the large vibration flag 602B or keeps the large vibration flag 602B clear. Thus, if the large vibration flag 602B is set, it indicates that at least large-scale vibration (in the Z (vertical) direction) has occurred in the front suspension member 136, such as when riding on a large rock or bump, while if the large vibration flag 602B is cleared, it indicates that large-scale vibration (in the Z (vertical) direction) has not occurred in the front suspension member 136, such as when riding on less rough terrain. Because the medium and large vibration flags 602A, 602B are based on acceleration data in the bumper 212 (FIG. 2), the medium and large vibration flags 602A, 602B represent current or instantaneous vibrations occurring in the front suspension component 136.

In the illustrated example, at block 611, processor 208 detects whether a threshold number of bumps (bump) have occurred within a period of time. In some examples, processor 208 detects whether a threshold number of bumps have occurred within the time period based on the filtered acceleration data from block 606. An example of a bump count detection process implemented at block 611 is disclosed in connection with fig. 10. Based on the results of the bump count detection process at block 611, processor 208 selects a value for bump count flag 602C. In this example, bump count flag 602C may be selected to be one of two values, referred to herein as being set or cleared. If a threshold number of bumps have occurred within a period of time, processor 208 sets or keeps bump count flag 602C set. If a threshold number of bumps have not occurred within a period of time, processor 208 clears bump count flag 602C or maintains bump count flag 602C as cleared. Thus, if the bump count flag 602C is set, it indicates that the bicycle 100 (fig. 1) has ridden a certain number of bumps over a period of time, such as when riding along a rough road, and if the bump count flag 602C is cleared, it indicates that the bicycle 100 has not ridden a certain number of bumps over a period of time, such as when riding on a relatively smooth road.

In addition to detecting the current or instantaneous vibration level at blocks 608 and 610, the processor 208 also detects a trending vibration level, which is the presence of vibration over a longer period of time. The trend vibration may indicate riding on rougher terrain. In some examples, it is advantageous to consider the entire terrain because although the front suspension member 136 may not be experiencing the current vibrations, the bicycle 100 (FIG. 1) may be traveling along a relatively rough path. In this way, the front suspension component 136 may be maintained in an open or pedal state to help absorb at least some of the vibrations.

At block 612, the processor 208 applies an Exponential Moving Average (EMA) filter to the filtered acceleration data from block 606 and to previously filtered acceleration data. In some examples, all output values from block 606 are stored in memory 210 over time. In some examples, at block 612, processor 208 applies the EMA filter to the two or more output values from block 606 that have been recorded. In some examples, the processor 208 applies the EMA filter to all output values that have been recorded (i.e., all acceleration data since the previous suspension component 136 was first activated). In some examples, the EMA filter is an infinite impulse response filter. Such a filter weights the data based on timing so that data from a more distant time period has less impact on the overall calculation. Thus, the processor 208 takes into account acceleration data that occurs over a longer period of time. This enables the processor 208 to determine whether the bicycle 100 is traveling over rougher terrain, thereby causing consistent vibrations. If the bicycle 100 rides a single lug, the EMA value may not rise enough to make the difference. However, if the bicycle 100 encounters many bumps, the EMA value gradually rises, which may cause the front suspension component 136 to change suspension states or prevent the front suspension component 136 from switching out of a particular suspension state, as disclosed in further detail herein.

The processor 208 then analyzes the sensor data to determine whether the bicycle 100 (fig. 1) is riding on moderate and/or large vibration terrain. For example, at block 614, the processor 208 detects whether moderately vibrating terrain is present. In some examples, processor 208 detects whether moderately vibrating terrain is present based on the filter acceleration data from block 612. In some examples, processor 208 detects whether moderate vibration terrain is present by comparing the output values from block 612 to one or more thresholds. An example of a vibration detection process used at block 614 is disclosed in connection with FIG. 7. The process may be the same as the process performed at blocks 608 and 610. Based on the results of the vibration detection process at block 614, the processor 208 selects the value of the moderate vibration terrain indicia 602D. In this example, the moderate vibration terrain flag 602D may be selected to one of two values, referred to herein as being set or cleared. If at least moderate vibration terrain is detected at block 614, the processor 208 sets or holds the moderate vibration terrain flag 602D set. If at least moderate vibration terrain is not detected at block 614, the processor 208 clears the moderate vibration terrain indicia 602D or maintains the moderate vibration terrain indicia 602D as cleared. Thus, if the medium vibration terrain flag 602D is set, it indicates the presence of at least medium vibration terrain, such as when riding on a gravel road, and if the medium vibration terrain flag 602D is cleared, it indicates terrain that results in little or no vibration, such as when riding on a relatively smooth road.

At block 616, the processor 208 detects whether large vibration terrain is present. In some examples, the processor 208 detects whether large vibration terrain is present based on the filtered acceleration data from block 612. In some examples, the processor 208 detects whether large vibration terrain is present by comparing the output values from block 612 to one or more thresholds. An example of a vibration detection process used at block 616 is disclosed in connection with fig. 7. The process may be the same as the process performed at blocks 608, 610, and 614, but different thresholds may be used. Based on the results of the vibration detection process at block 616, the processor 208 selects a value for the large vibration terrain indicia 602E. In this example, the large vibration terrain flag 602E may be selected to one of two values, referred to herein as being set or cleared. If at least large vibration terrain is detected at block 616, the processor 208 sets the large vibration terrain flag 602E or maintains the large vibration terrain flag 602E set. If at least the large vibration terrain is not detected at block 616, the processor 208 clears the large vibration terrain indicia 602E or maintains the large vibration terrain indicia 602E clear. Thus, if the large vibration terrain flag 602E is set, it indicates the presence of at least large vibration terrain, such as when riding along a rocky hill, while if the large vibration terrain flag 602E is cleared, it indicates terrain causing lower vibrations. As disclosed above, each of the vibration detection processes occurring at blocks 608, 610, 614, 616 may be implemented by the process in fig. 7. However, a different threshold value may be used for each vibration detection process.

Accordingly, the process 600 utilizes sensor data (e.g., acceleration data) from a first time period (e.g., acceleration data stored in the buffer 212) and sensor data (e.g., all acceleration data) from a second time period to determine whether to change the damper state. The second time period is longer than the first time period. Further, the second time period includes the first time period and a time period occurring before the first time period. For example, the first time period may be a time period covered by acceleration data in the buffer 212, such as the last 50 ms. This represents a current or instantaneous vibration. The second time period is a longer time period, which may include acceleration data from a longer time period, such as the last 100ms, 500ms, 1s, 5s, and so on. In some examples, the second time period includes all acceleration data (e.g., all output values from block 606) since the previous suspension component 136 was first activated (e.g., turned on). As disclosed in further detail, the processor 208 checks one or more flags 602 and determines whether to change the state of the damper 204. Accordingly, the processor 208 may activate the motion controller 206 to change the damper between the first damping state and the second damping state based on sensor data from the first time period and the second time period. The processor 208 detects the amount of current vibration based on sensor data from the first time period (e.g., at blocks 608 and/or 610) and detects the amount of vibration from the terrain based on sensor data from the second time period (e.g., at blocks 614, 616). The processor 208 applies a standard deviation filter (at block 606) to the sensor data from the first time period to produce a first output value and applies an exponential moving average filter (at block 612) to the sensor data from the second time period to produce a second output value. At block 608, for example, the processor 208 compares the first output value to a first threshold to set the moderate vibration flag 602A. At block 614, for example, the processor 208 compares the second output value to a second threshold value to set the moderate vibration terrain flag 602D. The processor 208 selects between different damping states based on the flag 602, as disclosed in further detail herein.

In addition to analyzing acceleration data from an accelerometer in the front suspension component 136, the example process 600 may also analyze and/or otherwise utilize sensor data from one or more other sensors. For example, at block 618, the processor 208 receives and stores tread data (also referred to as pedal sensor data or pedal data). In some examples, the tread data indicates whether the crank assembly 120 is rotating and/or the speed of rotation. In some examples, the step data is from a pedal detection sensor 142, the pedal detection sensor 142 wirelessly transmitting the step data to the front suspension component 136. Thus, the tread data may include the measurement result from the pedal detection sensor 142. These measurements are sampled or output at a particular frequency, such as 200 hertz (Hz). In some examples, the measurements are sampled or output at the same frequency as the acceleration data from the accelerometer in the front suspension component 136. Processor 208 receives and stores the pedaling data in memory 210 (fig. 2). Additionally or alternatively, other types of sensors may be used to detect whether a step is occurring and/or the speed of such step. For example, if the sensor is configured to measure or detect input power, such power input data may be used to indicate pedaling and/or speed of such pedaling.

The tread data may be used to select the value of one or more of the flags 602. At block 620, the processor 208 detects whether the pedaling is occurring based on the pedaling data. For example, if the pedaling data has a positive value (or a value above a threshold), it may indicate that pedaling is occurring. Based on the result of the detection at block 620, the processor 208 selects the value of the pedal present flag 606 e. In this example, the pedal now flag 606e may be selected to one of two values, referred to herein as being set or cleared. If a step is detected at block 620, the processor 208 sets the pedal present flag 606E or holds the pedal present flag 606E set. If no pedaling is detected at block 620, the processor 208 clears the pedal present flag 606E or maintains the pedal present flag 606E as clear. Thus, if the pedal present flag 602F is set, it indicates a current or instantaneous pedaling, and if the pedaling present flag 602F is cleared, it indicates that no pedaling has occurred.

In addition to detecting a current or instantaneous step at block 620, the processor 208 also determines whether a step has occurred for a shorter period of time and a longer period of time. At block 622, the processor 208 detects whether the pedaling has occurred for at least a first amount of time or has not occurred for at least a second amount of time based on the pedaling data. In some examples, the processor 208 uses a pedal hysteresis process that tracks the pedaling time. An example of the pedal hysteresis process used at block 622 is disclosed in connection with FIG. 8. Based on the results of the process at block 622, the processor 208 selects the value of the pedal short flag 602G. In this example, the short pedal flag 602G may be selected to one of two values, referred to herein as being set or cleared. If consistent pedaling is detected for at least a first amount of time (e.g., a set time as described in further detail in connection with fig. 8), the processor 208 sets the pedal flag 602F or maintains the pedal short flag 602G set. If a step is not detected for at least a second amount of time (e.g., a clear time, described in further detail in connection with FIG. 8), the processor 208 clears the pedal short flag 602G or maintains the pedal short flag 602G clear. Thus, if the pedal short flag 602G is set, it indicates that pedaling has occurred for at least a first amount of time, and if the pedal short flag 602G is cleared, it indicates that pedaling has not occurred for at least a second amount of time. In some examples, the first amount of time and the second amount of time are different. In other examples, the first amount of time and the second amount of time are the same.

At block 624, the processor 208 detects whether the step has occurred for at least a third amount of time or has not occurred for at least a fourth amount of time based on the step data. The third and fourth amounts of time may be greater than the first and second amounts of time used to set or clear the pedal short flag 602G at block 622. In some examples, the processor 208 uses a pedal hysteresis process that tracks the pedaling time. An example of the pedal hysteresis process used at block 622 is disclosed in connection with FIG. 8. In some examples, the pedal hysteresis process at blocks 622 and 624 is the same, but utilizes different thresholds. Based on the results of the process at block 624, the processor 208 selects the value of the pedal length flag 602H. In this example, the pedal length flag 602H may be selected to one of two values, referred to herein as being set or cleared. If a step is detected for at least a third amount of time (e.g., a set time as described in further detail in connection with FIG. 8), the processor 208 sets or holds the pedal long flag 602H set. If a step is not detected for at least a fourth amount of time (e.g., a dead time, described in further detail in connection with fig. 8), the processor 208 clears the pedal long flag 602H or maintains the pedal long flag 602H clear. Thus, if the pedal long flag 602H is set, it indicates that pedaling has occurred for at least a third amount of time, and if the pedal long flag 602H is cleared, it indicates that pedaling has not occurred for at least a fourth amount of time. In some examples, the third and fourth amounts of time are different. In other examples, the third and fourth amounts of time are the same.

In addition to analyzing acceleration data for vibrations, the example process 600 may also analyze and/or otherwise utilize acceleration data for other parameters to set other ones of the flags 602. At block 626, the processor 208 applies a filter to the acceleration data in the buffer 212. In this example, the processor 208 applies a low pass filter (e.g., a Butterworth filter) to the acceleration data in the buffer 212. However, in other examples, processor 208 may apply different types of filters. At block 628, the processor 208 detects whether the bicycle 100 (fig. 1) is in free fall based on the output of block 606 and the output of block 626. Free fall occurs when the bicycle 100 is not supported by an underlying surface, such as when the rider jumps the bicycle 100 off a rock. In some examples, the filtered data from block 606 (standard deviation filter) is used to determine how much noise is in the data. Generally, the noise may be relatively high if the bicycle 100 is being ridden on the ground, and relatively low (e.g., at or near zero) if the bicycle 100 is in free fall. The filtered data from block 626 (low pass filter) is used to determine the magnitude of the gravity vector. The processor 208 compares the gravity vector values from the acceleration data to a threshold (e.g., the processor 208 performs a gravity comparison). If the processor 208 determines that the noise is low and the magnitude of the gravity vector from the acceleration data is equal to or near zero, the processor 208 determines that the bicycle 100 is in free fall. Additionally or alternatively, the processor 208 may use another technique to detect free fall. For example, in some cases, even in free fall, the gravity vector from the acceleration data may not become zero due to input from the rider moving the bicycle 100 in air. In such an example, processor 208 may detect freefall based on a pattern of intersections of the X and Z vectors. Based on the result of the detection at block 628, processor 208 selects the value of free fall flag 602I. In this example, the free fall flag 602I may be selected to one of two values, referred to herein as being set or cleared. If a free fall is detected at block 628, the processor 208 sets or maintains the free fall flag 602I set. If no free fall is detected at block 628, processor 208 clears free fall flag 602I, or alternatively maintains free fall flag 602I as cleared. Thus, if the free fall flag 602I is set, it indicates that the bicycle 100 is in a free fall state, and if the free fall flag 602I is cleared, it indicates that the bicycle 100 is not in a free fall state.

At block 630, processor 208 calculates or determines parameters related to yaw, pitch, and roll. In this example, the processor 208 calculates instantaneous and trend yaw, pitch, and roll angles of the front suspension components 136 based on the filtered data from block 626. At block 630, the processor 208 also determines instantaneous and trend yaw, pitch, and roll states based on the respective instantaneous and trend yaw, pitch, and roll angles. Instantaneous and trending yaw, pitch, and roll states are selected from a plurality of predefined states. An example of a yaw-pitch-roll detection process used at block 630 is disclosed in connection with fig. 9.

In some examples, the same process at block 630 is performed by a processor of the rear suspension component 138 using acceleration data collected at the rear suspension component. In particular, the rear suspension component 138 analyzes its own acceleration data (e.g., from internal accelerometers) and determines its instantaneous and trend yaw, pitch, and roll angles and states. The rear suspension component 138 transmits or broadcasts instantaneous and trending yaw, pitch and roll angles and states. This process may occur at the same frequency as processor 208 performs process 600. At block 632, processor 208 receives instantaneous and trend yaw, pitch, and roll angles and states from rear suspension component 138 (e.g., via communication interface 216 (fig. 2)) and uses these angles and/or states to set or select values for one or more of flags 602.

Based on the results from block 630 and block 632, the processor 208 determines whether the bicycle 100 (fig. 1) is turning. A turn may be defined by a change in direction of the bicycle 100 exceeding a predetermined threshold (e.g., > 0 ° in either direction, > 5 ° in either direction, > 10 ° in either direction, etc.). For example, the processor 208 can compare the change in orientation of the bicycle 100 to a threshold value. The processor 208 may set one or more flags based on the comparison. In this example, the processor 208 determines whether the bicycle 100 is turning through a curve (switchback) and selects a value for the curve flag 602J. In some examples, a curve is defined as a turn greater than 90 °. In this example, the curve flag 602J may be selected to one of two values, referred to herein as being set or cleared. In some examples, if the pitch state from the rear suspension component 138 is relatively high, the processor 208 detects that the bicycle 100 is negotiating a curve and that there is a relatively large difference between the rolling state of the front suspension component 136 and the rolling state of the rear suspension component 138. For example, when turning through a curve (which typically has a steeper incline or decline), the rear portion of the bicycle 100, including the rear suspension member 138, has minimal roll, while the front suspension member 136 (fig. 1) on the front fork 108 turns sharply and experiences high roll. This difference between the scrolling states may be compared to a threshold to determine whether a turn has occurred. Accordingly, the processor 208 may detect a curve based on acceleration data from the front and rear suspension components 136, 138. In other examples, the processor 208 may use other techniques to detect curves. If a curve is detected, the processor 208 sets or holds the curve flag 602J set. If a curve is not detected, the processor 208 clears the curve flag 602J or maintains the curve flag 602J cleared. Thus, if the curve flag 602J is set, it indicates that the bicycle 100 is turning through a curve, and if the curve flag 602J is cleared, it indicates that the bicycle 100 is not turning through a curve. In other examples, the processor 208 may set one or more flags based on other steering angles in addition to or as an alternative to curves.

The processor 208 also selects the values of the pitch status flag 602K and the trend pitch status flag 602L. In this example, the processor 208 selects the values of the pitch status flag 602K and the trend pitch status flag 602L based on the pitch status and the trend pitch status from the rear suspension component 138. In particular, because the rear suspension member 138 is generally fixed relative to the frame 102, the yaw, pitch, and roll of the rear suspension member 138 generally correspond to the yaw, pitch, and roll of the entire bicycle 100. The pitch state is based on the calculated pitch angle and represents the current or instantaneous pitch of the bicycle 100. The pitch angle is the angle between the longitudinal axis of the bicycle 100 and the horizontal. In this example, the pitch state may be one of seven states or values. Pitch state one represents steep descent, pitch state two represents moderate descent, pitch state three represents shallow descent, pitch state four represents lateral movement, pitch state five represents shallow ascent, pitch state six represents moderate ascent, and pitch state seven represents steep ascent. Each of these pitch states represents a range of pitch angles. For example, pitch state one may include angles less than-15 °, pitch state two may include angles from-6 ° to-15 °, pitch state three may include angles from-2 ° to-5 °, pitch state four may include angles from-1 ° to 1 °, pitch state five may include angles from 2 ° to 5 °, pitch state six may include angles from 6 ° to 15 °, and pitch state 7 may include angles greater than 15 °. The trending pitch state is similar to the pitch state, but is measured over a period of time that indicates whether the bicycle 100 is riding substantially uphill, downhill, or on flat ground. The processor of the rear suspension component 138 can apply a short-cycle EMA filter to the past acceleration data to determine a trend pitch condition. In some examples, the trend pitch state may also be set to one of seven values similar to the pitch state, where each trend pitch state represents a range of trend pitch angles. In other examples, the pitch state and/or the trend pitch state may be divided into more or fewer states.

The processor 208 sets the value of the pitch state flag 602K to the value of the pitch state from the rear suspension component 138. For example, if the pitch state of the rear suspension component 138 is pitch state seven, the processor 208 sets the value of the pitch state flag 602K to seven. Similarly, the processor 208 sets the value of the trend pitch status flag 602K to the trend pitch status from the rear suspension component 138.

The example process 600 may include more or fewer flags. Further, in other examples, any of the flags 602 may have more or fewer values or states. At block 634, processor 208 checks for certain ones of flags 602. An example of the process performed at block 634 is disclosed in further detail in connection with fig. 11. In this example, all flags 602 except the trend pitch status flag 602L are considered at block 634. However, in other examples, the trend pitch status flag 602L may also be considered. Based on the value of the flag 602, the processor 208 selects a suspension state of the front suspension component 136. In some examples, at block 634, the processor 208 determines that the front suspension component 136 should remain in the same or current suspension state, in which case the front suspension component 136 remains in the current suspension state. In other examples, at block 634, the processor 208 determines that the front suspension component 136 should change or switch to a different suspension state, thereby increasing or decreasing the damping level. In such an example, the processor 208 activates the motion controller 206 (fig. 2) to switch or change the damping state of the damper 204 (fig. 2).

At block 636, the processor 208 updates one or more thresholds used in one or more detection processes. As disclosed in further detail herein, the vibration detection process at blocks 608, 610, 614, 616 and the pedal hysteresis process at blocks 622, 624 utilize certain thresholds. At block 636, the processor 208 updates the threshold for the next execution. In some examples, the processor 208 updates the threshold based on the current state of the front suspension component 136 (from block 634), the pitch state of the bicycle 100 (from the pitch state flag 602K), and/or the trend pitch state (from the trend pitch state flag 602L). An example of the process performed at block 636 is disclosed in connection with FIG. 15.

In some examples, process 600 in fig. 6 is performed repeatedly at a particular frequency. For example, process 600 may be performed at a frequency of 200 Hz. Thus, every 5ms, the processor 208 analyzes the sensor data, selects the value of the flag 602 (or maintains the flag 602 at its current value), determines whether the front suspension component 136 is to remain in a suspension state or change to a different suspension state, and updates the threshold for the next execution. In other examples, process 600 may be performed more or less frequently. In some examples, the frequency is based on the frequency at which the sensor data is received or generated. For example, if the acceleration data is generated at 200Hz, the example process 600 may be performed at 200Hz to analyze the new sensor data.

Fig. 7 is a flow diagram of an example vibration detection process 700 implemented by processor 208 to select a value of a vibration flag. The example vibration detection process 700 is independently performed by the processor 208 at each of the blocks 608, 610, 614, 616 of fig. 6. The processes may be performed concurrently in the processor 208 or performed sequentially as separate processes. As described above, each of the medium vibration flag 602A, the large vibration flag 602B, the medium vibration terrain flag 602D, and the large vibration terrain flag 602E may be set or cleared. The processor 208 implements the vibration detection process 700 to set or clear the flags 602A, 620B, 620D, 620E. As disclosed in further detail below, the vibration detection process 700 utilizes a set threshold and a clear threshold. Each of the blocks 608, 610, 614, 616 may set or clear the respective flag 602A-602E using a different set and/or clear threshold. For example, block 608 may use a first value for the set and clear threshold, block 610 may use a second value for the set and clear threshold (which may be greater than the first value), block 614 may use a third value for the set and clear threshold, and block 616 may use a fourth value for the set and clear threshold (which may be greater than the third value).

For clarity, the example vibration detection process 700 is described in connection with block 608 of FIG. 6 for setting or clearing the moderate vibration flag 602A. However, it should be understood that the example vibration detection process 700 is similarly performed in conjunction with the large vibration signature 602B, the medium vibration terrain signature 602D, and the large vibration terrain signature 602E.

In some examples, the set and clear thresholds are dynamically calculated by the processor 208. In some examples, processor 208 calculates the set threshold based on (1) a base set threshold, (2) a vibration dynamics deviation value, and (3) a vibration assist deviation value. The vibration dynamics deviation value and the vibration assistance deviation value are determined at block 636 in fig. 6. An example of this process is disclosed in further detail in connection with fig. 15. The clearance threshold is similarly calculated based on (1) the base clearance threshold, (2) the vibration dynamics deviation value, and (3) the vibration assist deviation value. The base settings and purge thresholds may be pre-stored in memory 210 (fig. 2) and/or may be provided by a user. The vibration dynamics deviation value and the vibration assist deviation value may be added to or subtracted from the values of the base set and clear thresholds to increase or decrease the respective set and clear thresholds. The vibration dynamic deviation value and the vibration assisted deviation value can vary with the suspension state of the front suspension component 136 and the pitch state of the bicycle 100, as disclosed in further detail herein. Thus, the set threshold and the clear threshold may be dynamically changed. However, in other examples, the set threshold and/or the clear threshold may be fixed.

At block 702, the processor 208 receives an input value. In this example, the input value is the output of block 606 of fig. 6 (i.e., the filter acceleration data). At block 704, the processor 208 checks whether the moderate vibration flag 602A is set, and at block 706, the processor 208 determines whether the input value is greater than a set threshold. If the input value is not greater than the set threshold, control returns to block 702 and the example vibration detection process 700 is repeated when the next input value is received. If the input value is greater than the set threshold, then at block 708, the processor 208 sets the moderate vibration flag 602A. The example process 700 is then repeated when the next input value is received.

If, at block 704, the processor 208 determines that the medium vibration flag 608A is set, control proceeds to block 710. At block 710, the processor 208 determines whether the input value is greater than a clearing threshold. If the input value is greater than the clearing threshold, control returns to block 702 and the example vibration detection process 700 is repeated when the next input value is received. If, at block 710, the processor 208 determines that the input value is not greater than the purge threshold, control proceeds to block 712. At block 712, the processor 208 clears the moderate vibration flag 602A, and control then returns to block 702 and repeats the example vibration detection process 700 when the next input value is received.

In some examples, the set threshold is higher than the clear threshold. Therefore, the threshold value for the initial setting of the moderate vibration flag 602A is higher than the threshold value for the holding of the moderate vibration flag 602A set. In other words, once the medium vibration flag 602A is set, the threshold for keeping the medium vibration flag 602A is low. This creates a hysteresis band for the vibration detection process 700. In other examples, the set threshold and the clear threshold may be the same.

The example vibration detection process 700 may be repeated at the same frequency as the process 600 of fig. 6. Additionally, in some examples, the processor 208 recalculates the set threshold and the purge threshold each time the example process 600 is executed. Thus, the set threshold and clear threshold can be dynamically changed as the suspension state and the state of the bicycle 100 change. This enables the vibration detection process 700 to account for the effects of suspension conditions and the state of the bicycle 100 on vibration detection. For example, an accelerometer may produce different acceleration data when the front suspension member 136 is in an open state than the acceleration data that the accelerometer may produce when the front suspension member 136 is in a locked state, despite riding on the same size bumps. Further, varying the set threshold and the clear threshold can be used to help bias the suspension state toward a suspension state.

FIG. 8 is a flow chart of an example pedal hysteresis process 800 implemented by the processor 208 to select a value for the trample flag. The example pedal hysteresis process 800 is independently executed by the processor 208 at each of blocks 622 and 624 of fig. 6. The processes may be performed concurrently in the processor 208 or performed sequentially as separate processes. As described above, each of pedal short flag 602G and pedal long flag 602H may be set or cleared. As disclosed in further detail below, the pedal hysteresis process 800 utilizes a set time (first threshold) and an idle time (second threshold). The set time is used to determine when the flag is set and the idle time is used to determine when the flag is cleared. At block 622, the setup time and the idle time are different for the pedal short detection process, and at block 624, for the pedal long detection process. For example, at block 624, the pedal long detection process may use a higher setup time than the pedal short detection process at block 622.

For clarity, the example pedal hysteresis process 800 of FIG. 8 is described at block 622 in conjunction with a pedal short detection process for setting or clearing the pedal short flag 602G. However, it should be appreciated that the example pedal hysteresis process 800 may be similarly performed in conjunction with the pedal length detection process at block 624 at the same or different setup times and/or idle times.

In some examples, the setup time and the idle time are dynamically calculated by the processor 208. In some examples, processor 208 calculates the set time based on (1) a base set time value and (2) a set time offset value. The set time offset value may be added to or subtracted from the base set time value. Similarly, the idle time is calculated based on (1) the base set time value and (2) the idle time offset value. The set and idle time offset values are calculated at block 636 in fig. 6. An example of this process is disclosed in more detail in connection with fig. 15. The base settings and the idle time values may be pre-stored in memory 210 (fig. 2) and/or may be provided by a user. As disclosed in further detail herein, the setup time and idle time offset values may vary with the pitch state of the bicycle 100. Thus, the set time and the idle time can be dynamically changed. However, in other examples, the setting and/or idle time may be fixed.

In some examples, processor 208 tracks time using ticks (ticks) or time increments. Ticks or time increments occur at a set frequency. For example, ticks or time increments may be counted every 5 ms. In some examples, the set time and the idle time are represented by a number of ticks or a time increment. For example, the set time may be represented by a first number of ticks, and the free time may be represented by a second number of ticks (which may be the same or different than the first number of ticks). The processor 208 tracks the number of ticks since the start of the tread and the stop of the tread. In particular, the processor 208 uses a set counter to track the number of ticks or time increments since the start of stepping and a clear counter to track the number of ticks or time increments since the stop of stepping. Each time the trampling is started (after stopping), the counter is set to restart and track the number of ticks as the trampling continues. Every time the stepping stops (after stepping has occurred), the clearing counter restarts and tracks the number of ticks since the stepping stopped. However, in other examples, processor 208 may use other techniques to track time.

At block 802 of fig. 8, the processor 208 determines whether a tread is occurring. The processor 208 determines whether stepping occurs based on the stepping data from the pedal detection sensor 142 (fig. 1). If the processor 208 determines that a step is occurring, at block 804, the processor 208 determines whether the set counter is greater than or equal to the set time. As described above, the counter is set to track the number of ticks or time increments since the start of stepping. If the set counter is not greater than or equal to the set time, the processor 208 increments the set counter by one tick or time increment at block 806, and control returns to block 802. The exemplary process 800 is then repeated.

If the set counter is greater than or equal to the set time (indicating that a consistent pedaling has occurred for at least the set time), the processor 208 determines at block 806 whether the pedal short flag 602G is set. If the pedal short flag 602 is set, the processor 208 increments the set counter by one tick or time increment at block 806, and control returns to block 802. The exemplary process 800 is then repeated. If pedal short flag 602G is not set (i.e., pedal short flag 602G is cleared), processor 208 sets pedal short flag 602G at block 810. Then, at block 806, the processor 208 increments the set counter by one tick or time increment, and control returns to block 802. The exemplary process 800 is then repeated.

If, at block 802, the processor 208 determines that a step is not occurring, control proceeds to block 812. At block 812, the processor 208 determines whether the flush counter is greater than or equal to the idle time. If the purge counter is not greater than or equal to the idle time (indicating that stepping has not stopped for the idle time), then at block 814, the processor 208 increments the purge counter by one tick or time increment, and control returns to block 802. The exemplary process 800 is then repeated.

If the purge counter is greater than or equal to the idle time, at block 816, the processor 208 determines whether the pedal short flag 602G is set. If the pedal short flag 802F is not set (i.e., pedal short flag 602G is cleared), the processor 208 increments the clear counter by one tick or increment at block 814 and control returns to block 802. The exemplary process 800 is then repeated. If the pedal short flag 602G is set, the processor 208 clears the pedal short flag 602G at block 818. Then, at block 814, the processor 208 increments the clear counter by one tick or time increment, and control returns to block 802. The exemplary process 800 is then repeated.

As an example of this process, it is assumed that the set time is 3 seconds, the idle time is 2 seconds, and the pedal short flag 602G is cleared. The processor 208 checks whether pedaling is occurring and has occurred for 3 seconds (set time). If a trample is occurring but not occurring consecutively for 3 seconds (set time), the pedal short flag 602G remains clear and the processor 208 continues to monitor for tramples. The set counter is reset each time the stepping stops and starts again. When the stepping has occurred for 3 seconds consecutively (set time), the processor 208 sets the pedal short flag 602G. Thereafter, the pedal short flag 602G remains set. If the stepping is stopped, the processor 208 checks whether the stepping has stopped for 2 seconds (idle time). The clear counter is reset each time the stepping starts and stops again. The pedal short flag 602G remains set if the stepping has not been stopped for 2 seconds (idle time). If the stepping has stopped for more than 2 seconds (idle time), the processor 208 clears the pedal short flag 602G. Therefore, if the pedal short flag 602G is cleared, a constant depression of at least 3 seconds is required to set the pedal short flag 602G. Conversely, if pedal short flag 602G is set, then at least 2 seconds of pedaling are not required to clear pedal short flag 602G. In other examples, the setup time and/or the idle time may be greater or less. In some examples, the setup time and the idle time are equal. In other examples, the set time is greater than the idle time. In other examples, the idle time is greater than the set time.

The example pedal detection process 800 may be repeated at the same frequency as the process 600 of FIG. 6. Additionally, each time the example process 600 is performed, the processor 208 recalculates the setup and idle times based on the setup and idle time offset values. In some examples, the calculation is based on one or more parameters, such as the current pitch state of the bicycle 100 (e.g., as indicated by the pitch state flag 602K). This enables the front suspension component 136 to switch to a different suspension state more or less quickly depending on the pitch state. For example, if the pitch state indicates that the bicycle 100 is facing upward, such as when ascending a hill, the setup time offset value may be decreased by the setup time (e.g., from 3 seconds to 2.5 seconds), and the idle time offset value may be increased by the idle time (e.g., from 2 seconds to 2.5 seconds). In this way, the pedal short flag 602G is set faster, which enables the front suspension member 136 to switch to the locked state faster and to remain in the locked state longer, which is more desirable when stepping on an uphill. Conversely, if the pitch state indicates that the bicycle 100 is pitching down, such as when riding downhill, the set time offset value may increase the set time and the idle time offset value may decrease the idle time, which requires more pedaling to occur before switching to the locked state, thereby maintaining the front suspension member 136 in the open state for a longer period of time. In other examples, the set and idle time offset values may be based on other parameters (e.g., current suspension state, current gear, etc.) in addition to or instead of the current pitch state.

Fig. 9 is a flow diagram of an example angle detection process 900 implemented by the processor 208. The example angle detection process 900 is performed by the processor 208 at block 632 of fig. 6. The example angle detection process 900 is executed by the processor 208 for yaw, pitch, and roll of the front suspension components 136. For example, the process 900 may be performed simultaneously or continuously by the processor 208 for each of the yaw, pitch, and roll of the front suspension component 136. Further, the same process is performed by the processor of the rear suspension assembly 138 for each of yaw, pitch, and roll of the rear suspension assembly 136. For clarity, the example process 900 is described in connection with pitch for the front suspension component 136. However, it should be understood that the same process is also performed for yaw and roll of the front suspension components 136.

At block 902, the processor 208 calculates a pitch angle of the front suspension component 136 at block 626 in fig. 6 using the filtered acceleration data from the low pass filter. In some cases, the calculated pitch angle is noisy. Thus, at block 904, the processor 208 applies an EMA filter to the pitch angle using the instantaneous α in the EMA calculation to determine the instantaneous pitch angle. Applying the EMA filter helps to smooth the pitch angle. An example calculation implemented by an EMA filter is as follows: y (n) · x (n) · α + y (n-1) · (1- α), where y (n) is the last output value, x (n) is the last acceleration sample (e.g., from the low-pass filter at block 626 in fig. 6), y (n-1) is the previous output value from the EMA filter, and α is the α value, where α ≦ 1. For the instantaneous pitch angle calculation, a relatively large α (e.g., close to 1) is used. In some examples, at block 906, the processor 208 outputs the instantaneous pitch angle of the front suspension component 136 for one or more other processes.

After applying the EMA filter at block 904, the processor 208 also determines an instantaneous pitch state of the front suspension component 136 based on the instantaneous pitch angle and the plurality of angle thresholds at block 908. For example, as described above, the instantaneous pitch state may include seven pitch states, where each of the pitch states corresponds to a range of angles. The processor 208 compares the instantaneous pitch angle to a threshold to determine a corresponding instantaneous pitch state. For example, pitch state six may correspond to a pitch angle of 6 ° to 15 °. If the instantaneous pitch angle is 12, the processor 208 determines the instantaneous pitch state as pitch state six. At block 910, the processor 208 outputs the instantaneous pitch state. In some examples, processor 208 uses the instantaneous pitch state for other processes. Additionally, the instantaneous pitch state can be used to set values for one or more flags, such as the curve flag 602J. Further, as described above, the processor 208 uses the instantaneous pitch state from the rear suspension component 138 to set the pitch state flag 602K. For example, if the instantaneous pitch state from the rear suspension component 138 is pitch state 6, the processor sets the pitch state flag 602K to a value of 6.

At block 912, the processor 208 applies an EMA filter to the pitch angle using the trend a in the EMA calculation to determine a trend pitch angle. The EMA calculation is the same as that disclosed above, but a smaller value of alpha is used to weight the older sample values more heavily. At block 914, the processor 208 outputs a trend pitch angle to be used in one or more other processes.

After applying the EMA filter at block 912, the processor 208 determines a trend pitch state based on the trend pitch angle and the plurality of angle thresholds at block 916. Similar to the instantaneous pitch state, the trend pitch state may include seven pitch states, where each trend pitch state corresponds to a range of trend pitch angles. At block 918, the processor 208 outputs a trend pitch status. In some examples, processor 208 uses the trend pitch state for other processes. Further, as described above, the processor 208 uses the trend pitch status from the rear suspension component 138 to set the trend pitch status flag 602L. The example process 900 is then repeated when the next output is received from the low pass filter (block 626 of fig. 6). The example process 9800 may be repeated at the same frequency as the process 600 of fig. 6.

Fig. 10 is a flow diagram of an example process 1000 implemented by processor 208 to select a value for bump count flag 602C. The example process 1000 is performed by the processor 208 at block 611 in fig. 6. As described above, in this example, bump count flag 602C may be set or cleared.

At block 1002, the processor 208 detects whether the bicycle 100 has ridden the bump. The processor 208 detects whether the bicycle 100 has ridden the bump based on the output value of the filtered acceleration data of block 606 in fig. 6. In some examples, processor 208 detects whether a bump has occurred by comparing the output value to a threshold. For example, if the output value from the previous sample meets a threshold (e.g., is above the threshold) but the output value from the most recent sample does not meet the threshold (e.g., is below the threshold), processor 208 may determine that a bump has occurred. This characteristic (e.g., spike) of the acceleration data indicates that the bicycle 100 is riding over the bump. The threshold may be set to any desired threshold depending on the desired size of the bump to be detected. In other examples, the processor 208 may use other techniques to detect whether the bicycle 100 has ridden over a bump.

If a bump is detected, at block 1004, the processor 208 time stamps the occurrence of the bump and saves the time stamp in a buffer (e.g., in the memory 210 (fig. 2)). When a bump has been detected, control proceeds to block 1006. At block 1006, processor 208 determines whether the time difference between the current time and the oldest bump timestamp in the buffer is greater than a certain time period, referred to herein as a window length. The time length of the window length may be stored, for example, in memory 210 (fig. 2). If the time difference is not greater than the window length (i.e., all bump timestamps fall within the window length), at block 1008, the processor 208 determines whether the bump count is greater than or equal to the set threshold. The bump count is the number of bumps stored in the buffer, and thus the number of bumps that occur within the window length. The set threshold is a threshold number of bumps required to set the bump count flag 602C. If the bump count is not greater than or equal to the set threshold, control returns to block 1002 and the example process 1000 is repeated when the next output value from the filter acceleration data is received. If the bump count is greater than or equal to the set threshold, at block 1010, processor 208 sets bump count flag 602C. This indicates that a threshold number of bumps are present within the window length. When the next output value from the filter acceleration data is received, process 1000 is repeated at block 1002. Bump count flag 602C remains set until the bump count drops below the clear threshold, as described below.

If the time difference between the current time and the oldest bump timestamp is greater than the window length (determined at block 1008), then at block 1012, processor 208 removes the oldest bump from the buffer. Thus, any bumps that fall outside the length of the window are removed. As a result, only timestamps of bumps that fall within the window length remain in the buffer. At block 1014, processor 208 determines whether the bump count is less than or equal to the clear bump count threshold. The clear threshold is a threshold number of bumps required to clear bump count flag 602C. If the bump count is not less than or equal to the clearing threshold, control returns to block 1002 and process 1000 is repeated when the next output value from the filter acceleration data is received. If the bump count is less than or equal to the clear threshold, then at block 1016, processor 208 clears bump count flag 602C. This indicates that a threshold number of bumps are not present within the window length. Control returns to block 1002 and the process 1000 is repeated when the next output value from the filter acceleration data is received. The bump count flag 602C remains clear until the bump count again satisfies the set threshold.

In some examples, the set threshold is higher than the clear threshold. For example, the set threshold may be five bumps and the clear threshold may be two bumps. If processor 208 detects five bumps within the window length, processor 208 sets bump count flag 602C. If the bumps terminate, the bumps saved in the buffer are removed one by one as time passes. Once the number of bumps is less than or equal to two, processor 208 clears bump count flag 602C. This enables the bump count flag 602C to remain set until the number of bumps drops. In other examples, the set threshold and the clear threshold may be the same number of bumps.

Fig. 11 is a flow diagram of an example process 1100 implemented by the processor 208 at block 634 of fig. 6. Depending on the current state of the front suspension component 136, the processor 208 checks one or more of the flags 602 (e.g., the value of the flag 602) using a logic or process associated with the current state. Fig. 12, 13 and 14 are flowcharts of example processes for each suspension state, which are disclosed in further detail herein. The state or value of the flag 602 is stored in the memory 210. In some examples, the processor 208 sets the damper 204 to an open state when the front suspension component 136 is first activated or turned on. Over time, the processor 208 may switch the damper 204 between different states according to the different processes in fig. 12, 13, and 14.

At block 1102, the processor 208 determines the current state of the front suspension component 136. In some examples, the processor 208 saves an indication of the current suspension state in the memory 210 each time the suspension state changes. Thus, the processor 208 can determine the current suspension state by examining the current suspension state indicated in the memory 210. If the processor 208 determines that the front suspension component 136 is in an open state, at block 1104, the processor 208 checks one or more flags 602 using an open state process. An example of an open state process is disclosed in connection with fig. 12. This process may result in maintaining the front suspension component 136 in an open state or switching the front suspension component 136 to one of a pedal or lockout state (e.g., to a higher damping level).

If the processor 208 determines that the front suspension component 136 is in the pedal state, at block 1106, the processor 208 checks one or more flags 602 using the pedal state process. An example of a pedal state process is disclosed in connection with FIG. 13. This process may result in maintaining the front suspension component 136 in the pedal state or switching the front suspension component 136 to one of an open or lockout state (e.g., to a lower damping level or a higher damping level).

If the processor 208 determines that the front suspension component 136 is in the lockout condition, the processor 208 checks one or more flags 602 using the lockout condition process at block 1108. An example of a locked state process is disclosed in connection with FIG. 14. This process may result in maintaining the front suspension component 136 in a lockout state or switching the front suspension component 136 to one of an on or pedal state (e.g., to a lower damping level).

Thus, depending on the current suspension state, a different procedure is used to check one or more flags 602. For example, when the damper 204 is in the open state (low damping state), the processor 208 checks the flag using a first process, when the damper 204 is in the pedal state (intermediate damping state), the processor 208 checks the flag using a second process different from the first process, and when the damper 204 is in the lock state (high damping state), the processor 208 checks the flag using a third process different from the first process and the second process. The example process 1100 is repeated after the processor 208 checks the flag 602 using one of the open, pedal, or lock states. The example process 1100 may be repeated at the same frequency as the process 600 of fig. 6. One or more of the flags 602 may have changed, which may result in a change in the state of the front suspension component 136.

Fig. 12 is an exemplary open state process 1200 implemented by the processor 208 when the front suspension component 136 is in an open state. At block 1102 in fig. 11, exemplary process 1200 is performed by processor 208. As described in further detail below, the processor 208 checks the state or value of certain of the flags 602, and based on the state or value of the flags 602, the processor 208 determines whether to hold the front suspension component 136 in an open state or switch to one of a pedal state or a lockout state.

When the front suspension component 136 first switches to the open state, the processor 208 activates the hold time counter. The hold time counter counts down from a particular hold time. The hold time is the amount of time that the front suspension component 136 should remain in the open state after first switching to the open state. This prevents the front suspension member 136 from switching out of the open state too quickly. Furthermore, if the front suspension component 136 controls the rear suspension component 138, this prevents the rear suspension component 138 from switching out of the open state too quickly. For example, if the front wheel 104 strikes a bump and experiences vibrations from the bump, the front and rear suspension components 136, 138 may switch into and remain in their open state for at least the hold time so that the rear suspension component 138 may absorb vibrations as the rear wheel 106 (fig. 1) passes the bump. In some examples, the hold time is 1.5 seconds. In other examples, the hold time may be a greater or lesser time value. The hold time counter may be represented by a tick or time increment.

The example open state process 1200 begins at block 1202. At block 1202, the processor 208 checks whether the pedal short flag 602G is set. If the pedal short flag 602G is not set (i.e., pedal short flag 602G is cleared, indicating that pedaling has not occurred for a particular amount of time), the processor 208 determines at block 1204 whether the remaining hold time of the hold time counter is greater than zero. If the remaining hold time is greater than zero (indicating that the hold time has not been met), the processor 208 increments the hold time counter at block 1206. Thus, the front suspension member 136 is maintained in the open state. The example process 1200 then begins at block 1202. If the remaining hold time is not greater than zero (indicating that the hold time has been met), the front suspension components 136 remain in the open state and the example process 1200 begins repeating at block 1202. Therefore, if the front suspension member 136 is in the open state and the pedal short flag 602G is not set, the front suspension member 136 remains in the open state. Thus, if the front suspension members 136 are in the open state and the rider is not pedalling for at least a short amount of time, the front suspension members 136 remain in the open state. This is advantageous so that the front suspension member 136 can absorb any upcoming bumps or vibrations without sacrificing pedal power (since no pedaling occurs).

If the pedal short flag 602G is set (indicating that pedaling has occurred for a certain amount of time), the processor 208 checks at block 1208 if the free fall flag 602I is set. If the free fall flag 602I is set (indicating that the bicycle 100 is in free fall), the processor 208 resets the hold time counter at block 1210. Control proceeds to block 1204 and the example process 1200 is repeated beginning at block 1202. In this way, if the bicycle 100 is in a free fall (even if pedaling is occurring), the front suspension member 136 is maintained in the open position so that the front suspension member 136 can provide relatively high (e.g., maximum) shock absorption when the bicycle 100 is grounded. Further, the front suspension members 136 remain in the open state for at least a retention time after the free fall is detected, which prevents the front suspension members 136 from switching out of the open state too quickly (e.g., before the front suspension members 136 fully absorb the landing impact).

If the free fall flag 602I is not set (i.e., the free fall flag 602I is cleared, indicating that the bicycle 100 is not in free fall), the processor 208 checks at block 1212 if the large vibration flag 602B is set. If the large vibration flag 602B is set (indicating that at least a large vibration is being detected), the processor 208 resets the hold time counter at block 1210. Control proceeds to block 1204 and the example process 1200 is repeated beginning at block 1202. Thus, if the bicycle 100 is experiencing large vibrations (even if pedaling is occurring), the front suspension member 136 remains in an open state. Further, the front suspension component 136 remains in the open state for at least a holding time, which prevents the front suspension component 136 from switching out of the open state too quickly.

If the large vibration flag 602B is not set (i.e., the large vibration flag 602B is cleared, indicating that no large vibration is detected), the processor 208 checks at block 1214 if the large vibration terrain flag 602E is set. The large vibration terrain indicia 602E indicates whether a large amount of vibration has been experienced over a period of time. If the large vibration terrain flag 602E is set (indicating that the bicycle 100 is riding on substantially rough terrain), the processor 208 resets the hold time counter at block 1210. Control proceeds to block 1204 and then repeats the example process 1200 beginning at block 1202. Thus, if the bicycle 100 is riding on rough terrain (even if pedaling is occurring), the front suspension members 136 remain in the open state. The use of the large vibration terrain markings 602E helps to keep the front suspension components 136 in an open state even if the transient vibrations have terminated. Thus, if the bicycle 100 is riding on constant rough terrain causing large vibrations, but experiences a short time without the vibrations, the front suspension member 136 remains in the open state in anticipation of further large vibrations. Further, the front suspension component 136 remains in the open state for at least a holding time, which prevents the front suspension component 136 from switching out of the open state too quickly.

If the large vibration terrain flag 602E is not set (i.e., the large vibration terrain flag 602E is cleared, indicating that the bicycle 100 is not riding on rough terrain), the processor 208 checks whether the remaining hold time of the hold time counter is greater than zero at block 1214, which is the same as block 1204. If the remaining hold time is greater than zero, control proceeds to block 1206 and the processor 208 increments the hold time counter. The example process 1200 then begins at block 1202. Thus, if the rider is pedaling the bicycle 100, but the hold time threshold has not been met, the front suspension member 136 remains in the open state. As described above, this ensures that the front suspension component 136 remains in the open state for a sufficient amount of time to absorb the vibrations before potentially switching to another state.

If the remaining hold time is not greater than zero, at block 1218, the processor 208 checks whether the moderate vibration flag 602A is set. If the moderate vibration flag 602A is set (indicating that at least a moderate amount of vibration is being detected), the processor 208 sets the suspension state to the pedal state at block 1220. The processor 208 sets the suspension state to the pedal state by activating the motion controller 206 to move the valve 207 to a position corresponding to the pedal state (intermediate damping state). Thus, if the rider is pedaling the bicycle 100 and the bicycle 100 is experiencing moderate vibration, the processor 208 switches the front suspension member 136 to a pedal state, which is a more highly damped state than the open state. This is generally preferred for the open state when the bicycle 100 is pedaled. Once the front suspension component 136 is in the pedal state, the processor 208 checks one or more flags 602 using the pedal state process disclosed in connection with fig. 13. At block 1220, the processor 208 also resets a hold time counter used during the pedal state. The hold time counter may be used to prevent the front suspension component 136 from switching out of the pedal state too quickly (see, e.g., block 1318 of fig. 13).

If the medium vibration flag 602A is not set (i.e., medium vibration flag 602A is clear, indicating that at least medium vibration is not detected), the processor checks whether the medium vibration terrain flag 602D is set at block 1221. If the moderate vibration terrain flag 602D is set (indicating that the bicycle 100 is riding on terrain causing at least a moderate amount of vibration), then at block 1220 the processor 208 sets the suspension state to the pedal state and resets the hold time counter for the pedal state process. Thus, if the rider is pedaling the bicycle 100 and the bicycle 100 experiences a moderate amount of vibration over a period of time (even if not currently experiencing vibration), the processor 208 switches the front suspension member 136 to the pedal state.

If the medium vibration terrain flag 602D is not set (i.e., medium vibration terrain flag 602D is cleared, indicating low or no vibration for a period of time), the processor 208 checks at block 1222 whether the bump count flag 602C is set. If the bump count flag 602C is set (indicating that a threshold number of bumps have occurred within a period of time), the processor 208 sets the suspension state to the pedal state and resets the hold time for the pedal state process at block 1220. Thus, if the rider is pedaling the bicycle 100, and the bicycle 100 has experienced a threshold number of bumps over a period of time (even if not currently experiencing vibration), the processor 208 switches the front suspension components 136 to the pedal state. The bump count flag 602C may consider bumps or vibrations that may not have triggered the vibrating terrain flag 602D. For example, if riding relatively slowly on a continuous bump, the threshold in the vibration detection process of medium vibration terrain mark 602D may not be met, and thus medium vibration terrain mark 602D is not set. However, it may still be desirable to switch the front suspension member 136 to the pedal state (rather than the lockout state) to absorb some of the vibration. The bump count process detects the presence of these bumps, and a bump count flag 602C may be set to enable the front suspension component 136 to switch to the pedal state.

If the bump count flag 602C is not set (i.e., bump count flag 602C is cleared), the processor 208 checks whether the pitch status flag 602K indicates a steep rise and/or the curve flag 602J is set at block 1224. As described above, in some examples, the pitch status flag 602K may be set to one of a plurality of pitch status values. One of these values (e.g., the pitch state value seven) indicates a steep rise. If the processor 208 determines that the pitch state flag 602K is at such a value, and/or the curve flag 602J is set (indicating that a curve has occurred), the processor 208 sets the suspension state to the pedal state and resets the hold time at block 1220. Thus, when stepping up a steep incline or around a curve, the front suspension member 136 switches to a pedal state that is generally preferred to the open state because the front suspension member 136 provides some support when stepping. Accordingly, the processor 208 determines the pitch angle of the bicycle 100 (e.g., at blocks 630 and/or 632 of fig. 6) and varies the damping level of the damper 204 of the front suspension member 136 based on the pitch angle of the bicycle 100.

If the pitch state does not indicate a steep rise and the curve flag 602J is not set (i.e., the curve flag 602J is cleared, indicating that no curve is occurring), the processor 208 sets the suspension state to the locked state at block 1226. The processor 208 may set the suspension state to the lockout state by activating the motion controller 206 to move the valve 207 to a position corresponding to the lockout state (high damping state). Thus, if the bicycle 100 is riding on relatively level and/or smooth ground with little or no vibration for a period of time, the front suspension member 136 is switched to the locked state. This is generally preferred as the locked state enables the most efficient pedaling. Thus, the processor 208 determines that the rider is pedaling (e.g., at block 620 of fig. 6), and changes the damping level of the damper 204 of the front suspension member 136 based on the determination that the rider is pedaling the bicycle 100. Once the front suspension component 136 is in the lockout state, the processor 208 checks one or more flags 602 using the lockout state process disclosed in connection with fig. 14.

As can be appreciated from fig. 12, some of the example flags 602 may be considered more important to the process 1200 than other ones of the flags 602. Depending on the state or value of some of the flags 602, others of the flags 602 are not checked. For example, if the front suspension component 136 is in an on state and the pedal short flag 602G is not set (i.e., not depressed for at least a short period of time), then the other flags 602 are not checked. Instead, the front suspension member 136 remains in the open state and the example process 1200 repeats. In other examples, flags 602 may be checked in another order.

Fig. 13 is an example pedal state process 1300 implemented by the processor 208 when the front suspension component 136 is in a pedal state (intermediate damping state). The example process 1300 is performed by the processor 208 at block 1104 in fig. 11. As described in further detail below, the processor 208 checks the state or value of certain of the flags 602, and based on the state or value of the flags 602, the processor 208 determines whether to hold the front suspension component 136 in an open state or switch to one of a pedal state or a lockout state.

When the front suspension component 136 is first switched to the pedal state, the processor 208 activates the hold time counter. The hold time counter counts down from a particular hold time threshold. The hold time threshold is the amount of time that front suspension member 136 should remain in the pedal state. This prevents the front suspension member 136 from switching out of the pedal state too quickly. In the example process described below, the hold time threshold is applicable only when switching from the pedal state to the lock state. In other words, the front suspension component 136 remains in the pedal state for at least the hold time threshold before switching to the lockout state. However, the front suspension member 136 can be immediately switched from the pedal state to the open state. In other examples, the hold time threshold may also be adapted to switch from the pedal state to the locked state. In some examples, the hold time threshold is 1.5 seconds. In other examples, the hold time threshold may be a greater or lesser time value. The hold time counter may be represented by a tick or time increment.

At block 1302, processor 208 checks whether pedal present flag 602F and pedal short flag 602G are cleared. This indicates that no pedaling is occurring or that pedaling has occurred consecutively for a certain amount of time (e.g., the setup time from fig. 8). If both the pedal present flag 602F and the pedal short flag 602G are cleared, the processor 208 sets the suspension state to an on state at block 1304. The processor 208 sets the suspension state to an open state by activating the motion controller 206 to move the valve 207 to a position corresponding to the open state (low damping state). Thus, if the rider is not currently pedalling and has consistently pedalling for a certain amount of time, the front suspension members 136 switch back to the open state. This enables the front suspension component 136 to absorb any upcoming shock or vibration. Because the rider is not pedaling, switching to the on state has a significant impact on the rider. Once the front suspension component 136 is in the open state, the processor 208 checks one or more flags 602 using the open state process 1200 disclosed in connection with fig. 12. At block 1304, the processor 208 also resets the hold time for the open state process, which prevents the front suspension component 136 from switching out of the open state too quickly.

If the pedal now flag 602F and pedal short flag 602G are not cleared (e.g., one or both of the flags 602F, 602G are set), the processor 208 checks at block 1306 whether the free fall flag 602I is set. If the free fall flag 602I is set (indicating that the bicycle 100 is in free fall), the processor 208 sets the suspension state to the on state and resets the hold time for the on state process at block 1304. Thus, if the bicycle 100 is in free fall (even if pedaling is occurring or has recently occurred), the front suspension members 136 are switched to an open state to provide higher (e.g., maximum) shock absorption when the bicycle 100 is grounded.

If the free fall flag 602I is not set (i.e., the free fall flag 602I is cleared, indicating that the bicycle 100 is not in free fall), the processor 208 checks whether the large vibration flag 602B is set at block 1308. If the large vibration flag 602B is set (indicating that a large vibration is being detected), the processor 208 sets the suspension state to the open state and resets the hold time for the open state process at block 1304. Thus, if the bicycle 100 is experiencing high vibration (even if pedaling is occurring), the front suspension member 136 is switched to the open state to provide higher (e.g., maximum) shock absorption.

If the large vibration flag 602B is not set (i.e., the large vibration flag 602B is cleared, indicating that no large vibration is detected), the processor 208 checks whether the medium vibration flag 602A is set at block 1310. If the medium vibration flag 602A is set (indicating that medium vibration is being detected), the processor 208 resets the hold time at block 1312. Control proceeds to block 1302 and the example process 1300 is repeated. Therefore, if moderate vibration is detected at the time of stepping or within a certain amount of stepping time, the front suspension member 136 is kept in the pedal state. In the step state, the front suspension member 136 provides some cushioning, but is more effective for stepping than in the open state.

If the medium vibration flag 602A is not set (i.e., medium vibration flag 602A is clear, indicating that at least medium vibration is not detected), the processor 208 checks whether the medium vibration terrain flag 602D is set at block 1313. If the medium vibration terrain flag 602D is set (indicating that the bicycle 100 is riding on terrain causing medium vibration), the processor 208 resets the hold time at block 1312. Control proceeds to block 1302 and the process 1300 is repeated. Thus, if the bicycle 100 is riding on terrain causing a moderate amount of vibration while the rider is or has been pedaling for a certain amount of time, the front suspension member 136 remains in the pedal state.

If the medium vibration terrain flag 602D is not set (i.e., medium vibration terrain flag 602D is cleared, indicating low or no vibration for a period of time), the processor 208 checks whether the bump count flag 602C is set at block 1314. If the bump count flag 602C is set (indicating that a threshold number of bumps have occurred within a certain time period), the processor 208 resets the hold time at block 1312. Control proceeds to block 1302 and the process 1300 is repeated. Thus, if the rider is or has been pedaling for a certain amount of time, and the bicycle 100 has experienced a threshold number of bumps over a period of time, the front suspension member 136 remains in the pedal state.

If the bump count flag 602C is not set (i.e., the bump count flag 602C is cleared), the processor 208 checks whether the pitch state flag 602K indicates a steep rise and/or the curve flag 602J is set at block 1316. As described above, in some examples, the pitch status flag 602K may be set to one of a plurality of values. One of these values (e.g., the pitch state value seven) indicates a steep rise. If the processor 208 determines that the pitch state flag 602K is at such a value, and/or the curve flag 602J is set, the processor 208 resets the hold time at block 1312. Control proceeds to block 1302 and the process 1300 is repeated. Thus, when stepping up a steep incline or around a curve, the front suspension member 136 remains in the pedal state, which is generally preferred over the open state because the pedal state enables more efficient stepping under such conditions.

If the pitch state does not indicate a steep rise and the curve flag 602J is not set (i.e., the curve flag 602J is cleared, indicating that no curve is occurring), the processor 208 checks whether the remaining hold time is greater than zero at block 1318. If the remaining hold time is greater than zero, control proceeds to block 1320 and the processor 208 increments the hold time counter by decreasing the hold time counter by one tick or time increment. The example process 1300 then begins at block 1302. Thus, if the rider is pedaling the bicycle 100 and little or no vibration is detected, but the hold time threshold has not been met, the front suspension member 136 remains in the pedal state. This ensures that the front suspension component 136 remains in the pedal state for a sufficient amount of time to absorb the vibration before potentially switching to the lockout state.

If the remaining hold time is not greater than zero, at block 1322, the processor 208 checks whether the pedal present flag 602F and the pedal short flag 602G are set. If the present pedal flag 602F and pedal short flag 602G are set (indicating that the rider is pedaling and has been pedaling for a certain amount of time), the processor 208 sets the suspension state to the lockout state at block 1324. The processor 208 may set the suspension state to the lockout state by activating the motion controller 206 to move the valve 207 to a position corresponding to the lockout state (high damping state). Thus, if the rider is pedaling the bicycle 100 and has pedaled the bicycle 100 for a certain amount of time, and the bicycle 100 is riding on a relatively level ground with little or no vibration for a period of time, the front suspension member 136 is switched to the locked state. This is generally preferred as the locked state enables the most efficient pedaling. Once the suspension component is in the locked state, the processor 208 checks one or more flags 602 using a different process disclosed in connection with fig. 14. If both pedal now flag 602F and pedal short flag 602G are not set, control proceeds to block 1302 and example process 1300 is repeated. Thus, the front suspension member 136 is maintained in the pedal state.

As can be appreciated from fig. 13, some of the example flags 602 may be considered more important to the process 1300 than other ones of the flags 602. Depending on the state or value of some of the flags 602, others of the flags 602 are not checked. For example, if the stepping is not occurring and is not occurring within a short time, the front suspension member 136 is immediately switched to the on state without checking the remaining flag 602. In other examples, flags 602 may be checked in another order.

FIG. 14 is an example lockout state process 1400 implemented by the processor 208 when the front suspension component 136 is in a lockout state (high damping state). In the locked state, front suspension component 136 provides a minimal amount of shock absorption. However, the locked state is optimal for stepping. At block 1106 in fig. 11, the example process 1400 is performed by the processor 208. As described in further detail below, the processor 208 checks the state or value of certain of the flags 602, and based on the state or value of the flags 602, the processor 208 determines whether to hold the front suspension component 136 in the locked state or switch to one of the open state or the pedal state.

At block 1402, the processor 208 checks whether the pedal short flag 602G is set. If the pedal short flag 602G is not set (i.e., the pedal short flag is cleared, indicating that pedaling has not occurred for a certain amount of time), the processor 208 checks at block 1404 whether the front suspension component 136 is in road mode. When the pedal now flag 602F is set (described in more detail at block 1424 in process 1400), the front suspension component 136 is set to road mode. When the front suspension member 136 is in the road mode, the processor 208 prevents the front suspension member 136 from switching out of the lockout state if a short tread interrupt occurs. For example, assume that the rider has pedaled the bicycle 100 for a longer period of time and the front suspension member 136 is in a locked state. If the rider momentarily stops pedaling (e.g., the rider reaches the stop flag), front suspension member 136 does not immediately switch out of the locked state. In this way, the front suspension member 136 can be maintained in a locked state, which is preferable for continued pedaling of the bicycle 100.

If the front suspension component 136 is not in road mode, at block 1406, the processor 208 sets the suspension state to the open state and resets the hold time for the open state process. The processor 208 sets the suspension state to the open state by activating the motion controller 206 to switch the damper 204 to the open state (low damping state). Thus, if the rider has not consistently pedaled for a certain amount of time and the front suspension member 136 is not in road mode, the processor 208 switches the front suspension member 136 to the open state. Once the front suspension component 136 is in the open state, the processor 208 checks one or more flags 602 using the open state process 1200 disclosed in connection with fig. 12.

If the pedal short flag 602G is set (checked at block 1402) or the front suspension component 136 is in road mode (checked at block 1404), the processor 208 checks if the free fall flag 602I is set at block 1408. If the free fall flag 602I is set (indicating that the bicycle 100 is in free fall), the processor 208 sets the suspension state to the on state and resets the hold time for the on state process at block 1406. Thus, if the bicycle 100 is in free fall (even if pedaling is occurring), the front suspension member 136 is switched to an open state to provide higher (e.g., maximum) shock absorption when the bicycle 100 is grounded.

If the free fall flag 602I is not set (i.e., the free fall flag 602I is cleared, indicating that the bicycle 100 is not in free fall), the processor 208 checks whether the large vibration flag 602B is set at block 1410. If the large vibration flag 602B is set (indicating that large vibrations are being detected), the processor 208 sets the suspension state to the open state and resets the hold time for the open state process at block 1406. Thus, if the bicycle 100 is experiencing high vibration (even if pedaling is occurring), the front suspension member 136 is switched to the open state to provide higher (e.g., maximum) shock absorption.

If the large vibration flag 602B is not set (i.e., the large vibration flag 602B is cleared, indicating that no large vibration is detected), the processor 208 checks if the medium vibration flag 602A is set at block 1412. If the medium vibration flag 602A is set (indicating that at least a medium amount of vibration is being detected), the processor 208 checks at block 1414 whether the pedal short flag 602G is set. If the pedal short flag 602G is not set (i.e., the pedal short flag 602G is cleared, indicating that no pedaling has occurred within a certain amount of time), at block 1406, the processor 208 sets the suspension state to the on state and resets the hold time for the on state process. Thus, if the bicycle 100 is experiencing moderate vibration and no pedaling occurs for a certain amount of time, the processor 208 switches the front suspension member 136 to the open state to provide higher (e.g., maximum) shock absorption.

If the pedal short flag 602G is set (determined at block 1414), at block 1416, the processor 208 sets the suspension state to the pedal state and resets the hold time for the pedal state process. The processor 208 sets the suspension state to the pedal state by activating the motion controller 206 to switch the damper 204 to the pedal state (intermediate damping state). Thus, if the rider is pedaling the bicycle 100 and the bicycle experiences moderate vibration, the processor 208 switches the front suspension members 136 to the pedal state. This enables the front suspension member 136 to absorb some of the vibration, but is more effective for pedaling than in the open state. Once the front suspension component 136 is in the pedal state, the processor 208 checks one or more flags 602 using the example pedal state process 1300 disclosed in connection with fig. 13.

If the moderate vibration flag 602A is not set (determined at block 1412), the processor 208 checks if the bump count flag 602C is set at block 1418. If the bump count flag 602C is set (indicating that a threshold number of bumps have occurred within a period of time), control proceeds to block 1414. Depending on whether the pedal short flag 602G is set or cleared, the processor 208 switches the front suspension component 136 to a pedal state or an on state.

If the bump count flag 602C is not set (determined at block 1418), at block 1420 the processor 208 checks whether the pitch status flag 602K indicates a steep rise and/or the curve flag 602J is set. As described above, in some examples, the pitch status flag 602K may be set to one of a plurality of values. One of these values (e.g., the pitch state value seven) indicates a steep rise. If the processor 208 determines that the pitch state flag 602K is at such a value, and/or the curve flag 602J is set (indicating that a curve has occurred), the processor 208 sets the suspension state to the pedal state and resets the hold time for the pedal state process at block 1416. Thus, when stepping on a steep incline or around a curve, the front suspension member 136 switches to the pedal state. Under these conditions, the pedal state is generally preferred over the locked state, as it allows some bounce (bobbing) motion from the tread to be absorbed, which helps to keep the tire in contact with the ground.

If the pitch state does not indicate a steep rise and the curve flag 602J is not set (i.e., the curve flag 602J is cleared, indicating that no curve is occurring), the processor 208 checks at block 1422 whether the pedal length flag 602H is set. If the pedal long flag 602H is not set (indicating that a pedaling did not occur consistently over a longer period of time), control proceeds to block 1402 and the example process 14 is repeated. If the pedal long flag 602H is set (indicating that the pedaling has occurred consistently over a longer amount of time), the processor 208 sets the front suspension component 136 to the road mode at block 1424. The example process 1400 is then repeated. As described above, at least some of the pedal sensor data is ignored when the front suspension component 136 is in road mode. Thus, if the rider has stepped on for a long period of time, but the rider stops stepping for a short period of time, the front suspension member 136 does not immediately switch out of the locked state. Instead, the front suspension member 136 may be maintained in a locked state.

As can be appreciated from fig. 14, some of the example flags 602 may be considered more important to the process 1400 than other ones of the flags 602. Depending on the state or value of some of the flags 602, others of the flags 602 are not checked. For example, if the free fall flag 602I or the large vibration flag 602B is set, the other flags are not checked. Instead, the front suspension member 136 immediately switches to the open state to provide higher (e.g., maximum) shock absorption.

Fig. 15 is a flow diagram of an example process 1500 implemented by the processor 208 for updating the thresholds (for blocks 608, 610, 614, 616 in fig. 6) and the tread hysteresis process 800 (for blocks 622, 624 in fig. 6) used in the vibration detection process 700. At block 636 in fig. 6, the example process 1500 is performed by the processor 208. Referring briefly to fig. 6, block 636 receives the current suspension state from block 634, the pitch state from pitch state flag 602K, and the trend pitch state from trend pitch state flag 602L. The processor 208 uses these parameters to adjust thresholds in the vibration detection process 700 and/or the pedal hysteresis process 800, as described below.

At block 1502, the processor 208 determines a vibration dynamics deviation value based on the current suspension state. In some examples, the vibration dynamics deviation values are stored in a table in memory 210. For example, the table may be a 3 × 4 table that includes vibration dynamics deviation values for each of the vibration detection processes at blocks 608, 610, 614, 616 for the open state, the pedal state, and the locked state. Based on the current suspension state, the processor 208 identifies corresponding vibration dynamics deviation values to be used in the vibration detection process at blocks 608, 610, 614, 616.

At block 1504, the processor 208 determines a vibration assist deviation value based on the pitch state (from the pitch state flag 602K). In some examples, the vibration assist offset value is stored in a table in memory 210. The table may include a vibration assisted bias value for each of the pitch state based vibration detection processes at blocks 608, 610, 614, 616. In some examples, the vibration assist deviation value may be based on the trend pitch state (from the trend pitch state flag 602L) in addition to or instead of the pitch state.

At block 1506, the processor 208 updates the set and clear thresholds in the vibration detection process based on the vibration dynamics deviation value and the vibration assist deviation value. The vibration dynamics deviation value and the vibration assist deviation value may be positive or negative values or percentages that increase or decrease the base threshold to determine the set and clear thresholds. For example, the vibrating media detection process at block 608 utilizes a set threshold and a clear threshold. The set threshold is calculated using the base set threshold and then the vibration dynamics deviation value and the vibration assist deviation value are added or subtracted. Thus, the vibration dynamics deviation value and the vibration assist deviation value increase or decrease the value of the basic setting threshold. Similarly, the base clearing threshold, the vibration dynamics deviation value, and the vibration assist deviation value are used to calculate the clearing threshold. This is similarly performed for the corresponding set and clear threshold blocks 610, 614, 616. Thus, the set threshold and the clear threshold dynamically change each time the suspension state changes and/or the pitch state (i.e., pitch angle) changes. Thus, the current state of the front suspension component 136 and the pitch state of the bicycle 100 affect the results of the vibration detection process that occurs at blocks 608, 610, 614, 616. This helps to take into account the effect of suspension and pitch conditions on the vibration detection process and can help to bias the suspension conditions to a more desirable setting. For example, bumps and vibrations are typically sensed at a slower speed when climbing rock terrain because the bicycle 100 is moving at a slower speed. Thus, the vibration assist bias value may be a negative value to help reduce the set threshold, which enables the suspension state to move to the open state more quickly.

At block 1508, the processor 208 determines a pedal set time offset value based on the pitch state (from the pitch state flag 602K). In some examples, the pedal set time offset value is stored in a table in memory 210. For example, the table may be a 2 × 7 table that includes pedal set time offset values for each pedal detection process at blocks 622, 624 for each of the seven pitch states. Based on the pitch state, the processor 208 identifies a pedal set time offset value to be used in the pedal detection process at blocks 622, 624. The pedal set time offset value may be a positive or negative value or percentage.

At block 1510, the processor 208 updates the set time in the pedal hysteresis process at blocks 622, 624 based on the pedal set time offset value. For example, the pedal hysteresis process at block 622 for pedal short flag 602G utilizes a set time. The setup time is calculated using the base setup time and then the pedal setup time offset value is added or subtracted to increase or decrease the setup time. At block 624, the calculation is similarly performed for the pedal detection process.

At block 1512, processor 208 determines a pedal idle time offset value based on the pitch state (from pitch state flag 602K). In some examples, the pedal idle time offset value is stored in a table in memory 210. For example, the table may be a 2 × 7 table that includes pedal idle time offset values for each pedal detection process at blocks 622, 624 for each of the seven pitch states. Based on the pitch state, the processor 208 identifies a pedal idle time offset value to be used in the pedal detection process at blocks 622, 624. The pedal idle time offset value may be a positive or negative value or percentage.

At block 1514, the processor 208 updates the idle time in the pedal detection process at blocks 622, 624 based on the pedal idle time offset value. For example, the pedal detection process at block 622 for pedal short flag 602G utilizes the idle time. The idle time is increased or decreased by calculating the idle time using the base idle time and then adding or subtracting the pedal idle time offset value. At block 624, the calculation is similarly performed for the pedal detection process. Therefore, the set time and the idle time dynamically change every time the pedal state (i.e., the pitch angle) changes. Thus, the pitch of the bicycle 100 affects the results of the pedal short process and the pedal long process that occur at blocks 622, 624. This helps to deflect the front suspension member 136 to certain suspension states based on the pitch of the bicycle 100.

In some examples, the user or rider may provide input (e.g., via the user interface 218 (fig. 2)) that affects the decision of the front suspension component 136 to remain in the suspension state or to switch to another suspension state. For example, if the rider prefers a stiffer suspension, the rider may want the front suspension components 136 to be placed in the lockout or pedal state more frequently. Conversely, if the rider prefers a softer suspension, the rider may want the front suspension component 136 to be set to the on or pedal state more frequently. In some examples, the rider may provide the input by selecting a deviation setting from a plurality of deviation settings. Each of the deflection settings may influence the decision process to deflect the front suspension component 136 into one or more of the suspension states. In some examples, the rider may select the offset setting by pushing a button on the front suspension component 136, for example. In one example, front suspension member 136 has five offset settings referred to as-2, -1, 0, +1, and + 2. The-2 offset setting may correspond to a setting favorable to the open state (and thus, a softer ride), the 0 offset setting may be a neutral setting, and the +2 offset setting may be a setting favorable to the locked state (and thus, a harder ride). The rider may be able to adjust the offset setting up or down based on the rider's preferred riding style. In other examples, more or fewer offset settings may be provided.

In some examples, each deviation setting represents a set of thresholds. As disclosed above, the vibration detection process at blocks 608, 610, 614, 616 utilizes the base threshold to calculate the set and clear thresholds. Similarly, the pedal hysteresis process at blocks 622, 624 utilizes the base set time and the purge time to calculate the set time and the purge time. In some examples, each of the deviation settings includes a set of values for a base threshold for the vibration detection process and a base setting and clearance time for the pedal hysteresis process. The base threshold and base setting and clearing time may be the same or different for different bias settings. Based on the deviation setting selected by the user, a corresponding set of thresholds is applied to the vibration detection process and the pedal hysteresis process, which affects the determination process for setting the front suspension member 136 in a certain state.

In some examples, different bias settings may change the decision process or logic, such as processes 1200, 1300, 1400 disclosed in connection with fig. 12, 13, and 14, in addition to or instead of changing the threshold. For example, certain deviation settings may remove certain flags from a process, add flags to a process, and/or rearrange the order in which flags are checked.

While the example flow diagrams in fig. 6-15 are described in connection with the front suspension component 136, it should be understood that the same processes disclosed in fig. 6-15 may be similarly implemented by a processor in the rear suspension component 138 for affecting the state of the rear suspension component 138. Thus, in some examples, the rear suspension components 138 operate independently to analyze sensor data and select a suspension state of the rear suspension components 138 based on the sensor data. In some examples, this results in the rear suspension component 138 being set to the same suspension state as the front suspension component 136. In other examples, the rear suspension component 138 may implement a decision process that results in different states of the rear suspension component 138 than the front suspension component 136.

In some examples, the front suspension component 136 controls the state of the rear suspension component 138. For example, the front suspension component 136 may determine a desired suspension state of the front and rear suspension components 136, 138, and may instruct the rear suspension component 138 to change to an appropriate state. In some examples, the rear suspension component 138 is always set in the same state as the front suspension component 136. Thus, if the front suspension component 136 is switched to a particular suspension state, the front suspension component 136 sends a command to the rear suspension component 138 to switch to the same state. In other examples, the front suspension components 136 may implement a process that may result in different states of the front and rear suspension components 136, 138. For example, the front suspension members 136 may determine to hold the front suspension members 136 in an open state, but to change the rear suspension members to a pedal state. In such an example, the front suspension member 136 sends a command to the rear suspension member 138 to switch to the pedal state. Instead, the rear suspension component 138 may control the front suspension component 136. In other examples, the processes disclosed herein may be performed in another device separate from the front and rear suspension components 136, 138, and may send commands to the front and rear suspension components 136, 138 accordingly.

As disclosed above in connection with fig. 6, the processor 208 may use certain parameters, such as vibration, pedaling, bump count, free fall, cornering, and pitch, to determine whether to adjust the suspension state. In addition to or instead of these parameters, the example process 600 may utilize one or more other parameters to decide whether to adjust the suspension state. The following are other example parameters that may be used in combination with other parameters to set some of the flags 602 of FIG. 6 and/or to set their own flags.

(1) In some examples, the speed and/or duration may be used to determine whether to adjust the suspension state. The speed may be measured via wheel rotational speed (e.g., from a wheel speed sensor), driveline speed and gear ratio, Global Positioning System (GPS) sensors, and/or other means. In some examples, a higher speed may adjust the damper state to a preset setting of the open state or a level less than the open state to improve suspension performance. Duration is a time measurement of velocity within a range that can also adjust the damper state.

(2) In some examples, the gear ratio of the bicycle 100 can be used to determine whether to adjust the damper state. The gear ratio can be measured by the position of the chain 122 (FIG. 1), the known number of gear teeth at each position, and/or the position of the derailleur itself (e.g., the rear gear changing device 134 (FIG. 1)). For example, the rear gear changing device 134 may be electronic and may be used to automatically change gears. The current gear state may be provided by the rear gear change device 134. The individual gear settings and their times in these settings can adjust the damper states to improve suspension performance.

(3) In some examples, differential wheel speeds may be used to determine whether to adjust damper states. Variations in pedaling and braking traction may produce different wheel speeds indicative of tire slip or slippage. In some examples, the front wheels 104 and the rear wheels 106 may have independent rotational speed sensors to determine the differential wheel speed. Differential wheel speeds or the same wheel speed can adjust the damper state to improve suspension performance under these conditions.

(4) In some examples, the seatpost height may be used to determine whether to adjust the damper state. Typically, the rider sets the seatpost height based on the upcoming path condition, and the height may be measured by a position scale sensor. The seatpost height can adjust the damper state to improve suspension performance. For example, a low seat height may indicate a desire for an open or near open damper state.

(5) In some examples, the braking force and duration may be used to determine whether to adjust the damper state. The braking force may be determined by brake component strain measurements, brake component torque measurements, hydraulic pressure measurements in the caliper, accelerometers, and the like. The braking force may be measured on each individual wheel on the bicycle 100. The bicycle 100 may have more than one brake with different force measurements applied to each wheel. The braking force may adjust the front suspension component 136 to a locked condition or less than a locked condition while adjusting the rear suspension component 138 to an open condition or less than an open condition for optimal suspension performance.

(6) In some examples, the rider driving force may be used to determine whether to adjust the damper state. The rider driving force is a pedal force input by the rider. Rider propulsion may be measured by driveline component strain or force sensors, power meters, and accelerometers or center of gravity shift. The rider actuation force may adjust the damper state to a medium state (e.g., pedal state), or more or less, to provide optimal suspension performance and pedaling efficiency.

(7) In some examples, suspension design kinematics (such as changing the leverage ratio) may be used to determine whether to adjust the damper state. Suspension chassis designs may have a leverage ratio, such as the ratio of wheel displacement to corresponding impact displacement, that varies or remains constant over its range of suspension travel. This ratio affects the damper piston displacement, which can have the adjustment settings needed for optimal suspension performance. Suspension component position sensors and suspension ratio information can provide damper piston motion information. This information can adjust the damper state. For example, for optimal suspension performance, a 2:1 wheel displacement to impact displacement ratio may adjust the damper state to a more open state than a 3:1 ratio.

(8) In some examples, suspension pressure travel may be used to determine whether to adjust damper state. Different riders may use different resting air pressure settings in the suspension components. Furthermore, different path conditions may have different ranges of air pressure in use. Pressure sensors may be used in suspension components, and measurements from these sensors may be used to adjust damper conditions for optimal suspension performance.

(9) In some examples, tire pressure may be used to determine whether to adjust damper status. The bicycle 100 may include a tire pressure sensor on the valve stem. Different users may use different tire pressures, thereby affecting suspension performance. Tire pressure sensor measurements can be used to adjust damper conditions for optimum performance.

(10) In some examples, the damper fluid temperature may be used to determine whether to adjust the damper state. Damper fluid temperature may vary due to operating conditions and ambient air temperature, thereby affecting suspension performance. A fluid temperature sensor, such as a thermocouple, may provide a temperature value that may be used to adjust the damper state for optimal performance.

(11) In some examples, the movement of the damper piston may be used to determine whether to adjust the damper state. In some examples, the front damper piston may move independently of the rear damper piston under various path conditions. The damper may have a position, velocity or acceleration sensor to measure piston movement. From these sensors, different combinations of front to rear damper piston motion can be used to adjust the damper state for optimal suspension performance.

(12) In some examples, the front and rear suspension heights may be used to determine whether to adjust the damper state. The independent front and rear suspension heights are set by the user. Furthermore, the average suspension height may vary over different path conditions or slopes. These suspension heights can be measured with suspension component position sensors that can be used to adjust the damper state for optimal suspension performance.

The terms "comprising" and "including" (and all forms and tenses thereof) are used herein as open-ended terms. Thus, whenever a claim recitations in any form, such as "comprising" or "including" (e.g., including, comprising, having, etc.) as a prefix, or within any kind of claim recitation, it should be understood that additional elements, terms, etc. may be present without departing from the scope of the corresponding claim or recitation. As used herein, the phrase "at least" when used as a transitional term, such as in the preamble of the claims, is open-ended in the same manner that the terms "comprising" and "including" are open-ended. When used, for example, in a form such as A, B and/or C, the term "and/or" refers to any combination or subset of A, B, C, such as (1) a alone, (2) B alone, (3) C alone, (4) a and B, (5) a and C, (6) B and C, and (7) a and B and C. As used herein in the context of describing structures, components, items, objects, and/or things, the phrase "at least one of a and B" is intended to refer to embodiments that include any of (1) at least one a, (2) at least one B, and (3) at least one a and at least one B. Similarly, as used herein in the context of describing structures, components, items, objects, and/or things, the phrase "at least one of a or B" is intended to refer to implementations that include any of (1) at least one a, (2) at least one B, and (3) at least one a and at least one B. As used herein in the context of describing the performance or execution of processes, instructions, actions, activities, and/or steps, the phrase "at least one of a and B" is intended to refer to implementations that include any of (1) at least one a, (2) at least one B, and (3) at least one a and at least one B. Similarly, as used herein in the context of describing execution or performance of processes, instructions, actions, activities, and/or steps, the phrase "at least one of a or B" is intended to refer to implementations including any of (1) at least one a, (2) at least one B, and (3) at least one a and at least one B.

As used herein, the singular forms (e.g., "a," "second," etc.) do not exclude a plurality. As used herein, the term "a" entity refers to one or more of that entity. The terms "a", "an", "one or more" and "at least one" are used interchangeably herein. Furthermore, although individually listed, a plurality of means, elements or method acts may be implemented by e.g. a single unit or processor. Additionally, although individual features may be included in different examples or claims, these may be combined, and the inclusion in different examples or claims does not imply that a combination of features is not feasible and/or advantageous.

The illustrations of the embodiments described herein are intended to provide a general understanding of the structure of the various embodiments. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatus and systems that utilize the structures or methods described herein. Many other embodiments may be apparent to those of skill in the art upon reading this disclosure. Other embodiments may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. Additionally, the illustrations are merely representational and may not be drawn to scale. Certain proportions within the illustrations may be exaggerated, while other proportions may be minimized. The present disclosure and figures are, therefore, to be regarded as illustrative rather than restrictive.

While this specification contains many specifics, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular embodiments of the invention. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Although specific embodiments have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all subsequent adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the description.

The abstract of the present disclosure is provided to comply with 37c.f.r. § 1.72(b), and is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Furthermore, in the foregoing detailed description, various features may be grouped together or described in a single embodiment for the purpose of streamlining the disclosure. This disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter may be directed to less than all of the features of any of the disclosed embodiments. Thus the following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separately claimed subject matter.

It is intended that the foregoing detailed description be regarded as illustrative rather than limiting, and that it be understood that it is the following claims, including all equivalents, that are intended to define the scope of this invention. The claims should not be read as limited to the described order or elements unless stated to that effect. Therefore, all embodiments that come within the scope and spirit of the following claims and equivalents thereto are claimed as the invention.

53页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多用途驱动装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!