Skip to content

Commit

Permalink
allow multiple current helpers per rail
Browse files Browse the repository at this point in the history
  • Loading branch information
bwnance committed Jan 3, 2024
1 parent 5f342e1 commit 635bab7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
26 changes: 18 additions & 8 deletions klippy/extras/homing.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,10 +259,15 @@ def _set_current_homing(self, homing_axes):
affected_rails = affected_rails | set(partial_rails)

for rail in affected_rails:
ch = rail.get_tmc_current_helper()
if ch is not None and ch.needs_home_current_change():
ch.set_current_for_homing(print_time)
self.toolhead.dwell(ch.current_change_dwell_time)
chs = rail.get_tmc_current_helpers()
dwell_time = None
for ch in chs:
if ch is not None and ch.needs_home_current_change():
if dwell_time is None:
dwell_time = ch.current_change_dwell_time
ch.set_current_for_homing(print_time)
if dwell_time:
self.toolhead.dwell(dwell_time)

def _set_current_post_homing(self, homing_axes):
print_time = self.toolhead.get_last_move_time()
Expand All @@ -273,10 +278,15 @@ def _set_current_post_homing(self, homing_axes):
affected_rails = affected_rails | set(partial_rails)

for rail in affected_rails:
ch = rail.get_tmc_current_helper()
if ch is not None and ch.needs_home_current_change():
ch.set_current_for_normal(print_time)
self.toolhead.dwell(ch.current_change_dwell_time)
chs = rail.get_tmc_current_helpers()
dwell_time = None
for ch in chs:
if ch is not None and ch.needs_home_current_change():
if dwell_time is None:
dwell_time = ch.current_change_dwell_time
ch.set_current_for_normal(print_time)
if dwell_time:
self.toolhead.dwell(dwell_time)

def home_rails(self, rails, forcepos, movepos):
# Notify of upcoming homing operation
Expand Down
7 changes: 6 additions & 1 deletion klippy/stepper.py
Original file line number Diff line number Diff line change
Expand Up @@ -425,10 +425,12 @@ def __init__(
self.endstop_map = {}
self.add_extra_stepper(config)
mcu_stepper = self.steppers[0]
self._tmc_current_helpers = [
s.get_tmc_current_helper() for s in self.steppers
]
self.get_name = mcu_stepper.get_name
self.get_commanded_position = mcu_stepper.get_commanded_position
self.calc_position_from_coord = mcu_stepper.calc_position_from_coord
self.get_tmc_current_helper = mcu_stepper.get_tmc_current_helper
# Primary endstop position
mcu_endstop = self.endstops[0][0]
if hasattr(mcu_endstop, "get_position_endstop"):
Expand Down Expand Up @@ -507,6 +509,9 @@ def __init__(
% (config.get_name(),)
)

def get_tmc_current_helpers(self):
return self._tmc_current_helpers

def get_range(self):
return self.position_min, self.position_max

Expand Down

0 comments on commit 635bab7

Please sign in to comment.