Cannot set firmware to control HEATER_2_PIN as extruder cooling

edited October 17 in Extruder & Bed

First off, I love using Repetier, I like interface and the 'workflow', I can slice and run things remotely, and it generally just gets on with it. Well Done!

However...After repeated attempts to go through the online configurator, download the full firmware, compile and upload (on Arduino), I still can't get the firmware to control the HEATER_2_PIN as the extruder filament (J-head) cooler. It constantly uses the build cooling fan (FAN_PIN?). It 'works' as want it to, enabling the fan at 40° C, but it's doing it on the 'standard' fan, not HEATER_2_PIN as I've (supposedly) asked it to in the configurator. To clarify, I'm expecting this to use the E1 heater output as a fan control.

As a sub point, I can't find anywhere in the downloaded files where it sets anything for FAN_PIN, except in pins.h, where it seems to set ORIG_FAN_PIN to many differing settings. I'm no code buff tho, so probably missing something.

My setup is a HICTOP I3 with original m/board, broken E0 output (I think I fried it pulling too hard on some less than free running filament) so 'mirroring' to E1, running Repetier Host on RPi. I changed to a POLOLU swappable head, hence the need to play with firmware (not my interest area at all) for the E stepping and the extra fan.

I also can't get the extruder temperature control to play nice, it constantly overshoots by ~40°, so I had to turn off the Decoupling test. I'm pretty sure this is an incorrect temp probe selected (chosen 'standard' 100k NTC 3950), so this is probably my fault.

Please can anyone offer some insight, I'm already bald enough? :)


  • Fan pin is set in features. Select there no pin if you do not want to use a fan. Defaults to ORIG_FAN_PIN.
    For some boards like RAMPS fan pin and HEATER_2_PIN are identical. SO make sure only one function is using the pin or firmware gets confused and result is not as expected. In all selectors you can also always select the real arduino pin id Dx instead of symbolic name coming from boards definition.
  • Thankyou for the reply. I'm not sure I'm being clear though - I do want to use a fan, I want to use the 'standard' FAN_PIN to cool the print when it needs it (specified by the gcode?). I want to use another fan to cool the extruder, my choice was to use HEATER_2_PIN (the one supposedly used for the 2nd extruder heater, called E1 on my m/board) but controlled by the temperature reading taken from the extruder (E0, TEMP_0_PIN). It looks like this can be chosen in the configurator, but are you saying that I need to pick another heater pin? How can both the standard fan and the second heater be on one pin?

    Does anyone know which pin should be chosen for E1 on a HICTOP RAMPS m/board?
  • RAMPS has one 3 heater outputs. Bed and 2 lower powered. One is used for extruder and second can be used either for a fan or for a second extruder. So in board definition they have same pin id but of course only one function should use the pin. There are ramps variants with a 4th output for a fan, but that is not the  Otherwise you need a fan extender to add more then one fan. In both cases you enter the digital pin id in the function - so set cooler pin id to the pin where it is connected and fan pin to the id where you connected that one. See pinout of your board for the numbers.

    For original RAMPS it looks like this
    #define ORIG_FAN_PIN 9
    #define HEATER_0_PIN 10
    #define HEATER_1_PIN 8
    #define HEATER_2_PIN 9

    The MPX3 board (38 RAMSP compatible) has these pins:
    #define HEATER_1_PIN 8
    #define FAN_PIN 9
    #define HEATER_0_PIN 10
    #define HEATER_2_PIN 7
Sign In or Register to comment.