Ability to turn pinned fans off with gcode

  • Currently if you pin a fan speed during a print, there is no way (afaik) to turn the fan off via gcode.

    For example, if I have pinned the fan speed to 100% for a difficult print, the fans keep running afterwards – long afterwards if I'm not around to tend things at end of print.

    Looking at the source, I see this is implemented in the DWC updateStatus(), so things would have to be rejiggered to implement this with gcodes (perhaps an override param to G106 and have pinning implemented in the firmware?).

    Or could (optionally?) un-pin on end of print via DWC code.

  • How did you turn on the fan? You can't add a "M106 S0" in the program ending g code? Also, an "H" parameter can set it up to watch a heater and if it cools down below a set temperature, it can turn off the fan automatically.

  • You can use M107 to turn the print fan off but this is deprecated so you should use M106 S0. https://duet3d.com/wiki/G-code#M107:_Fan_Off

  • The fan was originally turned on by the gcode of the print. I adjusted the speed and pinned it with the DWC UI. Once you press the pushpin there's no way to turn it off with gcode. M106 S0 gets ovverriden when the web client updates the fan speed in updateStatus()

    This is the code that does it:
    // Fan Control
    var newFanValue = (status.params.fanPercent.constructor === Array) ? status.params.fanPercent[0] : status.params.fanPercent;
    if (!fanSliderActive && (lastStatusResponse == undefined || $("#slider_fan_print").slider("getValue") != newFanValue)) {
    if ($("#override_fan").is(":checked") && settings.showFanControl) {
    sendGCode("M106 S" + ($("#slider_fan_print").slider("getValue") / 100.0));

    Another option would be to only do this override when a print is currently taking place.

  • Sorry, I don't understand. By "PushPin" do you mean the fan slider? If so, then I can adjust the fan using the slider and I can turn it off (or set any other speed) but entering an M106 Snn command via the console. During a print, this will of course be over ridden by any M106 commands that are in the gcode file of the object that you are printing.

  • I think he's talking about that pin:

  • That's what I thought but I can set it to anything I like and then use M106 S0 which works for me - hence the confusion.

  • I just tried that while not printing and you are right. But it also looks like the pinning does not work (anymore, or just not while idle) 😐

Log in to reply