Jump to content

TMC Drivers: Report OTPW


therm_virtual0y

Recommended Posts

Yesterday, I noticed a yellow warning in Mainsails notifications.  I clicked on it and it said TMC Drivers: Report OTPW.  I looked it up and it is a TMC driver over temp waring before shutdown.  I was mid print so just turned on the electronics fans (so noisy) and it went away.  after the print iI checked all the drivers and they seem to be seated ok and all the terminations are tight.  My belts are a good tension and not too tight.  The problem is that you have to manually trigger Dump_TMC in the consol to see what driver stepper is having issues.  Of course, I didn't know this when I was staring at the warning, but only after.  I have seen the temp pop of 1 other time after that but I was not fast enough to trigger the dump.

Is there a way to use Moonraker or Gcode to trigger Dump_TMC so I don't have to try and catch the fault?  I am also checking Discord and will post any findings here also.  I have the macro built and it works to list all the TMC driver states but its in Hex iI think so need to create a lookup or something to decipher.  

thought this might be some brain food some someone.  I'm down the rabbit hole

Link to comment
Share on other sites

 

here is the gcode_macro i want to trigger.  This way i can see what stepper is the issue.

 

[gcode_macro TMC_ALL]
description: "Dump all TMC drivers and highlight overtemp"
gcode:
    {% set steppers = [
        "stepper_x", "stepper_y", "stepper_z",
        "stepper_z1", "stepper_z2", "stepper_z3",
        "extruder"
    ] %}

    RESPOND MSG="==== TMC CHECK START ===="

    {% for s in steppers %}
        {% set msg = "--- Checking " ~ s ~ " ---" %}
        RESPOND MSG="{msg}"

        DUMP_TMC STEPPER={s}

        {% set tmc_key = "tmc2209_" ~ s %}
        {% if tmc_key in printer %}
            {% set drv = printer[tmc_key] %}

            {% if drv.driver_overtemp %}
                {% set warn = "!!! " ~ s ~ " OVER TEMP !!!" %}
                RESPOND MSG="{warn}"
            {% elif drv.driver_otpw %}
                {% set warn = "*** " ~ s ~ " OVER TEMP WARNING (OTPW) ***" %}
                RESPOND MSG="{warn}"
            {% endif %}
        {% endif %}
    {% endfor %}

    RESPOND MSG="==== TMC CHECK END ===="

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...