aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2021-02-28 16:44:03 -0500
committerKevin O'Connor <kevin@koconnor.net>2021-02-28 16:44:03 -0500
commitc9b81e698e509d31527727e2b05f7036fe201997 (patch)
tree3df939320ee7c1fc08086bb4b56dad8175f38ea0 /klippy/extras
parenta1a7b5e480a18118362f57bd16e2e8a8cbc5bcf2 (diff)
downloadkutter-c9b81e698e509d31527727e2b05f7036fe201997.tar.gz
kutter-c9b81e698e509d31527727e2b05f7036fe201997.tar.xz
kutter-c9b81e698e509d31527727e2b05f7036fe201997.zip
tmc: Allow more retries on a TMC UART read error during background checks
Allow three retries if we can't contact the TMC driver at all when it is in UART mode. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/tmc.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/klippy/extras/tmc.py b/klippy/extras/tmc.py
index 6d6e765b..11073e40 100644
--- a/klippy/extras/tmc.py
+++ b/klippy/extras/tmc.py
@@ -109,7 +109,16 @@ class TMCErrorCheck:
last_value, reg_name, mask, err_mask = reg_info
count = 0
while 1:
- val = self.mcu_tmc.get_register(reg_name)
+ try:
+ val = self.mcu_tmc.get_register(reg_name)
+ except self.printer.command_error as e:
+ count += 1
+ if count < 3 and str(e).startswith("Unable to read tmc uart"):
+ # Allow more retries on a TMC UART read error
+ reactor = self.printer.get_reactor()
+ reactor.pause(reactor.monotonic() + 0.050)
+ continue
+ raise
if val & mask != last_value & mask:
fmt = self.fields.pretty_format(reg_name, val)
logging.info("TMC '%s' reports %s", self.stepper_name, fmt)