override fan and ignore future changes



  • I had this as a plugin for octoprint and I can't find the darn thing, looks like I deleted it when I changed the SD card and forgot to up the darn thing to my gitlab 😞 .. anyhow would not do me much good with duet so..

    Is there a way to override fan speed but in a way that any future fan speed changes are ignored?

    rationale - I'm printing an object in PETG, both s3d and ideaMaker slice it with variable fan speed depending on the overhangs and layer size so for e.g. what I'm printing right now (some toy for a kid) in PETG fan switches between 30% and 65%, mostly hovering around 50%, and I run out of PETG, the next 2.6kg spool need to be carefully mounted few meters high so not something I wanna do during print pause nor after 30 hours of being awake so I'm looking for another solution. I'm looking at the 70% used up spool of PLA of similar color to that PETG. I know PLA will fuse nicely to the PETG, I just need to drop the print temp down to 210 after few layers and get the fan speed up to 80-100%... cool, I load the PLA, let it print, after 2 layers I drop the temp down to 210 everything works ok but fan is not listening to me. I change fan to 90%, few lines later it returns back to 30%, then jumps to 60% I up it manually to 100% few minutes later it drops back to 50% etc etc .. 'caus in the code I have non stop the fan speed changes that override what I slide in the DWC/PanelDue... So what I want is to set the part cooling fan to 90% or 100% or "whatever %" and let it be till the end of the print (so ignore what's in g-code) - OR, I want to set "multiplier" like with ezxtrusion/speed so I set x2 for e.g. and what was 30% becomes 60% and what was 50% and more becomes 100% ... bin searching the list of g-codes but I'm missing the one that can do this.. Is there a way or ?



  • @arhi The best I can think of is to use a macro and within that, use the L and/or X parameters with M106 to set the minimum (and/or maximum) fan speeds. These will set limits for any non-zero M106 value. Note the "non zero" because an M106 S0 will still turn the fan off, as will an M107.

    Edit. Thinking about it a bit more, how about a macro that will "unmap" the part cooling fan so that it is no longer linked to a tool? i.e. re-map the fan to be say fan 3 and simply have an M106 P3 Snn to set the speed. Any M106 commands in the gcode file will not then affect that fan.



  • I have never used filament change on the Duet, so I'm just guessing here...
    Is there not a .g file executed for a filament change? If so, you could modify to set up the fan speeds or do what @deckingman suggests, but only within that file instead of a macro.



  • @FelixH said in override fan and ignore future changes:

    I have never used filament change on the Duet, so I'm just guessing here...
    Is there not a .g file executed for a filament change? If so, you could modify to set up the fan speeds or do what @deckingman suggests, but only within that file instead of a macro.

    For info, if there is a "filament.g" file it will pretty much by definition, be a macro. Just as homing files are macros, albeit residing in the .sys directory rather than the macros directory. So for sure, editing an existing macro or creating a new one would achieve the same result.



  • @deckingman yeah, min value would work, that's an awesome idea, will try it out!

    I was thinking about the "unmap" and "map to a different one" but was trying to find something less "destructive" 😄 like the min/max, I think that will do exactly what I want :), I just up the min to 80% and my print will survive :). Looking at today's print, how big a difference in surface quality between non-dried PETG and "kept in drybox" PLA, crazy..

    @FelixH it's not "change filament" per se. I did not call any change filament macro. The printer pauses print because filament monitor detects "low" (none in this case) movement so pauses the print. From there I manually go to extrusion control, retract the remaining filament, feed in new one through the tubing (one tube from box to the filament monitor, next from filament monitor to the printer) and extrude that new filament, clean the ooze and click resume.. a replace filament macro I never made/tested, I should but..


Log in to reply