1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Gradually increasing fan speed #marlin

Discussion in 'Mods and Upgrades' started by TomerO, Jul 5, 2016.

  1. TomerO

    TomerO Member

    Joined:
    May 2, 2016
    Messages:
    97
    Likes Received:
    48
    Background (to why I did this, you can skip this and go to the next section if you want):
    Since I upgraded to E3D v6 and change the fan ducts to some variation of @Marquis Johnson design my fans began to work way better and, sadly, drop the temp of the extruder and make my prints fail :(

    I noticed that proximity to the build surface/flat models has a big effect and also that the hotend CAN stand the cooling, it just takes it time to adjust and in that time the temp drops too much and the printer stops.

    I began by setting my slicer to increase the fan speed in steps by the height from the platform, but that also causes fails sometimes when the build is big and flat.

    so...

    My mod
    If you don't already know, I created a github repo with my version of the marlin firmware (based on RC6 for now). It can be found here: https://github.com/tomerorian/Marlin/tree/robo3d-tomer

    What I did was to add some code to gradually increase the fan speed to the desired speed while taking the hotend temperature(s) into consideration.

    Enabling this feature will change the M106 command (or any command changing the fan speed) to increase the speed gradually by definable jumps and intervals while making sure that the extruder temperature is not above or below a certain threshold.

    This should help because of 2 things:
    1. Gradual change in fan speed gives the extruder time to adjust hence smaller temp drops
    2. If the temperature drops beneath/raise above the threshold the fans will stop changing speed until the threshold is met again.

    Relevant params in Configuration.h
    Code:
    // Uncomment if you want the the fans speed to change gradually to save the temp in a given range
    #define FAN_TEMP_SAFE_CHANGE
    
    // Amount of degrees of variation (both up and down)
    #define FAN_TEMP_SAFE_CHANGE_DEGREE_VARIATION 5
    
    // Amount to increase / decrease between checks
    #define FAN_TEMP_SAFE_CHANGE_SPEED_JUMPS 10
    
    // Time between fan speed changes (millis)
    #define FAN_TEMP_SAFE_CHANGE_SPEED_FREQ 1000
    This is not yet a fully tested feature and it might contain lots of bugs (especially if you have multiple extruders since I can't check that).
    Let me know if you find any.

    I'm also open for suggestion, ideas, comments etc...

    Have a nice day,
    Tomer.
     

Share This Page