Skip to content

Stepper Run Current Calculator

The Run Current Calculator converts your stepper motor’s rated current into a safe Klipper run_current value.

Free, runs in your browser, no registration.

run_current tells the TMC driver how much current to feed the stepper motor, in amps RMS. It’s the single most consequential number in your [tmc2209] (or 2130/5160) sections.

Get it wrong in either direction and you get real problems:

  • Too low — skipped steps, layer shifts under acceleration, motors that stall on fast moves, lost homing accuracy
  • Too high — motors that run hot enough to soften printed mounts, driver thermal shutdown mid-print, wasted power, and on some setups, a burnt driver

Stepper motors are rated in peak current. Klipper’s run_current is in RMS.

RMS = peak / √2 ≈ peak × 0.707

Then take 60–85% of that RMS figure as your working value.

Worked example: a motor rated 1.5 A peak.

1.5 × 0.707 = 1.06 A RMS
1.06 × 0.7 = 0.74 A run_current

This is where most bad configs come from — someone puts the peak rating straight into run_current and wonders why the motor is too hot to touch.

MotorRated peakTypical run_current
NEMA 17, 42-34 (X/Y, most printers)1.5 A0.6 – 0.8 A
NEMA 17, 42-40 (heavier)1.5 – 2.0 A0.7 – 1.0 A
LDO / Moons pancake extruder1.0 A0.35 – 0.5 A
NEMA 17 Z leadscrew1.5 A0.5 – 0.7 A

Always check your specific motor’s datasheet. “NEMA 17” describes a mounting flange, not a current rating.

Start at 70% of RMS, then adjust based on evidence:

Raise if you see:

  • Skipped steps or layer shifts during fast moves
  • Motors stalling on acceleration
  • Inconsistent homing position

Lower if you see:

  • Motors too hot to hold a finger on (above ~60 °C)
  • Driver thermal shutdown mid-print
  • Printed motor mounts deforming
  • Excessive motor noise

The heat test: after a long print, you should be able to hold a finger on the motor for a few seconds. Uncomfortably hot is fine; instantly painful is too much current.

Extruder steppers are frequently over-currented. They move much less mass than an axis motor and sit right next to the hotend, so they have the least thermal headroom on the machine.

If your extruder motor is hot and you’re getting heat creep clogs, run current is worth checking before you buy a new heatbreak.

  • Using peak current as run_current. The most common config error. Convert to RMS first.
  • Copying values from a different printer. Different motors, different mass, different answer.
  • Assuming hotter means stronger. Above roughly 85% of RMS you gain very little torque and add a lot of heat.
  • Ignoring hold_current. On most modern setups you should leave it unset — Klipper’s default behaviour is better than most manual values, and a low hold current on Z can let the gantry sag.
  • Setting Z current high “for safety.” Z motors hold position with leadscrews doing most of the work. They rarely need much.

Run current belongs to machine setup, before any print-quality calibration:

Setup: run current → belt tension → homing and bed mesh Motion: input shaping → acceleration → skew Extrusion: temperaturerotation distanceflowpressure advance

Layer shifts blamed on input shaping are quite often a run current problem.

Run current values for the motors in my Voron 2.4, Mercury One.1, K2 Plus, SV08, and Ender builds are documented in the Minimal 3DP config packs. Raw configs stay free in the klipper repository.