In this Instructable I'll demonstrate how to install and configure Reprap Ramps1.4 RRD Fan Extender to make it possible to add a temperature controlled fan for your extruder (hotend) and a fan to cool your drivers on the Ramps board only when a driver is actually active. We will retain the ability to control the D9 fan using LCD or the M106 Gcode for the printer-bed as standard.
I am using the newest (As of 20th may 2015) iteration of Marlin firmware and run it on an Arduino Mega + Ramps board configured as EFB (Extruder D10, Fan D9, Bed D8).
Why make this instructable?
I bought the extender and found it really hard to find some usefull information, where most of the information was old and dreprecated and also had various degrees of errenous info like wrong pin numbers. All info I found entailed using the extender in a two-extruder scenario meaning disabling the controllable D9 fan, which I did not want to do.
To compound the issues most "guides" assumped you were fluent in marlin firmware and gcodes, which I certainly am not!
What you will need:
You will obviously need the Reprap Ramps1.4 RRD Fan Extender, which can be found multiple Places. One of them is on ebay. There is really no money saved by buying in china, so buy locally if possible. Pay attention to the fans included if any. One of my fans didn't Work, so seller is sending a new one - just undelineing the need to buy locally!
Foreword on pins used in this instructables:
According to the Ramps 1.4 schematics, the Fan Extender is placed over the Ramps servo-pins which has the pins D11, D6, D5 and D4, listed from the top left (with powerplug to the left). I'm mentioning this, as it seems different Fan Extenders are using different pins.
My version is White, and has no versioning numbers or text on it. I use Pin 4 and 6, but yours might be different.
Step 1: Physically Installing the Reprap Ramps1.4 RRD Fan Extender
Be sure to turn all power off your printer. That means remove both the power and usb cords.
Now take a close look at the small Extender board. There should be some tiny + and - symbols on it. I say this, as the image from Geetech is wrong - at least my extender board has the input pins in reverse.
The small extender goes on the grouping of pins right next to the reset button - this grouping is the Servos Aux-1 pins. It can only be installed in one direction - see images for details.
Now install the power-wire on the 12V-aux pins (see images for detail). When you have the green power-connector on the Ramps board to your left, the pins are oriented with 12v on top and Gnd beneath it. Ideally you want to verify this with a multiemeter.
When the extender board is installed on Ramps, and in same orientation as above, the 12v goes to the top pin on the extender board. There should be a tiny + to show it. The image from Geetech has this cable installed in reverse!
If you do not have all the pins needed on your Ramps board, you can solder them on yourself.
The power can be sourced from somewhere else. You can use 5v instead if you like.
Step 2: Configuring Marlin Firmware
I'm using the Ramps board "MOTHERBOARD BOARD_RAMPS_13_EFB" which Means Extruder D10, Fan D9 and Bed D8
In order to control the fan on D9, which is used for printerbed, you will need to use the M106 and M107 codes. If you have an LCD display this particular fan is automatically added to it. We retain this function.
Either scroll Down or hit Ctrl+f and search for CONTROLLERFAN_PIN
It is disabled as default. Change the Pin from -1 to 5 as shown in the image.
Define for how many seconds the fan should run after the last motor activity and set the speed your fan should go.
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN 5 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 200 // Change to 255 for full speed
Extruder cooling fans
Just below the Controller fan option you will find the section for the Extruder autofan.
Change the -1 to 4 after EXTRUDER_0_AUTO_FAN_PIN as shown in the image.
#define EXTRUDER_0_AUTO_FAN_PIN 4
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 200 // Use 255 for full speed
You might also want to specify the temperature where the fan starts and stops. I use 50c and you can define how fast your fan should go. I have set mine to 200. Don't dial this too far down for obvious reasons.
Addendum to FAN_PIN 4 if you use EEB (2 extruders) on Ramps (26.11.2015)
If you use 2 Extruders on Ramps, PIN 4 is automatically assigned printfan - the fan you would have connected to PIN 8 and control from your LCD.
It means you can control it using your LCD with a fan extender without configuring its pin seperately.
It also Means you can not assign PIN4 to anything if you use 2 extruders on Ramps!
That's it. Now upload your firmware to your printer and continue to next step to verify it all Works.
Step 3: Verify Our Fan Settings Works As Intended.
Test the printer-bed fan as normally using your display or the M106/M107 codes.
Test Controller fan
Simply move one of your axes and see how the fan starts up. Make sure it stops after the timeperiod you defined.
You can also control it using the M42 gcode. We have the Controllerfan on pin 5, so the code to activate it full speed would be:
M42 P5 S255
Turn it off using M42 P5 S0 or set it to something in the middle using M42 P5 S127
Test Extruder fan
Either use your LCD or the M109 gcode to set the temperature at 50 for our fan to start:
You can also controll the Extruder fan using the same M42 gcode as with the Controller fan. Only replace the Pin to pin 4 instead of 5:
M42 P4 S255