Step rates

From RepRap
Revision as of 09:30, 1 August 2014 by Traumflug (talk | contribs) (Translate from german.)
Jump to: navigation, search


One thing up front: at 300 mm/s, precision in the micrometer range is pretty unrealistic. Accordingly, 0.9° stepper motors and 1/32 microstepping don't make much sense. Forces neccessary to achieve such speeds are simply too high for current designs of printer frames and actuators. For high precision you'd have to live with much lower feedrates.

Achievable step rates

Step rate means the highest speed at which a particular electronics-firmware combination can send step pulses to the stepper motor driver. It mostly depends on the CPU used on a controller, its clock frequency and the algorithm used by the firmware to calculate motor movements. As this are typically several thousand pulses per second, it's typically given in Kilohertz (kHz).

ATmega-based electronics are, with exception of the clock frequency, all equally fast. Achievable feedrates are always the same, no matter wether you use a big ATmega2560, a small ATmega168, or something in between.

Current (July 2014) discussion about achievable step rates goes as following:

  • Marlin/Repetier on ATmega 16 MHz (e.g. RAMPS) in Standard-Mode: 16.000 steps/second (16 kHz).
  • Teacup Firmware on ATmega 20 MHz (e.g. Gen7): 48 kHz.
  • Marlin/Repetier on ATmega 16 MHz in Quadstep-Mode (uneven step distribution): 67 kHz.
  • Repetier on RADDS: 96 kHz.

Measuring step rate

  1. Connect a stepper (without printer) to the controller.
  2. Jumper the controller for its highest microstepping to keep actual motor RPM low.
  3. Set a very high max feedrate in the firmware (65000 mm/min or 1000 mm/s).
  4. Choose a moderate acceleration, e.g. 100 mm/s2 in firmware (acceleration phase is the critical phase, so don't make it too short).

Then send movement commands at raising feedrates:

G1 X1000 F20000
G1 X0 F22000
G1 X1000 F24000
...

Raise feedrate until the controller shows hiccups. Either short pauses in stepper sound or sound going away entirely. The achieved feedrate allows to calculate the achieved step rate.

With our fast controllers, stepper max RPM is also a limitation. Stops a motor, but its sound continues to be smooth, the controller can keep up and the measurement is valid.

Measuring with devices, e.g. an oscilloscope, is less reliable, because there it's hard to notice short dropouts. For example, a poorly coded firmware would show such dropouts while characters come in over the serial line. Dropouts lead to motor stop or at least step losses, so such behaviour isn't usable while printing.

By step rate achievable feedrates

Every step pulse advance a stepper by one step. Is microstepping in use, a pulse advances the stepper by one microstep. Accordingly, achievable feedrates also heavily depend on the given microstep setting.

Calculation:

  1. Calculate steps/mm berechnen. Here microstepping and printer details, like pulley size are taken into account.
  2. Achievable feedrate = (achievable step rate) / (steps/mm)

Note: in many cases there are other feedrate limitations than just the achievable step rate, e.g. a spindles' max RPM. In these cases a controller keeping up with these other limitations is sufficient, an even faster controller brings no additional advantage regarding feedrates.

 steps/mm
 Theoretical precision
 Marlin/Repetier on ATmega 16 MHz
 Teacup Firmware on ATmega 20 MHz
 Marlin/Repetier in Quadstep-Mode
 Repetier on RADDS
0,9°-stepper, 14-teeth-GT2-pulley, 1/16 microstepping 228,57 4,38 μm 70 mm/s 210 mm/s 293 mm/s 420 mm/s
0,9°-stepper, 14-teeth-GT2-pulley, 1/32 microstepping 457,14 2,19 μm 35 mm/s 105 mm/s 146 mm/s 210 mm/s
0,9°-stepper, 14-teeth-GT2-pulley, 1/128 microstepping 1828,6 0,547 μm 8,7 mm/s 26 mm/s 37 mm/s 52 mm/s
1,8°-stepper, 14-teeth-GT2-pulley, 1/16 microstepping 114,29 8,75 μm 140 mm/s 420 mm/s 586 mm/s 840 mm/s
1,8°-stepper, 14-Zähne-GT2-pulley, 1/32 microstepping 228,57 4,38 μm 70 mm/s 210 mm/s 293 mm/s 420 mm/s
1,8°-stepper, 14-teeth-GT2-pulley, 1/128 microstepping 914,29 1,09 μm 17 mm/s 52 mm/s 73 mm/s 105 mm/s
1,8°-stepper, M8 threaded rod, 1/8 microstepping 1280 0,781 μm 12 mm/s 37 mm/s 52 mm/s 75 mm/s
1,8°-stepper, M8 threaded rod, 1/32 microstepping 5120 0,195 μm 3,1 mm/s 19 mm/s 13 mm/s 19 mm/s
1,8°-stepper, M8 threaded rod, 1/128 microstepping 20480 0,0488 μm 0,78 mm/s 4,7 mm/s 3,3 mm/s 4,7 mm/s
1,8°-stepper, Tr10x3 spindle, 1/8 microstepping 533,33 1,875 μm 30 mm/s 90 mm/s 126 mm/s 180 mm/s
1,8°-stepper, Tr10x3 spindle, 1/32 microstepping 2133,3 0,469 μm 7,5 mm/s 22 mm/s 31 mm/s 45 mm/s
1,8°-stepper, Tr10x3 spindle, 1/128 microstepping 8533,3 0,117 μm 1,9 mm/s 5,6 mm/s 7,8 mm/s 11 mm/s
0.9°-stepper, M5 threaded rod, 1/128 microstepping 64000 0,0156 μm 0,25 mm/s 0,75 mm/s 1,0 mm/s 1,5 mm/s