Back story:

I have liquid cooled PC where I can’t control fans and pump from motherboard headers (thanks HP). I decided to use DC/DC converters to power fans and pump. It is working, but since pump voltage is set high, to make sure it always start, it is loud. Fans voltage is also set high to make sure they are able to cool under maximum load, which is also loud. That is why I’ve decided to make Arduino based controller, which control fans speed depends on temperature of liquid.

Right now, I’m working on part of the firmware that controls a 3 pin pump in constant speed mode. The pump is controlled with a MOSFET using PWM, to read speed I run it at full speed, make one measurement, and go back to running it using PWM, and it is working better than I expected. At first, I was simulating pump with a 3 pin fan to not disassemble my PC and to check with tachometer if Arduino reads speed correctly. I managed to write proportional controller that runs the pump at certain RPM, and it works without any issue with a fan.

But, when I plugged the pump it wont works correctly any more. At first, the pump runs at full speed (about 2200 RPM), controller tries slowly to lower its speed (in this case to 2000 RPM), at first the pump doesn’t slow at all, but at 96% of PWM the pump suddenly slows down (to about 930 RPM in 200 ms), then controller turn it back on, all of this takes about 5 seconds. I tried with my older pump (same model, too loud to have it in PC, but I kept it just in case) and same result. I opened pump to check if it can be converted to 4 pin, but there are no missing components and no room for fourth pin. But, I noticed the motor has only one winding, but on internal schematics of fans, that I found on the Internet, there are always two windings.

Now, I’m wondering: Am I doing something wrong, or 3 pin water pumps can’t be controlled with PWM, or because my pump has only one winding, it has more complicated controller, which doesn’t like PWM on its power supply?

Pump I'm using is Syscooling SC-360T, I can't find it on manufacturer website, but it looks similar to SC-600T, but with weaker parameters (0.3A, 350l/h): https://www.syscooling.com/products/sc-600t

Fan, that I was using before pump is SilentiumPC Sigma PRO 120: https://www.silentiumpc.com/en/product/sigma-pro-120/

  • \$\begingroup\$ Post the pump and fan you are trying to control. We have no idea what technology you are using. \$\endgroup\$
    – MOSFET
    Commented Feb 7 at 17:17
  • \$\begingroup\$ Sounds like the pump might have locked rotor protection or something similar. I don't think adjusting the input voltage would help in this case either. \$\endgroup\$
    – vir
    Commented Feb 7 at 17:39

1 Answer 1


You can't PWM that pump like that. There is an internal controller that operates on an expected nominal input voltage (12V). You need a 4 wire pump/fan or one that has a dedicated speed control input (PWM/Analog). You only have tach out. Best you can do is maybe PWM the input voltage to something like 9V-12V with a big ass capacitor across the red and black leads of the pump so it doesn't see the PWM.

What I would do, is get pump that can be speed controlled properly.

However, if you're married to this pump, then what you have to do, is find out the minimum reliable voltage this device will run at. That will establish your lowest effective operating speed. So let's say the pump happily works down to 8V, YMMV. The Arduino can then PWM from 67% to 100% duty cycle. That means the control scope you have is limited to: off, proportional control from 67% to 99%, and full on. You have no control from 1% to 66%.

This may or may not be acceptable to you.

  • \$\begingroup\$ Well, that was option that I was most expecting. Unfortunetally, I somehow managed to damage my pump and it is not spinning anymore. At first, it is drawing 0.8A and dropping to about 0.02A; while old pump is drawing 0.4A at start, then oscilates about 0.15-0.25A. \$\endgroup\$
    – lekto
    Commented Feb 7 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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