aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/tmc2208.py
diff options
context:
space:
mode:
Diffstat (limited to 'klippy/extras/tmc2208.py')
-rw-r--r--klippy/extras/tmc2208.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/klippy/extras/tmc2208.py b/klippy/extras/tmc2208.py
index 85806924..f312c205 100644
--- a/klippy/extras/tmc2208.py
+++ b/klippy/extras/tmc2208.py
@@ -248,7 +248,7 @@ class TMC2208:
self.printer = config.get_printer()
self.name = config.get_name().split()[-1]
self.printer.register_event_handler("klippy:connect",
- self.handle_connect)
+ self._init_registers)
# pin setup
ppins = self.printer.lookup_object("pins")
rx_pin_params = ppins.lookup_pin(
@@ -267,11 +267,14 @@ class TMC2208:
self.oid = self.mcu.create_oid()
self.tmcuart_send_cmd = None
self.mcu.register_config_callback(self.build_config)
- # Add DUMP_TMC command
+ # Add DUMP_TMC, INIT_TMC command
gcode = self.printer.lookup_object("gcode")
gcode.register_mux_command(
"DUMP_TMC", "STEPPER", self.name,
self.cmd_DUMP_TMC, desc=self.cmd_DUMP_TMC_help)
+ gcode.register_mux_command(
+ "INIT_TMC", "STEPPER", self.name,
+ self.cmd_INIT_TMC, desc=self.cmd_INIT_TMC_help)
# Setup basic register values
self.ifcnt = None
self.regs = collections.OrderedDict()
@@ -311,7 +314,8 @@ class TMC2208:
cmd_queue = self.mcu.alloc_command_queue()
self.tmcuart_send_cmd = self.mcu.lookup_command(
"tmcuart_send oid=%c write=%*s read=%c", cq=cmd_queue)
- def handle_connect(self):
+ def _init_registers(self):
+ # Send registers
for reg_name, val in self.regs.items():
self.set_register(reg_name, val)
def get_register(self, reg_name):
@@ -372,6 +376,11 @@ class TMC2208:
msg = self.fields.pretty_format(reg_name, val)
logging.info(msg)
gcode.respond_info(msg)
+ cmd_INIT_TMC_help = "Initialize TMC stepper driver registers"
+ def cmd_INIT_TMC(self, params):
+ logging.info("INIT_TMC 2208 %s", self.name)
+ self.printer.lookup_object('toolhead').wait_moves()
+ self._init_registers()
def load_config_prefix(config):
return TMC2208(config)