Enable Fan when 3D Printer is not idle (?)


My 3D printer uses RAMPS 1.4 and everything works smoothly with the Repetier Firmware.
I am using an E3D hot end and I have set its fan to be "thermistor controlled" so it gets enabled when the hot end temperature exceeds 50°.

The Fan is connected to the "Heater 2 Pin - Normally used for extruder 1" and ...
I would like to ask if I can enable this fan when the machine is "not idle" and by "not idle" I mean the machine is moving,
heating the hot end, heating the bed.. whatever...

Is that possible?

Thank you


  • You mean instead thermistor controlled idle controlled? No, that is not possible with current firmware and also makes not much sense for extruders requiring cooling. They do need it all the time not when not idle. For normal print this makes not much difference as you heat and pint and cool down. But when manually moving it would always go on for very short while. You can of course modify firmware to do that, but I see no reason to do that.
  • Yes. The main reason I would like to do that is that I have 2 fans.
    One Fan on the Hotend and one fan on the RAMPS plastic case. Both fans makes a lot of noise when they are working so I was thinking to have them both connected to the "Heater 2 Pin - Normally used for extruder 1" and enable them when the Machine is heating the bed or the hot end.

    Is that possible ?
  • edited February 2017
    To make it totally clear... I want to enable a fan that it is connected to the "Heater 2 Pin - Normally used for extruder 1" when the machine is Heating the Bed or the Hot-end or  heating both.

    Is that possible?

    Thank you for your help :)
  • Firmware has a board cooling fan that enables when motors are used (enabled to be exact) since it is the stepper driver you want to cool.

    Extruder hot is no problem. There is even a option for shared fan between extruders, but I think it excludes the bed. So fan on when bed gets heated is not included and was never needed.

    What you can do is put a fan on fan 2 (controlled with M106 P1) and controll fan manually but that might be also a bad idea if you heat up manually it will not enable automatically.
  • I am trying to make the change through the code. I can tell the code I need to change is in the HAL.cpp but I haven't figure out where exactly is it.
  • And one more question...

    Can the board cooling fan be shared with one thermistor controlled fan ?

    Thank you
  • Fan sharing is not implemented. Each fan is supposed to have one purpose. There is also a thermistor controlled fan option if you need to bind a fan to a thermistor. But that again is only one function to bind it. For some or conditions you have to write own code. You could misuse fan 2 for that as it is normally not used and you can set it easily to any value (M106 P1 S0-255 or Printer::setFan2SpeedDirectly(0-255); ). Use our event system to write some test in your own event e.g. 100ms timer and if condition is met turn it on or off.
Sign In or Register to comment.