Step rates
English • العربية • български • català • čeština • Deutsch • Ελληνικά • español • فارسی • français • hrvatski • magyar • italiano • română • 日本語 • 한국어 • lietuvių • Nederlands • norsk • polski • português • русский • Türkçe • українська • 中文(中国大陆) • 中文(台灣) • עברית • azərbaycanca • |
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
- Connect a stepper (without printer) to the controller.
- Jumper the controller for its highest microstepping to keep actual motor RPM low.
- Set a very high max feedrate in the firmware (65000 mm/min or 1000 mm/s).
- 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:
- Calculate steps/mm. Here microstepping and printer details, like pulley size are taken into account.
- 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 |
0,9°-stepper, 16-teeth-GT2-pulley, 1/16 microstepping | 200 | 5 μm | 80 mm/s | 240 mm/s | 335 mm/s | 480 mm/s |
0,9°-stepper, 16-teeth-GT2-pulley, 1/32 microstepping | 400 | 2,5 μm | 40 mm/s | 120 mm/s | 168 mm/s | 240 mm/s |
0,9°-stepper, 16-teeth-GT2-pulley, 1/64 microstepping | 800 | 1,25 μm | 20 mm/s | 60 mm/s | 84 mm/s | 120 mm/s |
0,9°-stepper, 16-teeth-GT2-pulley, 1/128 microstepping | 1600 | 0,625 μm | 10 mm/s | 30 mm/s | 42 mm/s | 60 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, 16-teeth-GT2-pulley, 1/16 microstepping | 100 | 10 μm | 160 mm/s | 480 mm/s | 670 mm/s | 960 mm/s |
1,8°-stepper, 16-teeth-GT2-pulley, 1/32 microstepping | 200 | 5 μm | 80 mm/s | 240 mm/s | 335 mm/s | 480 mm/s |
1,8°-stepper, 16-teeth-GT2-pulley, 1/64 microstepping | 400 | 2,5 μm | 40 mm/s | 120 mm/s | 168 mm/s | 240 mm/s |
1,8°-stepper, 16-teeth-GT2-pulley, 1/128 microstepping | 800 | 1,25 μm | 20 mm/s | 60 mm/s | 84 mm/s | 120 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 |