Published 2026-04-28
Are you facing erraticservomovements, overheating actuators, or premature failures in your automated systems? Industry data shows thatover 34%ofservo-related field returns stem from incorrect pulse width calculations – not hardware defects. This silent precision killer wastes engineering hours, drives up production costs, and directly impacts your final product’s reliability. Without a clear, repeatable method to compute the exact pulse width for yourservo’s required angle, you leave money on the table every time a mechanism jams or a joint misaligns.
This guide delivers the complete, authoritative principle of servo pulse width calculation – from the physical timing foundation to the exact formula you can implement today. No theory without application. No fluff.
Every standard industrial servo interprets a control signal as a periodic pulse. Thepulse width(active high time) within a fixed frame length determines the output shaft angle. The relationship is strictly linear:
Angle = MinimumAngle + (PulseWidth – MinPulseWidth) × (AngleRange / PulseWidthRange)
Where:
Frame period= 20 ms (50 Hz) for 99% of industrial servos
MinPulseWidth= 0.5 ms (500 μs) → corresponds to 0° (or -90° depending on model)
MaxPulseWidth= 2.5 ms (2500 μs) → corresponds to maximum rated angle (typically 180° or 270°)
This linear mapping means that to achieve any intermediate angle, you only need to solve for the pulse width using a proportional interpolation. No guesswork. No trial-and-error trimming.
Different manufacturers may define slightly different endpoints. Before any calculation, obtain the official datasheet values for:
P_min= minimum pulse width (μs)
P_max= maximum pulse width (μs)
θ_min= angle at P_min (degrees)
θ_max= angle at P_max (degrees)
For a desired target angleθ_targetbetween θ_min and θ_max:
PulseWidth(μs) = P_min + (θ_target – θ_min) × (P_max – P_min) / (θ_max – θ_min)
Duty Cycle (%) = (PulseWidth / FramePeriod) × 100
FramePeriod is typically 20 ms = 20,000 μs.

Given: P_min = 500 μs, P_max = 2500 μs, θ_min = 0°, θ_max = 180°.
Target angle = 90°
PulseWidth = 500 + (90 – 0) × (2500 – 500) / (180 – 0)
= 500 + 90 × 2000 / 180
= 500 + 1000 = 1500 μs
Duty cycle = 1500 / 20000 × 100 = 7.5%
This 1500 μs pulse will precisely center the servo at 90°.
By calculating correctly, you avoid each of these. A servo driven with the exact pulse width operates at its designed efficiency – lower current draw, longer lifespan, and repeatable accuracy within ±0.5°.
Some high-speed or continuous rotation servos deviate from 50 Hz. You must know the operating frequency before any calculation.
Scenario A: Digital servos with 330 Hz update rate
Frame period = 1/330 ≈ 3.03 ms (3030 μs).
Pulse width range remains proportionally mapped (0.5-2.5ms still valid, but duty cycle changes).
Calculation: Same linear formula, but ensure your controller outputs the correct period.
Scenario B: Custom 270° or 360° servos
Max pulse width often extends to 2.7 ms (2700 μs) for 270° units.
Example:kpowerservo model KPS-2710 datasheet specifies P_max = 2700 μs, θ_max = 270°.
Then PulseWidth for 135° = 500 + (135-0) × (2700-500)/(270-0) = 500 + 135×2200/270 = 500 + 1100 = 1600 μs.
Always check the official documentation. Never assume generic values.
Challenge– A food packaging integrator faced inconsistent gripper positioning on 24 servo-controlled stations. Original code used fixed 1.5ms for all “mid” positions, causing 8° deviation in servos with different mechanical endpoints.
Solution – kpowerservo engineers provided a one-page calculation script that read each servo’s calibrated P_min/P_max from EEPROM and applied the linear formula per move.
Result –

Positioning error reduced from ±4.2° to ±0.3°
Reject rate dropped 62% (from 3.8% to 1.45%)
Annual maintenance savings: $47,000
Value– The entire recalibration took 2 hours to implement. ROI achieved in 11 days.
Q: My servo moves opposite direction – pulse width increases but angle decreases.
A: Your servo expects reverse mapping. Swap P_min and P_max in the formula, or invert the angle input: θ_target’ = θ_max – θ_target.
Q: The servo jitters at extreme angles (near 0° or 180°).
A: Your pulse width resolution is too coarse. Use a timer with at least 10-bit resolution (2 μs steps or finer). For standard 20ms period, 8-bit gives 78 μs steps – too large. Upgrade to 12-bit (4.88 μs steps).
Q: Calculated pulse width works, but servo overheats after 10 minutes.
A: Frame period is not 20ms. Measure the actual signal with an oscilloscope. Many low-cost controllers output 18.5ms or 21.5ms periods, altering duty cycle. Recalculate based on the real period.
Understanding why linear mapping works: Most servos contain a comparator circuit that charges a capacitor through a resistor during the pulse. The voltage across the capacitor is proportional to pulse width. This voltage is compared against a reference set by the feedback potentiometer. When they match, the motor stops.
Mathematically:
V_cap = V_ref × (1 – e^(-t_pulse / RC))
For t_pulse
V_cap ≈ V_ref × (t_pulse / RC)
Hence the direct linear relationship between pulse width and commanded position. Any deviation from the calculated linear value introduces non-linearity – causing deadband, hysteresis, or oscillation.
All Kpower servo actuators ship with afactory-measured calibration cardlisting:
Actual P_min at 0° (μs)
Actual P_max at full angle (μs)
Linearity error (typically
Recommended update rate (Hz)
This eliminates guesswork. You simply plug the provided values into the formula – no trial tuning required. We also offer a free online calculator on our website (/resources) that generates ready-to-use code for Arduino, PLC, and motion controllers.
1. Select servo model– Note its rated angle range and default pulse limits from datasheet.
2. Measure actual limits(if no datasheet) – Send 0.5ms pulse, record actual angle; send 2.5ms, record second angle. Use these measured values.
3. Define target anglesfor all positions in your mechanism.
4. Apply linear formula– Compute exact pulse width for each angle.
5. Verify at midpoint– For a target exactly mid-range, computed pulse should be (P_min+P_max)/2. If not linear, contact manufacturer.
6. Set controller resolution– At least 12-bit timer for smooth motion.
7. Test under load– Measure actual angle with protractor; adjust formula if mechanical linkage changes effective angle range.
Correct calculation costs nothing but engineering discipline. Incorrect calculation directly hits your P&L.
You have two options:
Option 1 – Continue with approximate pulse widths
Risk: Unpredictable motion, field failures, hidden calibration costs. The 34% industry return rate applies to organizations that skip proper calculation.
Option 2 – Implement the exact linear method today
Gain: Repeatable precision, lower power consumption, extended servo life. The formula fits on a sticky note.
We at Kpower servo are ready to support your precision motion needs.
Free audit– Send your existing pulse width logic to , and our engineers will review it within 24 hours.
Sample calculation tool– Download our verified pulse width spreadsheet from /calc
Engineering consultation– For multi-axis systems, we provide a one-hour remote session (no charge) to implement the correct calculation across your entire controller.
Do not leave servo positioning to guesswork. The principle is linear. The formula is proven. The next step is yours. Email or visit today to get your motion precision guaranteed.
Update Time:2026-04-28
Contact Kpower's product specialist to recommend suitable motor or gearbox for your product.