Beam Bench Docs

Steps per millimeter

How the controller maps motor steps to physical distance. Get this wrong and every cut is the wrong size.

The controller tells the motor "move N steps". The motor moves a fraction of a turn per step, and the belt / pulley / leadscrew converts that to linear motion. Steps per millimeter is the conversion factor, the number of motor steps that produce 1 mm of linear travel.

If steps/mm is wrong by 5%, every cut is 5% the wrong size. Most setup problems where parts come out consistently the wrong size trace back to steps/mm.

The basics

Each axis has its own steps/mm. In GRBL, the settings are $100 (X), $101 (Y), $102 (Z).

A typical 16-tooth GT2 pulley with 200-step motor at 1/16 microstepping computes to about 100 steps/mm:

steps/mm = (motor_steps_per_rev × microsteps) / (belt_teeth × belt_pitch)
        = (200 × 16) / (16 × 2)
        = 100

(The math varies by mechanical setup. The number is whatever it is for your machine.)

How to verify

  1. Tell the machine to move some distance, say 100 mm in X.
  2. Measure how far it actually moved.
  3. The ratio tells you whether steps/mm is correct.

If you commanded 100 mm and it moved 95 mm, your current steps/mm value needs to increase by about 5.26%. Multiply by 100 / 95 to correct.

Beam Bench's framing function is a good way to verify: have it frame a 100 mm × 100 mm rectangle, then measure with calipers.

How Beam Bench handles it

Steps/mm lives in the controller's firmware, not in Beam Bench. Beam Bench just sends G-code; the controller does the conversion.

To set steps/mm, first read the current values with $$, calculate the replacement for each axis, then use $100=… and $101=… as syntax templates. Replace each ellipsis with the calculated machine-specific value; do not paste either template unchanged. The changes persist in the controller's EEPROM.

The GRBL Settings tab of Device Settings provides a UI for viewing and editing these values. Changes to $100, $101, and $102 persist in the controller's EEPROM. Apply to Active Profile does not copy steps/mm; it only copies a valid $30 into S-value Max and the lower valid rate from $110 / $111 into Max Speed.

When it matters

  • After you change anything mechanical: motor, pulley, belt, leadscrew, microstepping setting.
  • When you swap controllers.
  • The first time you set up a new machine.

When it does not

After it is dialed in once, steps/mm does not drift. Unless you change something physical, you do not need to redo it.

On this page