Skip to content

The normal ride mode

stancecoke edited this page Jun 3, 2026 · 22 revisions

Summary

If you are not satisfied with the default setting, you can tune your system by adjusting many parameters.

Settings in the controller tab:

  1. define a maximum battery current according to the specification of your battery. This limit is not influenced by any other setting.
  2. define a maximum motor current, this defines the maximum torque, take care of your gears! This value is scaled by various parameters during riding.

Settings in the Assist (Full) tab:

  1. set a global multiplier for the assist strenght, my favorite setting is 20. This is a factor, not a percentage. It summarizes all system constants like the torquesensor sensitivity, the motor constant ...
  2. set a percentage of the maximum motor current for each assist level
  3. set a percentage of the speed limit for each assist level
  4. set the speed dependent assist ratio for each assist level in the torque table (Parameter Block 2)

For further fine tuning, read the following carefully

Basics

The basic principle of the firmware is the relationship
Motor power = assistance factor * human power

Mechanical power is speed * torque

For the motor, this means:
Motor power = rotor speed * motor torque

For human power, this means:
Human power = cadence * torque at the crank

So we can write:
Rotor speed * motor torque = assistance factor * cadence * torque at the crank

With a middrive motor, the rotor speed is always in a constant ratio to the cadence due to the internal gear
Rotor speed = gear ratio * cadence

Therefore, the cadence cancels out of the equation.

gear ratio * Cadence * Motor torque = Assistance factor * Cadence * Torque at the crank

Solving for torque yields:
Motor torque = Assistance factor * Torque at the crank / Gear ratio

The motor torque depends solely on the motor current and the motor constant KM.
Motor torque = Motor current * KM

It follows that:
Motor current = Assistance factor * Torque at the crank / (Gear ratio * KM)

The various constants in the formula can be combined into a single constant:

Motor current = System constant * Assistance factor * Torque at the crank

Maximum Motor Current per assist level

For each support level, a percentage of the maximum motor current defined in the “max Current on Low Charge” field is specified in the “Current limit” column.

The assist factor can now be adjusted in various ways to suit your personal preferences.

The global Multiplier

The global multiplier at the top of the Assist Table (Full) tab let you define the overall level of the assitance. If you want to increase the assistance independend from all detailed settings, without increasing the maximum motor current limit, set a higher value here.

Smoothing the torque signal

The torque curve at the crank does not remain constant over one crank revolution, but rather takes the form of two positive sine half-waves. If this torque signal were used directly to control the motor, the result would be very pulsating assistance. That is why the torque signal is smoothed. The “Torque Filter” parameter allows you to set the filtering strength for each assist level. The higher the value, the less pulsating the assist is, but the slower it responds to changes in torque initiated by the rider.

torque filtering

Define the cadence dependence of the motor current

As explained above, the assistance for a middrive motor is derived from the simple equation: Motor current = System constant * Assistance factor * Torque at the crank. Nevertheless, some riders prefer proportionally greater assistance at higher cadences. This can be adjusted using the cadence exponent, field "Expected Range on Full Charge". The smaller the value, the greater the influence of cadence. For high values, there is virtually no influence; the multiplier always remains 1. The allowed range for the exponent is 0 to 255 (8bit)

cadence exponent

Define the speed dependence of the motor current

In the torque table, a percentage scaling of the motor current per assistance level can be individually set for 5 equally sized speed ranges. The speed ranges are distributed across the set speed limit, regardless of whether the Legal flag is set. If the current speed is higher than the set speed limit, the last value in the column is used. For example, for a speed limit of 25 km/h, the ranges are:
0 to 5 km/h
5 to 10 km/h
10 to 15 km/h
15 to 20 km/h
20 to 25 km/h

If you are wondering why 6 values must be set per assistance level, that is correct, since we need a start and an end value.

speed ranges

Define the timeout and current decay

the motor stops, if you stop pedaling. Two paramters are defining the stopping behaviour:
PAS timeout defines, how long the motor runs, after the last stroke on the pedal was detected. The detection is a combination of the PAS pulses and the torquesignal.
Current Decay on Timeout:To avoid a hard, noisy stop of the motor, you can define a current decay factor. The lower the value, the smoother the decay, but the longer the override. Values from 0 to 255 are valid.

current decay