aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/stepper.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2017-03-12 22:43:05 -0400
committerKevin O'Connor <kevin@koconnor.net>2017-03-13 00:38:17 -0400
commitd21b9280f029f1c65d3dac9310eb00090dd8c531 (patch)
treecc3b34c2ecc0b277470dfe567a40b144cb7c3174 /klippy/stepper.py
parent92649332ce1f4ad7445f5e97ee6d24c79eccece9 (diff)
downloadkutter-d21b9280f029f1c65d3dac9310eb00090dd8c531.tar.gz
kutter-d21b9280f029f1c65d3dac9310eb00090dd8c531.tar.xz
kutter-d21b9280f029f1c65d3dac9310eb00090dd8c531.zip
klippy: Eliminate high-level build_config phase
Now that the mcu objects can be created prior to connecting to the mcu, it is no longer necessary to separate the init and build_config phases in the high-level code. Move the mcu objection creation from the build_config phase to the init phase and eliminate the build_config phase. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/stepper.py')
-rw-r--r--klippy/stepper.py37
1 files changed, 15 insertions, 22 deletions
diff --git a/klippy/stepper.py b/klippy/stepper.py
index d696bbe7..6917afa9 100644
--- a/klippy/stepper.py
+++ b/klippy/stepper.py
@@ -8,10 +8,7 @@ import homing
class PrinterStepper:
def __init__(self, printer, config, name):
- self.printer = printer
- self.config = config
self.name = name
- self.mcu_stepper = self.mcu_enable = self.mcu_endstop = None
self.step_dist = config.getfloat('step_distance')
self.inv_step_dist = 1. / self.step_dist
@@ -36,32 +33,29 @@ class PrinterStepper:
endstop_accuracy * self.inv_step_dist))
if self.homing_endstop_accuracy >= self.homing_stepper_phases/2:
logging.info("Endstop for %s is not accurate enough for stepper"
- " phase adjustment" % (self.config.section,))
+ " phase adjustment" % (name,))
self.homing_stepper_phases = None
self.position_min = self.position_endstop = self.position_max = None
- if config.get('endstop_pin', None) is not None:
+ endstop_pin = config.get('endstop_pin', None)
+ step_pin = config.get('step_pin')
+ dir_pin = config.get('dir_pin')
+ mcu = printer.mcu
+ self.mcu_stepper = mcu.create_stepper(step_pin, dir_pin)
+ enable_pin = config.get('enable_pin', None)
+ if enable_pin is not None:
+ self.mcu_enable = mcu.create_digital_out(enable_pin, 0)
+ if endstop_pin is not None:
+ self.mcu_endstop = mcu.create_endstop(endstop_pin, self.mcu_stepper)
self.position_min = config.getfloat('position_min', 0.)
self.position_endstop = config.getfloat('position_endstop')
self.position_max = config.getfloat('position_max', 0.)
-
self.need_motor_enable = True
def set_max_jerk(self, max_halt_velocity, max_accel):
jc = max_halt_velocity / max_accel
inv_max_step_accel = self.step_dist / max_accel
- self.min_stop_interval = (math.sqrt(3.*inv_max_step_accel + jc**2)
- - math.sqrt(inv_max_step_accel + jc**2))
- def build_config(self):
- step_pin = self.config.get('step_pin')
- dir_pin = self.config.get('dir_pin')
- mcu = self.printer.mcu
- self.mcu_stepper = mcu.create_stepper(step_pin, dir_pin)
- self.mcu_stepper.set_min_stop_interval(self.min_stop_interval)
- enable_pin = self.config.get('enable_pin', None)
- if enable_pin is not None:
- self.mcu_enable = mcu.create_digital_out(enable_pin, 0)
- endstop_pin = self.config.get('endstop_pin', None)
- if endstop_pin is not None:
- self.mcu_endstop = mcu.create_endstop(endstop_pin, self.mcu_stepper)
+ min_stop_interval = (math.sqrt(3.*inv_max_step_accel + jc**2)
+ - math.sqrt(inv_max_step_accel + jc**2))
+ self.mcu_stepper.set_min_stop_interval(min_stop_interval)
def motor_enable(self, move_time, enable=0):
if enable and self.need_motor_enable:
mcu_time = self.mcu_stepper.print_to_mcu_time(move_time)
@@ -85,8 +79,7 @@ class PrinterStepper:
pos = self.mcu_stepper.get_mcu_position()
pos %= self.homing_stepper_phases
if self.homing_endstop_phase is None:
- logging.info("Setting %s endstop phase to %d" % (
- self.config.section, pos))
+ logging.info("Setting %s endstop phase to %d" % (self.name, pos))
self.homing_endstop_phase = pos
return 0
delta = (pos - self.homing_endstop_phase) % self.homing_stepper_phases