I want to connect a NOCTUA NF-A4X10 5V PWM 4-pin fan to a Raspberry Pi 3B. The below is the circuit I'm planning to use.

  • (EDIT: Flyback diode (such as a 1N4001) is not needed since Noctua already provides polarity protection, and a brushless fan typically already has it);
  • (EDIT: No need for voltage divider) From Noctua documentation, the RPM output is an open collector output (see page 3 of Noctua Doc.). This means that if the Vcc is 3V3, and R=1k5 Ohm, we should be fine (current is then limited to ca. 2.2mA);
  • Resistence R2 (2K2) and transistor Q1 (2N2222A) are used to drive the PWM signal.

enter image description here

In other words:

enter image description here


  • Is this circuit correct? Am I making any mistakes? I'm an engineer, but not an electrical one, so be kind... :)
  • Noctua does not seem to recommend an open collector design (see below)... What alternatives do I have?

From Noctua: enter image description here

  • \$\begingroup\$ The PWM input is likely to have a very high impedance, and for the switching threshold, you have to look into the datasheet. \$\endgroup\$
    – CL.
    Jun 30, 2019 at 15:49
  • \$\begingroup\$ Noctua does not provide that info (as far as I could check). The maximum voltage for logic low is 0.8V, but for high logic nothing is said (only that the max. voltage is 5.25V). \$\endgroup\$ Jun 30, 2019 at 16:20

2 Answers 2


A Fritzing cartoon is NOT a schematic.

You seem to completely misunderstand the configuration required for a 4 pin PWM controlled fan.

  1. A 4 pin PWM fan is ALWAYS permanently connected to it's supply rail, in this case Yellow and Black connect to +5V and Ground and are not switched.

  2. The PWM signal is ALWAYS (to meet the spec) driven by either open collector or Open Drain devices, you don't have to pull the signal up to +5V. If this signal is left open circuit the fan runs at full speed.

  3. BLDC computer fans DO NOT need back-emf protection diodes at all on either the fan supply or the PWM signal.

You should connect it like this:


simulate this circuit – Schematic created using CircuitLab

To control the fan speed you need to produce a PWM signal from the raspberry Pi at 18 - 21 kHz.
I assume you already know all the limitations and requirements for the hardware PWM on R'Pi ….if not, perhaps start here.

Update: the Noctua whitepaper pointed to here ….is confusing.

It shows this for the PWM signal:

enter image description here

They then go on to say this:

enter image description here

On the first page they show the short circuit current for the PWM pin as 5mA, which would indicate a 1k Ohm pullup in the fan. In addition per the spec the fan must run at full speed with the PWM pin floating.
The second page where they say they don't recommend an open collector PWM signal makes no sense at all, since they say they meet the Intel spec and must already have a 1k pullup in the fan.

Since the fan already has a pullup to 5V I would suggest it is dangerous to your R'Pi to NOT use the open collector method since the R'Pi I/O is only 3.3V capable. Pulling this above 3.3V could potentially damage an I/O pin.

I would seriously encourage you to use the spec method (Open Collector).

  • \$\begingroup\$ What about the RPM signal from the fan (green wire)? Can I use the voltage divider as I have it? \$\endgroup\$ Jun 30, 2019 at 19:25
  • \$\begingroup\$ Noctua says that an open collector is to be avoided (see page 8, second paragraph of noctua.at/media/wysiwyg/… So, can I use a transistor like 2N2222A? \$\endgroup\$ Jun 30, 2019 at 19:33
  • \$\begingroup\$ @PedroAbrantes 've already shown the schematic I'd recommend. The RPM signal simply needs a pullup to 3V3 and can be used on a GPIO pin. \$\endgroup\$ Jun 30, 2019 at 22:57
  • \$\begingroup\$ Much appreciated Jack! :) I was also puzzled with the Noctua documentation. So, the schematic I have on my updated question (below the image) is ok, with regards to the RPM signal? Can you clarify that before I mark your answer as the correct one? \$\endgroup\$ Jun 30, 2019 at 23:15
  • 1
    \$\begingroup\$ You appear good to go with your schematic. \$\endgroup\$ Jun 30, 2019 at 23:46

Noctua does not say what the required high level of the PWM input is. They recommand against using a plain open-collector signal; but if you do not have a 5 V microcontroller, the easiest way to get a 5 V signal with fast edges is to use a transistor (like in Jack's answer), and to add a pull-up resistor from the collector to 5 V (about 2.2 kΩ should be OK).

The RPM output is an open-collector output, so it does not have a high level, and the voltage divider is superfluous. You can connect it directly to the Pi, but you have to enable the internal pull-up resistor (or add an external pull-up to the Pi's VCC).


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