Fan Control, BLTouch, dual extruders, RAMPS1.4-6


I have a RAMPS setup with a Prusa I3 clone for years.  I decided to add second extruder and used thingiverse thing number 3160905
Which adds a second extruder, hotend, BLTouch, separate part cooling fans.  This uses my D8, D9, D10 outputs of course..  Typical setup, RepRap Full Graphics Display with SD Card enabled (Octoprint), X, Y, Z, E0, E1 connected to their respective pins.  Min endstops for X, Y, and Z.   BLTouch using ZMAX_PIN.   Temp sensors using their respective pins.

I guess now what I need is 5 PWM pins and appreciate some help.  I am getting compiling errors after using the awesome configuratior enabling ""
1 for bltouch  (assuming BLTouch is supported?)  -- Needs servo control..?
1 for hotend fan 1
1 for part-cooling fan 1
1 for hotend fan 2
1 for part-cooling fan 2

Slicers don't seem to support multiple part-cooling fans.. It seems the firmware has to switch between the part-cooling fans depending on which extruder is active..  Of course!   I think they accomplish this somehow using the fan multiplexer that uses the server pins, but you get 2 fans and no servos, because of they way the add-on board was designed.   I have this add-on board but am not using it because of issues trying to get fans working with another firmware..  Hoping Repetier is able to save me.

My fans are using mosfets, not directly connected to gpio pins of course.   I am able to move them to any pins that are available.

Thank you!


  • Yes, slicers only support one cooling fan so having one for both fans is the typical solution.

    Only V2 firmware supports what you want - mapping unnamed fan to active extruder cooling fan. But that version currently does not support 8 bit processors.

    For V1 this is not included as it is not configurable. You can easily tweak this in Commands.cpp if you check M106/M107 implementation. If P is missing set it simply to the active extruder id.

    Might still cause issues with slicers as they might not resend fan command on extruder switch so the old one just keeps running. So maybe best is to also hack T selection and move fan setting from old active to next active.
  • edited March 2019
    Thank you for taking the time to reply to my issue.

    Does V2 firmware do the part-cooling fan switching with extruder OK?

    Where are we at with 16 bit boards?  I have an Arduino Due and I think it is a RADDS board, but heard the board has issues.   Also have a Duet Ethernet board.  

    Or did we skip 16 bit and go straight to 32 bit?

  • I see there are many options...  RAMPS-FD    SMART-RAMPS    Smoothie ...   I will try a smart ramps w/Due as it will fit the same footprint as the ramps 1.4 and a 2560.   Couple weeks for delivery.

  • Only due based boards work with V2. Development is using a RADDS board so that would be first choice.

    Switching is untested and the overtake of active value to other fan is not implemented. That is something I thought about during this discussion knowing that slicers only add M107 on value changes.
  • Cura (at least 4.0) is supporting multiple part cooling fans and it's working with repetier this way. :D
    In my edition I need one hotends cooler for Chimera dual extruder with divided fan tube and one fixed cooler for extruder.
  • That is why every extruder can have 2 fans. One for extruder cooling (heat break, cooling zone). Set with COOLER_PIN I think it was named. And the regular fan controlled with M106 for filament cooling.
Sign In or Register to comment.