All tools

Free tool

Max feedrate checker

Steps/mm times the controller’s maximum step rate, converted to mm/min — and the other way round, the pulse frequency a feed or rapid needs, checked against that limit. Anything past 100 kHz is flagged.

Axis resolution
steps/mm

Pulses for 1 mm of travel, after any belt or gear ratio.

Step-rate limit

TNC-M34: 100 kHz per axis, counted on the fastest-moving axis of a move. The pulse engine clamps to it however the axes are set up.

kHz

From the drive’s datasheet. The lower of the two limits is used.

Feed to check
mm/min

The cutting feed or the rapid you want. Leave it blank to skip the check.

Maximum feedrate 3 750mm/min
m/min
3.75
in/min
147.6
Step-rate limit
100 kHz
Set by
TNC-M34

Pulse frequency at 3 000 mm/min

Within the limit

80kHz

Headroom
20 %
Limit
100 kHz

0100 kHz

TNC-M34 pulse widthIf 3 000 mm/min is this axis’s max_rate, the TNC-M34 holds step_pulse_us to 6 µs or less, half the step period. A drive that needs a wider pulse needs a lower max_rate or fewer microsteps.

Fewer or more microsteps at the same limit
MicrostepsSteps/mmStep (µm)Max feed (mm/min)At your feed
÷ 44002.515 00020 kHz
÷ 28001.257 50040 kHz
as set1 6000.6253 75080 kHz
× 23 2000.31251 875160 kHz (over)
× 46 4000.1563937.5320 kHz (over)

How it is worked out

A step/direction controller moves an axis one pulse per step. The fastest feed is therefore the controller’s pulse rate shared out over the pulses each millimetre needs, and the frequency a feed needs is the same sum turned round.

pulse frequency (Hz)   = steps per mm × feed (mm/min) ÷ 60
maximum feed (mm/min)  = step-rate limit (Hz) × 60 ÷ steps per mm
steps per mm           = full steps per rev × microsteps ÷ screw lead (mm)
headroom (%)           = (limit − pulse frequency) ÷ limit × 100

The limit used is the controller’s, or the drive’s maximum input frequency if you enter one and it is lower. m/min is mm/min ÷ 1000, and in/min is mm/min ÷ 25.4.

Worked example

A 200-step (1.8°) motor on a drive set to 40 microsteps, turning a 5 mm lead ball screw directly, on a TNC-M34:

steps per mm   = 200 × 40 ÷ 5            = 1 600 steps/mm
maximum feed   = 100 000 × 60 ÷ 1 600    = 3 750 mm/min  (3.75 m/min, 147.6 in/min)
3 000 mm/min   : 1 600 × 3 000 ÷ 60      = 80 000 Hz = 80 kHz, 20 % headroom
5 000 mm/min   : 1 600 × 5 000 ÷ 60      = 133 kHz, past the limit

The 3 000 mm/min feed fits. A 5 000 mm/min rapid cannot be delivered at this resolution, whatever max_rate is set to.

Assumptions

Why the step rate, not the motor, often limits rapids

Every microstep is another pulse the controller has to send for the same distance. At 1 600 steps/mm a 100 kHz ceiling runs out at 3 750 mm/min, which on a 5 mm lead is the motor turning only 750 rpm. Many stepper systems still have usable torque there, so the rapid stops at the pulse ceiling long before it stops at the motor. Typing a bigger number does not help: the TNC-M34 accepts a max_rate of up to 200 000 mm/min, but its pulse engine delivers no more than 100 kHz, and at this resolution that is 3 750 mm/min.

The trade-off of fewer microsteps

Halving the microsteps halves steps per mm and doubles the top feed at the same step rate — the table beside the result shows that ladder for your numbers. What it costs:

What it can buy besides speed: on a TNC-M34 a lower step-rate demand lets a wider STEP pulse survive. step_pulse_us is held to half the shortest step period the axes can demand — 5 µs at 100 kHz, 10 µs at 50 kHz — so a drive that needs a 10 µs pulse needs the demand at or below 50 kHz.

The limits in this tool

ChoiceStep-rate limitWhere it comes from
TNC-M34100 kHz per axisOperator manual, §11.2a. The pulse engine clamps to 100 kHz on the fastest-moving axis of a move. Its step timer runs at 1 MHz, so a step period is a whole number of microseconds and the rates near the top are coarse: 100 kHz, then 90.9 kHz.
TNC-L321 ÷ (2 × (DIR SETUP + PULSE WIDTH)), at most 500 kHzUser manual, “What limits the step rate”. The pulse and the direction settle have to fit in half a step interval. The defaults, 8 + 5 µs, give 38.5 kHz; 1 + 1 µs on a differential drive gives 250 kHz. Both fields run from 1 to 20 µs.
Tstep-087 RS-485 drive100 000 steps/sIts Modbus firmware. The step interrupt runs at 100 kHz and emits at most one step per tick, and a commanded speed above 100 000 steps/s is clamped. Speeds are written in steps/s over Modbus, so steps per mm belongs to the master.
TIO-0808100 000 steps/sThe same step generator, ported from the Tstep-087, on its own 100 kHz interrupt.
Customwhat you enterAny other controller or drive.

On the Tstep-087 and the TIO-0808 each pulse lasts about one 10 µs tick and steps land on that tick grid, so rates between the grid points are averages. Up to 50 000 steps/s there is at least a full tick with the line low between pulses; above that, some pulses fall on consecutive ticks with the line low for only a moment.

Why 100 kHz is flagged

100 kHz is the ceiling of the TNC-M34, the Tstep-087 RS-485 drive and the TIO-0808, so none of them can meet a demand past it. The TNC-L32 can go higher, but only with DIR SETUP + PULSE WIDTH under 5 µs. Its manual gives microsecond settle times as what optocoupler inputs need, which leaves a drive with a differential line-receiver input as the realistic case. Past 100 kHz, check the drive’s maximum input frequency as well.

The drive’s limit

The drive has its own maximum input pulse frequency. If you know it, enter it and the tool uses whichever limit is lower. Take the figure from the datasheet of the drive you have; there is no preset for it here.

What this does not check

A pulse rate the controller can send is not a speed the axis can reach. A stepper’s torque falls as speed rises, because winding inductance limits how fast current builds (a higher supply voltage helps). Mid-band resonance can stall a motor at particular speeds, acceleration needs torque margin on top of that, and a long screw has a critical speed of its own. A stepper torque-speed estimator for that side is planned at /tools/torque-speed/.

Tiny Controls products