stepper: Change default max_error from 50us to 25us
Change the default compression error window (max_error) from 50us to 25us - it's common for stepper motor drivers to have 30us for their "pwm fixed off time" and it would be good for the steps to be scheduled within that time. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
800d53db6a
commit
f46bc0ef04
|
@ -7,12 +7,11 @@ compelling features:
|
||||||
stepper motor, it compresses those events, transmits them to the
|
stepper motor, it compresses those events, transmits them to the
|
||||||
micro-controller, and then the micro-controller executes each event
|
micro-controller, and then the micro-controller executes each event
|
||||||
at the requested time. Each stepper event is scheduled with a
|
at the requested time. Each stepper event is scheduled with a
|
||||||
precision of no less than 50 micro-seconds. The software does not
|
precision of 25 micro-seconds or better. The software does not use
|
||||||
use kinematic estimations (such as the Bresenham algorithm) -
|
kinematic estimations (such as the Bresenham algorithm) - instead it
|
||||||
instead it calculates precise step times based on the physics of
|
calculates precise step times based on the physics of acceleration
|
||||||
acceleration and the physics of the machine kinematics. More precise
|
and the physics of the machine kinematics. More precise stepper
|
||||||
stepper movement translates to quieter and more stable printer
|
movement translates to quieter and more stable printer operation.
|
||||||
operation.
|
|
||||||
|
|
||||||
* Best in class performance. Klipper is able to achieve high stepping
|
* Best in class performance. Klipper is able to achieve high stepping
|
||||||
rates on both new and old micro-controllers. Even an old 8bit AVR
|
rates on both new and old micro-controllers. Even an old 8bit AVR
|
||||||
|
|
|
@ -51,7 +51,7 @@ class PrinterStepper:
|
||||||
self.min_stop_interval = (math.sqrt(3.*inv_max_step_accel + jc**2)
|
self.min_stop_interval = (math.sqrt(3.*inv_max_step_accel + jc**2)
|
||||||
- math.sqrt(inv_max_step_accel + jc**2))
|
- math.sqrt(inv_max_step_accel + jc**2))
|
||||||
def build_config(self):
|
def build_config(self):
|
||||||
max_error = self.config.getfloat('max_error', 0.000050)
|
max_error = self.config.getfloat('max_error', 0.000025)
|
||||||
step_pin = self.config.get('step_pin')
|
step_pin = self.config.get('step_pin')
|
||||||
dir_pin = self.config.get('dir_pin')
|
dir_pin = self.config.get('dir_pin')
|
||||||
min_stop_interval = max(0., self.min_stop_interval - max_error)
|
min_stop_interval = max(0., self.min_stop_interval - max_error)
|
||||||
|
|
Loading…
Reference in New Issue