I have 8 fan modules that contain 2 fans per module. These 16 fans are powered by 12 VDC and are controlled by the PWM control pin.

The spec sheet for the fan module: https://www.delta-fan.com/Download/Spec/GFM0412SS-BL4F.pdf.

Microcontroller I am using: https://docs.particle.io/datasheets/wi-fi/photon-datasheet/

According to the spec sheet, I can output 3.3 V on the PWM pin of the MCU. This fits in the range of the PWM signal the fan reads. In the example in the datasheet for the fan, they place a 2 Kohm resistor between the MCU and the PWM pin. I believe I am reading the MCU datasheet right and it says I only get 100 mA that I can source on the PWM pin of the MCU. I would like to have all 16 fans running at the same speed.


  1. How do I determine the size of the resistor to use on the PWM signal for one fan?

  2. Can I use that PWM signal to control all 16 fans? If so how do I determine the resistor value?

  3. If I can't use the one pin to control all 16 fans, perhaps a transistor would solve this for me. If so again no idea how to figure out the required resistor.

  4. If you figured out the resistor value(s), please explain what I should be looking for on the datasheets so I know how to do this for other components in the future.

  • 1
    \$\begingroup\$ I notice that you have accepted Justme's answer. Please be aware that it's a very good policy to wait 24 hours or so before accepting an answer. By accepting immediately you remove any incentive someone else might have to contribute - and their contribution might be better. For that matter, the answer you accept early might even be wrong. \$\endgroup\$ – WhatRoughBeast Apr 20 '20 at 2:13
  • \$\begingroup\$ You will get 100 mA from one MCU pin? \$\endgroup\$ – Mike Apr 20 '20 at 10:54
  • \$\begingroup\$ Sorry I am new to this as well. I'll undo the mark as answer and wait more time. I believe that is what the data sheet is saying. Though I found in another spot io characteristics and says 25mA. I am just not sure. \$\endgroup\$ – bri Apr 20 '20 at 11:33
  • \$\begingroup\$ @Justme was correct, no resistor was needed at all. After hooking up the pwm signal to one module (2 fans) 0.3 mA current was used. Even if the pin can only do 25mA this covers all the fans. Thanks all for the help. I will remember next to leave the question open longer and make sure I get a correct answer. \$\endgroup\$ – bri Apr 20 '20 at 19:51

The answer to all four questions is that you should not put a resistor there.

That resistor shown in the picture is not an external resistor that should be present in your PWM driving circuit. It only tells what kind of a load the fan presents to your signal, i.e. it is the PWM pin input impedance. The output impedance or driving ability of your PWM source determines how many fans can be connected to it. Of course you can add transistors or logic buffers to drive more fans.

  • \$\begingroup\$ Thank you for your help. Am I able to drive all 16 fans without a transistor? If I need a transistor how do I figure out wattage rating for the resistor and would I need a resistor for the transistor if I went that route? \$\endgroup\$ – bri Apr 19 '20 at 23:02
  • \$\begingroup\$ Forget the resistor, you don't put a resistor to the PWM line if you drive with logic gates. Both datasheets are really quite bad. The fan datasheet does not actually say how much it loads the PWM pin, it only says it has internal series resistor. And for the Photon you need to open STM32 datasheet to find out how much output pin can be loaded. But it is of no use because even if you know how much load the Photon can drive, you don't know how much the fan loads it. IIRC STM32 has 8mA outputs, so it should be able to drive maybe between 4 to 8 fans. \$\endgroup\$ – Justme Apr 19 '20 at 23:21
  • \$\begingroup\$ Thank you for helping! I'll mark as solution. What I'll do is put my meter in series with the pwm pin and measure the current for 1 fan and compute it out from there. thanks again \$\endgroup\$ – bri Apr 19 '20 at 23:56
  • \$\begingroup\$ Put your meter in series from the 3.3 V supply to the fan PWM input instead. Then you won't have to worry what PWM % it's running at and you've got simple \$ R = \frac {3.3} I \$. \$\endgroup\$ – Transistor Apr 20 '20 at 16:57

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.