I wanted to add a cooling fan to my Prusa i3. The board used by this printer is an MKS GEN L v1.0, such as this one:

MKS GEN L V1.0 board overview

The cooling fan plug seems to be the white one on the top left corner, just below the step motor drivers. I plug a working 5 V DC fan, but it is not rotating. What could be the cause? The cooling fan has been enabled permanently using Slic3r to generate the G-code I am printing.

The board is powered by a 12 V power supply.

Are there some modifications to do on the embedded software side?

  • $\begingroup$ Please update the question by edit and add printer "make and model", which firmware you use, if you uploaded/configured the firmware yourself. Thanks! $\endgroup$
    – 0scar
    Jan 30 '19 at 6:56

The MKS GEN L v1.0 is a board that according to the information found on the web operates to run on a voltage between 12 - 24 V, this means that all peripherals on the board should match this voltage. A 5 V fan should therefore not be connected.

First, you need to establish that you are using the correct fan port on the board.

Which port to use?

If you take a closer look at the board layout you will find that the top fan connector cannot be controlled, it is a fixed voltage power supply of 12 - 24 V (so basically depending on the power that is supplied to the board).

This can be seen from the board layout: MKS GEN L V1.0 board schematics

Or zoomed in on the top left corner: MKS GEN L V1.0 board schematics top left corner zoomed in

Note that no pin number is given, this means that it is a constant power supply fan header. A 5 V fan attaching to this port does not seem to be a good solution, it can easily burn out the fan electronics. This fan should match the voltage of the power supply you use, so when powered by a 12 V power supply, attach a 12 V fan or a 24 V fan when the board is powered by 24 V.

As said, this fan port is not controlled by PWM and can therefore not be scheduled from within your slicer, however, it makes an excellent fan for cooling the cold end of the nozzle assembly.

To schedule a fan for print part cooling through the slicer you need to attach the fan to the other fan header below the X stepper driver on the left, if you look closely to the schematics, you see that that is a fan that can be scheduled using the digital pin D9.

Print cooling fan header of MKS GEN L V1.0 board

Note that this fan also operates at the voltage specified by your power supply; a 5 V fan should not be connected to this port either!

The solution to your problem is to buy a fan of the correct voltage and connect it to the correct fan header.

As you have tried connecting a fan to the lower fan port, and conclude that the fan has never rotated but still rotates when supplied with a correct voltage, you need to ask yourself if this port is:

  • configured correctly in the firmware, or
  • not broken.

Now that you know where to connect the fan for print part cooling, connect a fan that matches the power supply voltage.

Why is the fan not working?

The microprocessor of the board schedules and reads various ports or pins based on the firmware it runs. This implies that the setup of the firmware is very important in the use of certain ports. It is therefore important to research if this port:

  • was meant to be used by the printer manufacturer (so enabled in the firmware)
  • or board is controlled by which firmware

Once you establish that it is enabled (e.g. the manufacturer describes that the printer has a print part cooling fan), you should try printing a part where you enable the print fan in the slicer software. If not, you need to change the firmware configuration to enable the fan. If this does not work, you should address your attention to why it is not working. A multimeter can be used to read the voltage of the fan MOSFET output or the D9 output. If either one of those doesn't record a voltage, your board or MOSFET are probably broken. To fix this, you could solder an unused pin to the fan MOSFET or a new MOSFET and change the firmware. Another option is to buy a new board and flash a new configuration of a printer firmware onto it.

  • $\begingroup$ Sorry, my explanations were probably not very clear. I was indeed using the D9 pin. And before plugging in the fan, I checked whether or not I could get a voltage, which I didn't... I thought that maybe, there were a load verification on the startup phase. The 5V fan still function properly, which means I most probably never got any voltage on the D9 pin... $\endgroup$
    – Emile D.
    Jan 29 '19 at 15:18
  • $\begingroup$ As the D9 is connected to the MOSFET, it schedules the voltage of the power supply unit (12 - 24 V), if the fan still works, it did not receive a voltage over 5 V (or it has some protection for overvolting, but I don't know if that is done on such fans, most probably not). $\endgroup$
    – 0scar
    Jan 29 '19 at 15:26
  • $\begingroup$ I also guess that it didn't receive the voltage. And it would be consistent to my multi-meter prior measures. But how could that be? $\endgroup$
    – Emile D.
    Jan 29 '19 at 20:55
  • 1
    $\begingroup$ @EmileD. Have you correctly configured the firmware configuration? Maybe you could add your configuration.h (as a link). $\endgroup$
    – 0scar
    Jan 29 '19 at 23:12
  • $\begingroup$ That was the thing then... I didn't update the firmware and I don't know how to do it. Is there some kind of tutorial I could follow for that? I guess it some kind of Arduino flashing I should use? And since I don't think I received any configuration.h with my printer, how to start without soft-braking anything? $\endgroup$
    – Emile D.
    Jan 29 '19 at 23:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.