Calculate precise fluid delivery based on tubing dimensions and motor speed.
Estimated Flow Rate
0.00 mL/min
How Peristaltic Pump Flow Rate is Calculated
Peristaltic pumps, also known as roller pumps, operate by positive displacement. The flow rate is determined by the volume of fluid trapped within the tubing between rollers and the speed at which those rollers move. To calculate the flow rate precisely, we use the internal geometry of the tubing and the mechanics of the pump head.
Area: The cross-sectional area of the tubing ID ($\pi \times r^2$).
Track Length: The length of the tubing compressed by the rollers in one full revolution of the pump head.
RPM: Revolutions per minute of the motor.
Efficiency: Typically 90-98%, accounting for fluid "slip" and tubing back-pressure.
Common Tubing Sizes and Typical Flow Rates
Tubing ID (mm)
Wall Thickness (mm)
Flow Range (Approx mL/min)
0.8 mm
1.6 mm
0.02 – 20
1.6 mm
1.6 mm
0.1 – 100
3.2 mm
1.6 mm
0.5 – 400
6.4 mm
2.4 mm
2.0 – 2000
Factors Influencing Accuracy
While this calculator provides a theoretical baseline, real-world flow rates can be affected by:
Fluid Viscosity: Thicker fluids move slower and may decrease volumetric efficiency.
Back Pressure: High resistance at the outlet causes the tubing to expand slightly, reducing the effective stroke volume.
Tubing Fatigue: As the tubing wears down, its "rebound" ability decreases, which can drop the flow rate over time.
Suction Lift: Drawing fluid from a significantly lower level than the pump requires more energy and can create a partial vacuum, altering the volume.
function calculatePumpFlow() {
var id = parseFloat(document.getElementById('tubingID').value);
var track = parseFloat(document.getElementById('trackLength').value);
var rpm = parseFloat(document.getElementById('pumpRPM').value);
var eff = parseFloat(document.getElementById('efficiency').value);
if (isNaN(id) || isNaN(track) || isNaN(rpm) || isNaN(eff) || id <= 0 || track <= 0 || rpm <= 0) {
alert("Please enter valid positive numbers for all fields.");
return;
}
// Radius in mm
var radius = id / 2;
// Area in mm^2
var area = Math.PI * Math.pow(radius, 2);
// Volume per revolution in mm^3
var volPerRev = area * track;
// Convert mm^3 to mL (1000 mm^3 = 1 mL)
var mlPerRev = volPerRev / 1000;
// Total flow rate in mL/min
var flowRate = mlPerRev * rpm * (eff / 100);
// Hourly rate
var flowPerHour = flowRate * 60;
var litersPerHour = flowPerHour / 1000;
var resultBox = document.getElementById('resultBox');
var flowResult = document.getElementById('flowResult');
var secondaryResult = document.getElementById('secondaryResult');
resultBox.style.display = 'block';
flowResult.innerHTML = flowRate.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + " mL/min";
secondaryResult.innerHTML = "Equivalent to " + litersPerHour.toLocaleString(undefined, {minimumFractionDigits: 3, maximumFractionDigits: 3}) + " Liters per hour";
// Scroll to result smoothly
resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}