aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--klippy/mcu.py19
-rw-r--r--klippy/stepper.py4
2 files changed, 14 insertions, 9 deletions
diff --git a/klippy/mcu.py b/klippy/mcu.py
index 72db5581..a192226a 100644
--- a/klippy/mcu.py
+++ b/klippy/mcu.py
@@ -40,7 +40,7 @@ class MCU_endstop:
self._oid, self._pin, self._pullup, len(self._steppers)))
self._mcu.add_config_cmd(
"endstop_home oid=%d clock=0 sample_ticks=0 sample_count=0"
- " rest_ticks=0 pin_value=0" % (self._oid,), is_init=True)
+ " rest_ticks=0 pin_value=0" % (self._oid,), on_restart=True)
for i, s in enumerate(self._steppers):
self._mcu.add_config_cmd(
"endstop_set_stepper oid=%d pos=%d stepper_oid=%d" % (
@@ -412,8 +412,9 @@ class MCU:
self._printer.lookup_object('pins').register_chip(self._name, self)
self._oid_count = 0
self._config_callbacks = []
- self._init_cmds = []
self._config_cmds = []
+ self._restart_cmds = []
+ self._init_cmds = []
self._pin_map = config.get('pin_map', None)
self._mcu_freq = 0.
# Move command queuing
@@ -495,10 +496,9 @@ class MCU:
pin_resolver = ppins.get_pin_resolver(self._name)
if self._pin_map is not None:
pin_resolver.add_pin_mapping(mcu_type, self._pin_map)
- for i, cmd in enumerate(self._config_cmds):
- self._config_cmds[i] = pin_resolver.update_command(cmd)
- for i, cmd in enumerate(self._init_cmds):
- self._init_cmds[i] = pin_resolver.update_command(cmd)
+ for cmdlist in (self._config_cmds, self._restart_cmds, self._init_cmds):
+ for i, cmd in enumerate(cmdlist):
+ cmdlist[i] = pin_resolver.update_command(cmd)
# Calculate config CRC
config_crc = zlib.crc32('\n'.join(self._config_cmds)) & 0xffffffff
self.add_config_cmd("finalize_config crc=%d" % (config_crc,))
@@ -512,6 +512,9 @@ class MCU:
self._name)
for c in self._config_cmds:
self._serial.send(c)
+ else:
+ for c in self._restart_cmds:
+ self._serial.send(c)
# Transmit init messages
for c in self._init_cmds:
self._serial.send(c)
@@ -612,9 +615,11 @@ class MCU:
return self._oid_count - 1
def register_config_callback(self, cb):
self._config_callbacks.append(cb)
- def add_config_cmd(self, cmd, is_init=False):
+ def add_config_cmd(self, cmd, is_init=False, on_restart=False):
if is_init:
self._init_cmds.append(cmd)
+ elif on_restart:
+ self._restart_cmds.append(cmd)
else:
self._config_cmds.append(cmd)
def get_query_slot(self, oid):
diff --git a/klippy/stepper.py b/klippy/stepper.py
index ad3a6006..a2e31c61 100644
--- a/klippy/stepper.py
+++ b/klippy/stepper.py
@@ -76,8 +76,8 @@ class MCU_stepper:
self._oid, self._step_pin, self._dir_pin,
self._mcu.seconds_to_clock(min_stop_interval),
self._invert_step))
- self._mcu.add_config_cmd(
- "reset_step_clock oid=%d clock=0" % (self._oid,), is_init=True)
+ self._mcu.add_config_cmd("reset_step_clock oid=%d clock=0"
+ % (self._oid,), on_restart=True)
step_cmd_id = self._mcu.lookup_command_id(
"queue_step oid=%c interval=%u count=%hu add=%hi")
dir_cmd_id = self._mcu.lookup_command_id(