• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

FEATURED Building PWM Controller for 4 wires PWM fan

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.
At 0% the fans are barely spinning at around 400 RPM and dead silent......and I still get GREAT cooling :cool:

At 100% the fans are all spinning at 2600RPM and the noise level is much higher.....but its a very "whooshy" sound, lots of wind noise, and none of that annoying high pitched squeeling or anything :D

I'm stressing my 2600K at 5GHz right now with fans at minimum...at the wall, the power draw is about 650W....when I crank up the fans to max, the draw shoots up to over 800W :eek: 150W just for fans :rock:
 
At 0% the fans are barely spinning at around 400 RPM and dead silent......and I still get GREAT cooling :cool:

At 100% the fans are all spinning at 2600RPM and the noise level is much higher.....but its a very "whooshy" sound, lots of wind noise, and none of that annoying high pitched squeeling or anything :D

I'm stressing my 2600K at 5GHz right now with fans at minimum...at the wall, the power draw is about 650W....when I crank up the fans to max, the draw shoots up to over 800W :eek: 150W just for fans :rock:

Yeah, that thing of yours really blow ... literally ! LOL :D

Now you owe this thread a video shot of that wall of pwm fans and the controller in action. :D
 
Last edited:
way ahead of you :p

Dang, I'm beaten ! :D


Thank you ! Really an amazing videos Miah, impressive cooling power ! :rock:

Btw, I'm so scare to see those wall of monsters when at full speed :chair:, whats the plan to secure that walls of terror ? :D Fan grills ? or some sort of mesh to cover them ? Just hate to see if your wife hears that you're shouting ... "HONEY HELLPP !! This table is chewing my left leg into pieces !!! .." :rofl:
 
In theory I can get 200khz at the cost of some phase-correctness, that might work better. I need to find out what the inductors and caps want though. Plus the ideal inductors for a ~90 amp 1.2v GPU aren't likely to be the same as for a 3.3amp 12v fan.
Your 1800rpm fan should be much easier to control.

Oh I'll still have some 'beasty' fans that need powering/controlling too! :D
See the thread I linked to which outline my requirements...
But I'll look into all this more closely in a few wks, other priorities now.
Thanks again for the tip to post @arduino.cc!

Quick poll time (for anybody who reads this thread):
For a dual output fan controller (that's two PWM speeds, not necessarily only two ports, it could be four or six or more ports), would you prefer two knobs, or up/down buttons and an LED to indicate which fan you're controlling? Either one is quite doable.

I'm not exactly sure what you're referring to when you say "up/down buttons".
But I personally would prefer the knob-type speed control, lends itself to better control IMO.
And perhaps 2x leds that get increasingly brighter as the power/speed goes up :clap:

Another possibility is a temp sensor on wires that you place in your case's exhaust stream, and then tell the controller what the max and min temps you want are.

Why not do both?
Manual control, and programmable temp based control.
Plus a display for temp/RPM/voltage etc. feedback :clap:
Sorry, getting a bit carried away, I can't help myself :)
 
It could be done, I'll put it on my list :D

I found a place that'll make high quality PCBs at a good price (for low volume, at least), $5 per square inch for three PCBs, so I've been working on a design to make the little 8pin attiny microcontrollers easier to play with. After that is a fan controller.

Up/down buttons would be a button to make the fan go faster and a button to make it go slower.
Via some trickiness I can put more than one button on an input pin, as long as more than one button isn't pressed at once.
Outputs are rather more scarce, can't stack those. (Though more than one fan can be run off a PWM output, as long as you don't mind all the fans on that output going the same speed)
 
Brief update:
I have working code and a breadboard setup to run two fans at differing speeds, speeds controller by up/down buttons for each fan.
There are two additional analog inputs and room for maybe three more buttons on the one pin I used for buttons, so there is room for a temp sensor or a pot to be used as well.

I'm pretty pleased with it, it uses three pins (plus vcc/gnd) and a bit less than 1.4kb of code, fits into an attiny85 with tons of code/ram room and two analog/digital input pins to spare. Bonus points for being able to save your fan speeds on shutdown (not coded, but not hard to code at all. You'll only get a limited number of shutdowns before it kills the eeprom and can't remember anymore. Only ~150,000 or so :chair:)

Next up is converting to perfboard, adding saving the fan speeds on shutdown, and some more testing. Then I'll send it to someone to play with.
 
Really curious who is that lucky dude ? :D

Btw, up & down is far more simpler when it comes to interface with mcu, instead of using pot that will need A/D conversion which I think is adding unnecessary complication, or even worst using rotary encoder, that will be another headache that is not cool at all when in prototyping stage.

