I have wired in a new extruder with its own cooling fan and I tried to change the Marlin firmware to switch it on automatically above a specific temperature (50 °C). I did noting in the Configuration.h I changed a line in the Configuration_adv.h


#define EXTRUDER_0_AUTO_FAN_PIN   -1



as described in this article. But the fan is not starting when I bring the temperature above 50 °C (manually). However it starts if I switch the fan on manually from Repetier. Am I missing something? How do I control the fan automatically on FAN0 output when the temperature reached the set limit?

  • $\begingroup$ Maybe 8 is not the correct pin to turn on the fan for your board? Which board do you have, and what output is the fan connected to? $\endgroup$ Oct 17, 2016 at 10:13
  • $\begingroup$ I have a Rumba board. The fan is connected to Fan0 and the extruder to Extruder0. If I leave that line with -1 instead of 8 the fan does not even start manually therefore I assume that pin 8 is correct for such output. The issue is that does not start automatically as I said above. Something I have not said is that I am testing heating up the extruder manually (not printing, just heating it). $\endgroup$
    – FeliceM
    Oct 17, 2016 at 10:18
  • $\begingroup$ The auto fan functionality is separate from the manual control, so I don't understand why your setting here should affect the manual control. The primary fan on the Rumba board is on pin 7, and a secondary fan output is on pin 8. Perhaps setting it to 7 will work? You might need to remove the regular FAN_PIN define to make this work. $\endgroup$ Oct 17, 2016 at 10:20
  • $\begingroup$ @TomvanderZanden, sorry you are correct. Even if I set #define EXTRUDER_0_AUTO_FAN_PIN -1, the manual on/off from Repetier works. I tried then to set #define EXTRUDER_0_AUTO_FAN_PIN 7 but I get this error: #error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN. How do I solve this? $\endgroup$
    – FeliceM
    Oct 17, 2016 at 11:36

1 Answer 1


The RUMBA board has two fan outputs. The primary fan output is switched by pin 7, the secondary one by pin 8. The reason your fan is not working when you set #define EXTRUDER_0_AUTO_FAN_PIN 8 is because it's switching the secondary fan. If you switch the wires over to the secondary fan output it will work correctly.

If you do want to use the primary fan output then you can achieve this by setting #define EXTRUDER_0_AUTO_FAN_PIN 7 but you will need to search for the #define FAN 8 in the appropriate pins.h file and change 8 to something else (-1 or 7, for example).

I would recommend the first solution, because you should have a controllable print cooling fan, and an automatic extruder cooling fan.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .