This calculator helps motocross riders determine the appropriate spring rate for their motorcycle's suspension. Choosing the correct spring rate is crucial for optimal performance, handling, and rider comfort. An incorrect spring rate can lead to a bike that is too stiff or too soft, affecting suspension action, bottoming resistance, and overall control.
Recommended: 30-35% for motocross
Front Fork Spring
Rear Shock Spring
e.g., 48 for Showa SFF, WP AER 48
e.g., 50 for most motocross shocks
e.g., 100 for many motocross shocks
e.g., 3.5 for many motocross bikes
function calculateSpringRate() {
var riderWeight = parseFloat(document.getElementById("riderWeight").value);
var bikeWeight = parseFloat(document.getElementById("bikeWeight").value);
var sagPercentage = parseFloat(document.getElementById("sagPercentage").value);
var springType = document.getElementById("springType").value;
var forkDiameter = parseFloat(document.getElementById("forkDiameter").value);
var shockBodyDiameter = parseFloat(document.getElementById("shockBodyDiameter").value);
var shockStroke = parseFloat(document.getElementById("shockStroke").value);
var leverRatio = parseFloat(document.getElementById("leverRatio").value);
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
if (isNaN(riderWeight) || riderWeight <= 0) {
resultDiv.innerHTML = "Please enter a valid rider weight.";
return;
}
if (isNaN(bikeWeight) || bikeWeight <= 0) {
resultDiv.innerHTML = "Please enter a valid motorcycle weight.";
return;
}
if (isNaN(sagPercentage) || sagPercentage 100) {
resultDiv.innerHTML = "Please enter a valid sag percentage (1-100%).";
return;
}
var totalWeight = riderWeight + bikeWeight;
var sagMm = 0;
var calculatedSpringRate = 0;
var springRateUnit = "N/mm"; // Default unit
if (springType === "front") {
if (isNaN(forkDiameter) || forkDiameter <= 0) {
resultDiv.innerHTML = "Please enter a valid fork diameter for front springs.";
return;
}
// Formula for front fork spring rate (simplified approximation)
// This is a rough guide; actual fork design varies.
// Assumes a linear spring in the fork leg for calculation simplicity.
// A more complex calculation would involve internal damping and valving.
// This approximation uses rider + bike weight to estimate the force
// required to achieve the desired sag.
sagMm = (sagPercentage / 100) * 100; // Assuming ~100mm of travel for sag calculation basis
calculatedSpringRate = (totalWeight * 9.81) / (sagMm / 100); // Force in Newtons / desired sag in meters
springRateUnit = "N/mm"; // Standard unit for fork springs
resultDiv.innerHTML = "
Front Fork Spring Recommendation:
";
resultDiv.innerHTML += "Estimated Spring Rate: " + calculatedSpringRate.toFixed(1) + " " + springRateUnit + "";
resultDiv.innerHTML += "Note: This is an approximation. Consult your motorcycle's manual and suspension tuner for precise recommendations based on your specific bike and riding style. Fork diameter influences spring coil bind and free length, not directly the rate calculation here in this simplified model.";
} else if (springType === "rear") {
if (isNaN(shockBodyDiameter) || shockBodyDiameter <= 0) {
resultDiv.innerHTML = "Please enter a valid shock body diameter for rear springs.";
return;
}
if (isNaN(shockStroke) || shockStroke <= 0) {
resultDiv.innerHTML = "Please enter a valid shock stroke for rear springs.";
return;
}
if (isNaN(leverRatio) || leverRatio <= 0) {
resultDiv.innerHTML = "Please enter a valid lever ratio for rear springs.";
return;
}
// Formula for rear shock spring rate
// Rear spring rate calculation involves the force applied at the wheel,
// which is multiplied by the lever ratio to get the force on the shock.
// Force at wheel = (Total Weight * g) * (Lever Ratio)
// Spring Rate (N/mm) = Force (N) / Sag (mm)
var wheelForce = (totalWeight * 9.81) * leverRatio;
sagMm = (sagPercentage / 100) * shockStroke; // Calculate sag in mm based on shock stroke
calculatedSpringRate = wheelForce / sagMm;
springRateUnit = "N/mm"; // Standard unit for rear springs
resultDiv.innerHTML = "
Rear Shock Spring Recommendation:
";
resultDiv.innerHTML += "Estimated Spring Rate: " + calculatedSpringRate.toFixed(1) + " " + springRateUnit + "";
resultDiv.innerHTML += "Note: This is an approximation. Consult your motorcycle's manual and suspension tuner for precise recommendations based on your specific bike and riding style.";
}
}
#spring-rate-calculator-motocross {
font-family: sans-serif;
border: 1px solid #ccc;
padding: 20px;
border-radius: 8px;
max-width: 600px;
margin: 20px auto;
background-color: #f9f9f9;
}
#spring-rate-calculator-motocross h2 {
text-align: center;
margin-bottom: 15px;
color: #333;
}
#spring-rate-calculator-motocross p {
margin-bottom: 15px;
line-height: 1.6;
color: #555;
}
.input-section {
margin-bottom: 15px;
}
.input-section label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.input-section input[type="number"],
.input-section input[type="text"],
.input-section select {
width: calc(100% – 12px);
padding: 8px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box; /* Include padding and border in the element's total width and height */
}
.input-section small {
display: block;
font-size: 0.85em;
color: #777;
margin-top: 3px;
}
#spring-rate-calculator-motocross button {
display: block;
width: 100%;
padding: 10px 15px;
background-color: #007bff;
color: white;
border: none;
border-radius: 4px;
font-size: 1.1em;
cursor: pointer;
transition: background-color 0.3s ease;
}
#spring-rate-calculator-motocross button:hover {
background-color: #0056b3;
}
#result {
margin-top: 20px;
padding: 15px;
border: 1px dashed #007bff;
border-radius: 4px;
background-color: #e7f3ff;
text-align: center;
}
#result h3 {
margin-top: 0;
color: #0056b3;
}
#result p {
margin-bottom: 5px;
}
#result strong {
font-size: 1.2em;
color: #d9534f;
}