Great to hear that, keep us in the loop. :thup:
 
I'll be sure to post pictures of the little controller once I get it delivered...
:chair:

C'mon, you're not supposed to have that, also I thought you're planning to improve your pcb layout skill 1st, this new advance toy will just ruin your plan there, lemme help you, just send it over here. .. LOL :chair:
 
C'mon, you're not supposed to have that, also I thought you're planning to improve your pcb layout skill 1st, this new advance toy will just ruin your plan there, lemme help you, just send it over here. .. LOL :chair:

LOL....

But i need to be able to control my beasts... And my soldering skills ain't getting any better. I admit it is for lack of practice.
:bang head
 
Got the attiny85 version breadboarded and working on a standalone basis (power via molex via jumper wires. Needs a decently fat storage cap as it resets when the nidec first goes live!). Next up is convincing it to save and restore the PWM levels, shouldn't be hard. wasn't hard. After that comes finding an 8DIP socket and breadboarding it.
Sidenote:These MCUs are strong! I plugged this one in backwards (+5v to gnd pin, gnd to +5v pin), it got kinda warm but still works. Gotta love that.

Right now it's set at 10% per button push, or push both up/down buttons to jump straight high (unless you're already full high) or low (if you're already high).

Video! Lets see if I can remember how to embed youtube.... EDIT: Hey it works!
The camera turns out to have auto-volume, makes the music sort of annoying. Oh well.



EDIT:
The controller now saves the PWM levels into EEPROM ten seconds after the last button press. That gives it a lifetime of around 300,000 adjustments, after that it may start forgetting what it was doing.
Still, the buttons are only rated for 100k presses or so, and it's almost always going to be more than one press per adjustment.

Next up: sleep. After that, work. After that, probably chasing kids. After that, maybe breadboarding this thing up to send to Seebs for outside testing.
I'm ordering more buttons shortly here (along with >$100 of parts to build a resistive load to test PSUs with, ouch :() along with sockets and such, I hope to have a second one to send to someone else in a week or two. After that if all is well I'll have some PCBs made and start selling the things. Might sell a kit form for cheap, though I may use SMD resistors as they're rather more compact and easier to route around for a smaller board. Plus side: Almost all the resistors will be the same value, and the two that aren't will both be 10ks.

2.EDIT:
Heeeey! This chip (attiny85) has a built in temp sensor! How cool is that? Put the whole *&@# board in the exhaust flow and poll the onboard temp sensor from time to time and presto! Of course, it's +/- 10*c.... Oh well :p
 
Last edited:
Great job Bobnova. Looks like a wicked set up, especially since it saves your settings. I wouldn't worry too much about the life. Even if they are rated for 100 000 button presses, and you press each button 10 times a day it will still last for over 27 years! I doubt you'll be using the same controller for that long anyway.
 
It's on perfboard! It uses a floppy power connector for power, for itself as well as both fan outputs.
Two PWM outputs, independently controlled, with buttons on a separate piece of perfboard on a 10" or so cable. The button section has an LED to tell you when it is A) receiving power and B) plugged in the right way.

No ICSP header so it's a delicate operation to reprogram, but that doesn't really matter much for anybody but me, or another microcontroller person.

I'll post pictures and a schematic and the code tomorrow.
After I play with it a bit more (and try to convince it to give me ~25khz PWM instead of 15.4khz) I'll send it off to Seebs for outside testing, once any issues he finds are fixed I'll get some PCBs made and do another giveaway.
If those go well and there's a market (I think there is, we'll see) I'll send it to China and get a full panel of PCBs.


I guess next, really, is putting an ICSP header on the thing so I can program it without having to hold four wires against four pins, one right next to VCC...
 
That is really cool Bob ! Great job you've done there ! :clap:

Damn you Seabass, :D I envy you ! :chair:

Other thought on the adjustment, I think that 10% per step is a bit steep, don't you think ?

At Sebass's monster Servo fan, the min speed at 0% is 1000 rpm and maxed out at 6300 rpm, so the range is 5300 rpm / 10 steps = 530 rpm per step.

No sure though.
 
I was thinking about that too bing, what works great for me benching isn't really fine enough control for normal users I don't think.
Once I get an ICSP header on there so I can safely program it I'm going to try 5%, and see if I can get some functionality for holding the button down, I don't relish hitting it 20 times to get from one end to the other (excluding the fact that you can jump direct by hitting both).

I'll send you the next one if you want bing, you've been an incredible help with all this fan controller business! It might even have a real PCB!
 
Back