Calibrate your speedometer and electronic distance sensors
The number of pulses the sensor generates per one full rotation.
The total height of your tire from ground to top.
Use 1.0 if the sensor is located at the wheel hub.
Pulses Per Mile (PPM)
Pulses Per Kilometer (PPK)
Target unit for calibration.
Required Calibration Value:
0
Pulses Per Mile
Understanding Pulse Per Mile (PPM)
A Pulse Per Mile (PPM) calculation is essential for calibrating electronic speedometers, taximeters, and GPS tracking hardware. Modern vehicles use a speed sensor that generates a specific number of electrical pulses for every revolution of the transmission output shaft or the wheel hub. To accurately display speed and distance, the computer must know exactly how many of these pulses correspond to one mile of travel.
How the Calculation Works
The math behind PPM involves three primary factors:
Tire Circumference: This determines how far the vehicle travels in one tire rotation. (Circumference = Diameter × π).
Revolutions Per Mile: How many times the tire turns over a distance of 5,280 feet.
Pulses Per Revolution: The electrical signal count from your specific speed sensor hardware.
The Formula
PPM = (63,360 / (Tire Diameter × 3.14159)) × Pulses Per Rev × Gear Ratio
Example Calculation
If you have a 27-inch tire and a sensor on the wheel hub providing 16 pulses per revolution:
Tire Circumference: 27″ × 3.14159 = 84.82 inches.
Revs Per Mile: 63,360 inches / 84.82 = 746.99 revs.
PPM: 746.99 × 16 pulses = 11,952 PPM.
Why Calibration is Necessary
Changing tire sizes is the most common reason for speedometer inaccuracy. If you install larger tires, the tire covers more distance per revolution, but the sensor still sends the same number of pulses. Without updating your PPM settings, your speedometer will read slower than your actual speed.
function calculatePPM() {
var pulsesPerRev = parseFloat(document.getElementById('pulsesPerRev').value);
var tireDiameter = parseFloat(document.getElementById('tireDiameter').value);
var gearRatio = parseFloat(document.getElementById('gearRatio').value);
var distanceUnit = document.getElementById('distanceUnit').value;
if (isNaN(pulsesPerRev) || isNaN(tireDiameter) || isNaN(gearRatio) || tireDiameter <= 0) {
alert("Please enter valid positive numbers for all fields.");
return;
}
// Constants
var PI = 3.14159265359;
var inchesPerMile = 63360;
var inchesPerKm = 39370.1;
// Calculate Tire Circumference in inches
var circumference = tireDiameter * PI;
var resultValue = 0;
var labelText = "";
if (distanceUnit === "mile") {
// Calculate Revolutions Per Mile
var revsPerMile = inchesPerMile / circumference;
// Total PPM = Revs * Pulses * Gear Ratio
resultValue = revsPerMile * pulsesPerRev * gearRatio;
labelText = "Pulses Per Mile (PPM)";
} else {
// Calculate Revolutions Per Kilometer
var revsPerKm = inchesPerKm / circumference;
// Total PPK = Revs * Pulses * Gear Ratio
resultValue = revsPerKm * pulsesPerRev * gearRatio;
labelText = "Pulses Per Kilometer (PPK)";
}
// Display results
document.getElementById('finalPPM').innerText = Math.round(resultValue).toLocaleString();
document.getElementById('resultLabel').innerText = labelText;
document.getElementById('ppm-result-area').style.display = 'block';
}