Jump to content
UltiMaker Community of 3D Printing Experts

Fan "Kick" Start


Recommended Posts

Posted · Fan "Kick" Start



I'm printing a lot with low fan speed settings. (15%-20%)


At these speeds the fans won't automatically start without been given a "nudge"


Is there an easy way, say through a plugin(?) to add a 100% kick briefly to the fan to get it started and then once started revert back to 15%?

If not, could I suggest this be added to Cura as a tick box?


(Cura 4.1 & Ultimaker 2+ with custom fan shroud)

  • Link to post
    Share on other sites

    Posted · Fan "Kick" Start

    This would be a good plugin.  It's pretty simple.  Each time there is a fan speed change already in the gcode, if it's less than X% then go to 100% for 1/2 second then to that goal speed.


    This feature is ALREADY IN MARLIN except it only does this when going from off to on.  It should do it for every speed change.  The problem is that by default cura does 0% fan for the first layer then increases the fan (typically 1/5) for each layer until at "full" speed.  If "full" speed is 15% then it will do 3% for second layer, 6% for third and so on.  So it never triggers the built in "kick start" feature in Marlin.  Well it triggers it for the 3% speed but then the fan typically stops anyway and doesn't trigger it for the remaining.


    Ideally this should be fixed in Marlin.


    Now for the UM3 and S5 the fans have built in tachometers and they don't need any kickstarting.  So UM Cura programmers may put this feature request as a low priority.  But it's not hard to write yourself.   Look at the example cura plugins - it's really very simple to modify one.  You want the simplest type of plugin: "post processing plugins".

  • Link to post
    Share on other sites

    Posted · Fan "Kick" Start

    Actually it's hard to go backwards in gcode (edit a previous line once you find a fan speed change).  and you don't want to delay a whole half second as it will create a blob at the fan change spot.


    So instead I would replace the fan speed to 100% but remember the value, then after 15 more G1 codes have occurred I would insert the original fan gcode back in.


    In other words no delay/sleep/wait gcode (whatever it's called).


    G1 codes are extruding moves and each move will take a little time.


  • Link to post
    Share on other sites

    Posted (edited) · Fan "Kick" Start

    if it's less than X% then go to 100% for 1/2 second then to that goal speed.


    Yep! 🙂


    Thanks for your reply and Marlin explanation. I guess that makes it trickier to incorporate into Cura. Hmmm... shame as having that in Cura would be ideal, not just for us UM2 "oldies" but generally as well to benefit other makes of printers possibly? 😉


    I did start earlier today looking at "how to write your own plugin" thanks for the hint to the examples and in particular "post proessing plugins" I'll see how I go with it.


    In another post about fan speed I found "M106 S255 P0" - from what I understand, this in Gcode means  "Fan 0 100%" so I think I now have my first step of what to look for and what it should be briefly modified to for a "kick" start.


    From what you say, I'm guessing the sequence for this "post processor" then needs to be something like  -


    1. Read in all the gcode

    2. Search for M106.

    3. Read and store that entire line

    4. Replace that line with "M106 S255 P0"

    5. Count 15 or so lines further on (as per your suggestion)

    6. Insert stored line in there

    7. Write out the amended gcode to a new file.


    I think the programming language is "python like" or actually Python. Not something I have a lot of knowledge of.

    So it's going to be a bit up hill. But I'm up for giving it a go!


    Downloaded https://github.com/nallath/PostProcessingPlugin




    Edited by chrisr
  • Link to post
    Share on other sites

    Posted · Fan "Kick" Start

    Your pseudo code is good but you don't have to worry about step 1 and 7.


    You need to literally pick an existing plugin and locate where the file is physically located and open up that file and copy it so you can edit it.  You only need to add maybe 4 lines of code and modify one or two lines.  Plus alter the name of the plugin.


    Yes, it's python.


  • Link to post
    Share on other sites

    Posted · Fan "Kick" Start

    Could'nt you just put at fan stop right before speed change and then a fan start with Blip-time 2 s or something like that? 



  • Link to post
    Share on other sites

    Posted · Fan "Kick" Start

    we neeeed this plugin i have a theory that the fan not spinning at these low speeds is bad for the fans. i think it builds up heat in the coil and slowly cooks


  • Link to post
    Share on other sites

    Posted · Fan "Kick" Start

    So write it?  Start with an existing plugin and it will be very little code that you need to add to the plugin.  Maybe you have a friend who knows a little bit about programming - they don't need to know Python as this change is pretty minor.


    My Ultimaker Original fan wouldn't turn on until around 25%.  So I've printed hours in this state where the fan speed is too slow to actually turn the fan.  Never damaged my fan.  This doesn't disprove your theory - it's still an interesting theory to me.


    But doing full power and then lowering to the new fan speed is not going to always spin up the fan.  You might have to wait for the next layer where the fan speed is higher.


    Most printers use Marlin and Marlin has a feature that if you go from say 0% fan to 20% fan it does 100% fan first for just a short period (maybe 100ms) and then down to the 20%.  But if you go from 19% to 20% many version of Marlin don't do that extra boost.  But that's an easy firmware fix that I assume is in the main code of Marlin by now.


    Ultimaker printers since the UM3 (including S5 and S3 printers) will run just fine at 1% (probably even at 0.3% fan).  This is not a firmware fix - this is a strangely "smart" fan with complicated electronics in it.  Probably cheaper to make a fan with a tiny computer in it than without.

  • Link to post
    Share on other sites

    Posted · Fan "Kick" Start


    The Search and Replace plugin will accept newline characters in the "Replace" box.

    If you were to have "Initial Fan Speed" at 15% and the regular fan speed at 16% (something different) then within the search and replace dialog:

           Search for:  M106 S38.3

           Replace: M106 S255\nG4 S2\nM106 S38.3

    That results in this:


           M106 S38.3 ;initial fan at 15%

    being changed to this:

           M106 S255 ;fan to 100%
           G4 S2 ;Dwell for 2 seconds
           M106 S38.3 ;Fan to 15%


    Bear in mind that every occurrence of M106 S38.3 in the file will be changed, not just the first one.

    At any rate maybe there is something you can do with that.

  • Link to post
    Share on other sites

    Posted · Fan "Kick" Start

    The UM2(+) firmware is open source. Best place is to make the change there; simpler to change than writing a Cura plugin and also more effective.
    Building the software isn't difficult, it's just an Arduino project.



    Create a pull request with your modifications and I can add it to this repository.

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    • Our picks

      • Here it is. The new UltiMaker S7
        The UltiMaker S7 is built on the success of the UltiMaker S5 and its design decisions were heavily based on feedback from customers.
        So what’s new?
        The obvious change is the S7’s height. It now includes an integrated Air Manager. This filters the exhaust air of every print and also improves build temperature stability. To further enclose the build chamber the S7 only has one magnetically latched door.
        The build stack has also been completely redesigned. A PEI-coated flexible steel build plate makes a big difference to productivity. Not only do you not need tools to pop a printed part off. But we also don’t recommend using or adhesion structures for UltiMaker materials (except PC, because...it’s PC). Along with that, 4 pins and 25 magnets make it easy to replace the flex plate perfectly – even with one hand.
        The re-engineered print head has an inductive sensor which reduces noise when probing the build plate. This effectively makes it much harder to not achieve a perfect first layer, improving overall print success. We also reversed the front fan direction (fewer plastic hairs, less maintenance), made the print core door magnets stronger, and add a sensor that helps avoid flooding.

        The UltiMaker S7 also includes quality of life improvements:
        Reliable bed tilt compensation (no more thumbscrews) 2.4 and 5 GHz Wi-Fi A 1080p camera (mounted higher for a better view) Compatibility with 280+ Marketplace materials Compatibility with S5 project files (no reslicing needed) And a whole lot more  
        Curious to see the S7 in action?
        We’re hosting a free tech demo on February 7.
        It will be live and you can ask any questions to our CTO, Miguel Calvo.
        Register here for the Webinar
          • Like
        • 12 replies
      • UltiMaker Cura 5.3.0-Alpha 🎄 Tree Support Spotlight 🎄
        Are you a fan of tree support, but dislike the removal process and the amount of filament it uses? Then we would like to invite you to try this special release of UltiMaker Cura. Brought to you by our special community contributor @thomasrahm
        We generated a special version of Cura 5.2 called 5.3.0 Alpha + Xmas. The only changes we introduced compared to UltiMaker Cura 5.2.1 are those which are needed for the new supports. So keep in mind, this is not a sneak peek for Cura 5.3 (there are some really cool new features coming up) but a spotlight release highlighting this new version of tree supports.  
          • Like
        • 17 replies
      • New here? Get ahead with a free onboarding course
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 14 replies
    • Create New...