Free tool
Steps-per-mm calculator
Turn the motor, the driver's microstepping and the leadscrew, belt, rack or gearbox into steps per mm (or per degree), and the value a TNC-M34 or TNC-L32 wants typed in.
In range on TNC-M34 and TNC-L32
- Resolution per step
- 3.125 µm
- Travel per output turn
- 5 mm
- Steps per motor turn
- 1600
- Steps per output turn
- 1600
| Controller | Enter this in | Value |
|---|---|---|
| TNC-M34 | MENU ▸ MACHINE ▸ X-AXIS ▸ Steps per mm, and the same under Y-AXIS and Z-AXIS. Range 1 – 100 000. | 320 |
| TNC-L32 | Settings → MACHINE → AXES → X STEPS/MM or Z STEPS/MM. Range 1 – 100 000, three decimals. | 320.000 |
| TNC-M34 | MENU ▸ MACHINE ▸ 4-AXIS, with type ROTARY ▸ Steps per rotation. The panel takes steps per output turn and stores it as steps_per_deg. | 1600 |
| TNC-L32 | No rotary axis: the TNC-L32 has X and Z only. | — |
How it is worked out
A step is one pulse to the driver. Count the pulses for one turn of the output, then divide by how far (or how many degrees) that turn moves the axis.
steps per output turn = full steps per rev × microsteps × (motor turns ÷ output turns) steps/mm = steps per output turn ÷ travel per output turn (mm) steps/degree = steps per output turn ÷ 360 travel per output turn leadscrew / ballscrew lead = pitch × starts belt and pulley belt pitch × pulley teeth rack and pinion π × module × teeth (or circular pitch × teeth) resolution = 1000 ÷ steps/mm µm per step, or 60 ÷ steps/degree arc-min per step
Worked examples
- Ballscrew. A 200-step motor at 1/8 microstepping gives 200 × 8 = 1600 steps per turn. Coupled directly to a 5 mm single-start ballscrew: 1600 ÷ 5 = 320 steps/mm, and 1 ÷ 320 mm = 3.125 µm per step. With a 20-tooth to 40-tooth belt reduction (2 : 1) it doubles to 640 steps/mm.
- Belt. A GT2 belt (2 mm pitch) on a 20-tooth pulley moves 40 mm per turn. At 1/16 microstepping: 3200 ÷ 40 = 80 steps/mm, or 12.5 µm per step. Belts trade resolution for speed.
- Rack and pinion. A module 1.5 pinion with 20 teeth moves π × 1.5 × 20 = 94.25 mm per turn. Through a 5 : 1 gearbox at 1/8 microstepping: 1600 × 5 ÷ 94.25 = 84.88 steps/mm.
- Rotary. A 90 : 1 worm table at 1/8 microstepping: 1600 × 90 = 144 000 steps per table turn, 144 000 ÷ 360 = 400 steps/degree, 0.15 arc-min per step. On a TNC-M34 the 4th axis's
Steps per rotationrow takes 144 000.
Assumptions
- The pitch, teeth and ratio are the nominal figures. A real screw has lead error; a rolled C7 ballscrew, for example, is allowed about 0.05 mm in any 300 mm. Fine-tune by measurement (below) to take it out.
- The belt is fixed to the moving part and wraps the drive pulley. A belt that only links two pulleys is a reduction: enter its tooth counts under Reduction instead.
- The reduction is exact. Backlash in the gearbox, screw or rack does not change steps/mm; it is set separately.
- The 0.01 mm and 0.1° resolution warnings are rules of thumb, not controller limits.
Measuring the lead, including multi-start screws
Pitch is the distance between neighbouring threads. Lead is how far the nut travels in one turn, and it is lead that steps/mm needs. On a single-start screw the two are equal. On a multi-start screw, lead = pitch × starts, and getting this wrong is the usual reason an axis moves two or four times too far.
- Count the starts at the cut end of the screw: each thread that begins at the end face is a start.
- Best: measure lead directly. Mark the screw, turn it exactly one turn, and measure the nut's travel with a dial indicator. That number already includes the starts.
- Read the designation. Ballscrew sizes are usually diameter then lead: a 1605 is 16 mm diameter with a 5 mm lead, a 1610 has a 10 mm lead. A trapezoidal Tr8×8 (P2) has an 8 mm lead from a 2 mm pitch and four starts.
- Inch screws. Pitch in mm = 25.4 ÷ threads per inch, so 5 TPI is 5.08 mm.
Microstepping adds resolution, not accuracy
A microstepping driver divides each full step by setting the current in the two windings to intermediate ratios. The positions it asks for are finer, but the rotor only reaches them if nothing pushes back. The torque available to move one microstep is roughly the holding torque × sin(90° ÷ microsteps): about 20 % at 1/8, 10 % at 1/16 and under 1 % at 1/256. Under friction or cutting load the rotor lags until enough microsteps have accumulated, then catches up. The full-step positions are the accurate ones. Motor manufacturers typically quote step accuracy as a few percent of a full step.
Microstepping also costs speed, because every microstep is a pulse. The TNC-M34 operator manual gives its step-rate ceiling as 100 kHz per axis: 800 steps/mm tops out at 7 500 mm/min, 1 600 steps/mm at 3 750 mm/min. On a TNC-L32 the ceiling at the default pulse width and direction setup is 38.5 kHz, which is 5 769 mm/min at 400 steps/mm. Choose enough microstepping for smooth motion, not the highest the driver offers.
Fine-tuning by measuring actual travel
The calculated value is only as good as the nominal lead. To take out the screw's real error, command a long move, measure what the axis actually did, and scale:
new steps/mm = current steps/mm × commanded distance ÷ measured distance
- Set up a dial indicator, a height gauge or a known length along the axis, over as long a move as the travel allows.
- Approach the start point from the same direction as the test move, so backlash is already taken up.
- Command the move, for example
G91 G1 X100 F300, and measure it. - Work out the new value and enter it. Repeat once to confirm.
The TNC-L32 user manual gives this same procedure for commissioning, under MACHINE → AXES. On a TNC-M34, MENU ▸ SYSTEM ▸ TUNING has a steps/mm wizard that asks for the commanded and measured distances.
The same arithmetic works for a rotary axis in steps per degree: command an angle and measure it.
Where the value goes
- TNC-M34. MENU ▸ MACHINE ▸ X-AXIS, Y-AXIS or Z-AXIS ▸
Steps per mm, range 1 to 100 000. It issteps_per_mminmachine.cfgon the card, and it takes decimals. For the 4th axis withtypeROTARY, the row readsSteps per rotation: type steps per output turn, and the controller stores it per degree (steps_per_deg, 0.01 to 100 000). WithtypeLINEAR the same row readsSteps per mm. Settings can only be changed while the machine is idle, and F2 saves them to the card. - TNC-L32. Settings → MACHINE → AXES →
X STEPS/MMandZ STEPS/MM, range 1 to 100 000, default 400, to three decimals. The value box refuses an out-of-range number rather than adjusting it. X is a radius on this controller, so X steps/mm is per mm of cross-slide travel, even with the DRO showing diameter.
Related Tiny Controls products
- TNC-M34 four-axis CNC controller
- TNC-L32 two-axis lathe controller
- Tstep stepper drivers: Tstep-087X, Tstep-117X, Tstep-168X, Tstep-087-485