Timing belt calculations often begin with two questions:
How fast will the driven pulley rotate?
How fast is the belt moving?
Both can be estimated from four basic inputs: driver teeth, driven teeth, belt pitch and motor speed.
Let’s turn the calculation into a small Python utility.
The Basic Equations
The driven-pulley speed is:
Driven RPM =
Motor RPM × Driver Teeth ÷ Driven Teeth
The reduction ratio is:
Reduction Ratio =
Driven Teeth ÷ Driver Teeth
The approximate belt speed at the pitch line is:
Belt Speed =
Driver Teeth × Belt Pitch × Motor RPM
When pitch is entered in millimeters and speed is required in meters per second, the result is divided by 60,000.
Python Calculator
from dataclasses import dataclass
@dataclass(frozen=True)
class TimingBeltDrive:
driver_teeth: int
driven_teeth: int
pitch_mm: float
motor_rpm: float
def validate(self) -> None:
values = {
"driver_teeth": self.driver_teeth,
"driven_teeth": self.driven_teeth,
"pitch_mm": self.pitch_mm,
"motor_rpm": self.motor_rpm,
}
for name, value in values.items():
if value <= 0:
raise ValueError(
f"{name} must be greater than zero"
)
def reduction_ratio(self) -> float:
self.validate()
return self.driven_teeth / self.driver_teeth
def output_rpm(self) -> float:
self.validate()
return (
self.motor_rpm
* self.driver_teeth
/ self.driven_teeth
)
def belt_speed_m_s(self) -> float:
self.validate()
travel_per_driver_rev_mm = (
self.driver_teeth * self.pitch_mm
)
return (
travel_per_driver_rev_mm
* self.motor_rpm
/ 60_000
)
drive = TimingBeltDrive(
driver_teeth=20,
driven_teeth=60,
pitch_mm=5,
motor_rpm=1500,
)
print(
f"Reduction ratio: "
f"{drive.reduction_ratio():.2f}:1"
)
print(
f"Driven speed: "
f"{drive.output_rpm():.1f} RPM"
)
print(
f"Belt speed: "
f"{drive.belt_speed_m_s():.2f} m/s"
)
The result is:
Reduction ratio: 3.00:1
Driven speed: 500.0 RPM
Belt speed: 2.50 m/s
Why Tooth Count Controls the Ratio
A 20-tooth driver pulley moves 20 belt teeth during each revolution. A 60-tooth driven pulley needs three times that belt movement to complete one revolution.
The driven pulley therefore rotates once for every three motor revolutions:
60 ÷ 20 = 3:1 reduction
This reduces speed and increases the ideal torque available at the driven shaft. Actual output torque will be lower than the theoretical value because bearings, belt flex and other system losses reduce efficiency.
Why Belt Pitch Matters
A 5 mm pitch belt advances approximately 5 mm for each pulley tooth passing the pitch line.
For the 20-tooth driver:
20 × 5 mm = 100 mm per revolution
At 1,500 RPM:
100 × 1500 = 150,000 mm/min
That is:
2.5 m/s
The calculation uses the belt pitch line—not the pulley’s outside diameter.
Moving From Code to Hardware
The ratio alone is not enough to select a pulley. The belt and both pulleys must use a compatible tooth profile and pitch. Two products with the same nominal pitch are not automatically compatible if their tooth geometries belong to different standards or series.
When reviewing hardware, compare tooth profile, pitch, tooth count, belt width, bore, flange arrangement and shaft-mounting method. This timing belt pulley selection includes trapezoidal, curved-tooth, set-screw and keyless-bushing configurations.
What This Calculator Does Not Check
The script provides a useful first estimate, but it does not calculate:
Required belt length
Center distance
Belt tension
Tooth engagement
Allowable pulley speed
Acceleration loads
Shaft and bearing loads
Motor torque requirements
Belt service life
Those checks still require the selected belt and pulley manufacturer’s engineering data.
The code answers the first questions quickly. The mechanical design still gets the final vote.

Top comments (0)