• 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.
@ inVain thanks for that. I'll probably get the kickstart components this week as the FFC is much quieter than the Nidec at low speed but doesn't start at low speed like the Nidec (how annoying lol) :D

Bob the update sounds amazing, as do the forthcoming pics of these fans!
 
The only NPN I have is high power TIP31C, so I'm assuming it will be fine? I also should have 1K and 10K resistors, so I will maybe put it on breadboard this afternoon if I find some spare time!

Well, that transistor is fine too, its just I didn't expect you will be using that giant TO-220 body sized transistor, I thought it will be like smaller one TO-92 body sized. :D

C'mon, your brother is an EE, I strongly believe he has these small transistors lying somewhere at his bench or his workspace area, usually these small components are scattered around either new or used and will ended up abandoned for years till someone throw them in the dust bin. :D

A dmm with freq measurement will be a lot more accurate in measuring fan's rpm, c'mon, borrow the one from your brother if he has it, and also I will post an example soon here if I had the time. Its very easy and practical.


It's both, two board changes and a firmware change.
A board change to use a different internal timer that changes one of the PWM output pins. This lets me dial in fairly exact PWM speeds (3k and 25k nearly exactly) and does so without my having to hand tune each attiny85's internal oscillator calibration. That was a time consuming operation.
This of course means a firmware change to use the different timer and control registers, but nothing horrendous. Most of the firmware is taken up reading four buttons in nine possible combinations with a single input pin, debouncing the entire mess, and allowing hold-to-scroll type speed adjustment.

Plus a second board change to use a molex for power and move the fan connectors around a bit, now they don't share any traces, the traces are substantially wider, and the whole thing should be able to run any pair of fans you can find. Possible exception made for 2xTiN-Fan. The molex is only rated at 11a after all.

That sounds lots of works and changes have been done there, great ! :thup:

I believe we wouldn't mind if you allow us to take a peek on this rev 2 controller. :D
 
mypleasure Lenny,
I should thank you instead, since the trend of "misusing" led as a blink factor, I really have forgotten their main purpose as a function indicator :D


and I really want to get the pcb working ASAP, as I love how it looks on 3d :drool:
View attachment 101216

think it's worth to try, to make at least 1 prototype....
since the only tracing I can do, is when I got the actual physical trace :facepalm:
 
inVain, I can't see any connectors placed at the pcb ? Is that intentional ?

Also it looks it still has quite big spare/unused area there, if I were you, I will reserve and put the kick-start components placement there so whenever you need that, you just need to add the kick start parts, or if you don't just leave it as is. I think the cost difference in fabricating the pcb with or without that kick-start components placement should be not that significant.
 
inVain, I can't see any connectors placed at the pcb ? Is that intentional ?

Also it looks it still has quite big spare/unused area there, if I were you, I will reserve and put the kick-start components placement there so whenever you need that, you just need to add the kick start parts, or if you don't just leave it as is. I think the cost difference in fabricating the pcb with or without that kick-start components placement should be not that significant.

I was contemplating that empty area with similar thoughts. Given that PCB space costs money directly and PCB complexity does not, my fan controller is quite cramped. That's a standard molex receiver (like on HDDs) in the middle there, and standard 4p PWM fan headers to either side.
View attachment 101245
It's not 100% finished, there is some trace spacing touchup that I plan to do, but that's the basic layout.


I'd be inclined to slap the kickstart bits into that empty space (and maybe add an inverter for those pesky fans that use an inverted PWM), you can lay the big cap down on it's side if it is too tall for your planned enclosure.
 
inVain, I can't see any connectors placed at the pcb ? Is that intentional ?

Also it looks it still has quite big spare/unused area there, if I were you, I will reserve and put the kick-start components placement there so whenever you need that, you just need to add the kick start parts, or if you don't just leave it as is. I think the cost difference in fabricating the pcb with or without that kick-start components placement should be not that significant.

Yes, I must admit the s/w is confusing us with its annotation:rain:
The main connector for 5v, gnd, and PWM out was marked by "P", and the connector to the pots was marked by "R2".

I planned to use the "L" type of "CI31" (3 pinned floppy style) as the connector. The 12v itself will be drawn directly from the PSU molex, so there's no connection for the 12v on the pcb.

From the past experience, these "L" type connector were ridicolously space hungry components. I'm kinda stuck, since I'm still planning to mount the controller on the PCI bracket. In this case, the weight of the pcb is my main consideration to made the pcb as small as possible (it should be firm enough to be hold by a single bolt).
The pcb itself was 65mm length, and 30mm depth, not even half of the minimum quota.
So actually adding another copy of this schematic on the same pcb will be free of charge :D

Let's make this pcb for fun, since the goal was to encourage myself to fabricate the first working pcb.
Just like breadboarding ;)

So let's save the sophisticated (complicated, actually :lol) projects for the future.
I'll be sure to add the kickstart on the next revision (hopefully with SMD components) :salute:



@Bobnova
whoa! your pcb looks dense enough for me :shock:
are you planning to mount the kickstart components on the other side?
that wide trace on the 12v lane looks really awesome :clap:

dang! I just remember that you've got another pcb, the controller board(?) :D
 
Last edited:
Empty space... where exactly? :D

I'm not sure I understand it fully, but the attiny is basically programmed to output the pwm signal at selectable frequencies(?), and therefore the circuit can be much simpler than the 556 version. That's an incredible little chip right there. :)
 
Lenny's on it, the attiny85 (or 45, which is the same chip with less memory for 20 cents cheaper) is a full fledged computer brain. It has around the computational power of a 8088, or maybe a bit less. Way less memory and memory bandwidth though (1k or 2k, heh).

Inside it are three PWM generators in two speed ranges, one aimed at running 1hz to ~64kHz, and one aimed at 1hz to 64MHz or so :shock:

The end result is that I program the thing to cough up a 50% PWM signal for a second or so, and then it reads a couple EEPROM values and sets the fans to whatever was saved in those values.

It moves most of the complexity from the PCB into the firmware, and being an Atmega microcontroller the firmware is programmed in C rather than assembly :D
 
Bob, it would be great to see your plan working! I'm looking forward with this elegant solution.
 
I'll probably send out for a set of 3 PCBs in early december, the re-coding will take a bit but hopefully not too long.
The current version plays games with the attiny85's system clock to get the 3khz and 25khz PWM outputs, it works but it's kind of clunky and I have to calibrate it to each individual chip, the new version will work straight up without doing anything special to the chip. Plus if I'm already redesigning for molex power instead of FDD power I might as well clean the code up, too :D

I'll be sure to post plenty of updates!
 
Lenny's on it, the attiny85 (or 45, which is the same chip with less memory for 20 cents cheaper) is a full fledged computer brain. It has around the computational power of a 8088, or maybe a bit less. Way less memory and memory bandwidth though (1k or 2k, heh).

Inside it are three PWM generators in two speed ranges, one aimed at running 1hz to ~64kHz, and one aimed at 1hz to 64MHz or so :shock:

The end result is that I program the thing to cough up a 50% PWM signal for a second or so, and then it reads a couple EEPROM values and sets the fans to whatever was saved in those values.

It moves most of the complexity from the PCB into the firmware, and being an Atmega microcontroller the firmware is programmed in C rather than assembly :D

Very nice, and thanks for explaining. How easy would it be to control the ATtiny controller digitally via USB rather than a physical interface?

I'm thinking that it would be amazing to have a desktop GUI specifically for beastly PWM server fans (a la speedfan). :bday:
 
Very nice, and thanks for explaining. How easy would it be to control the ATtiny controller digitally via USB rather than a physical interface?

I'm thinking that it would be amazing to have a desktop GUI specifically for beastly PWM server fans (a la speedfan). :bday:

This is very similar to the idea I had up above, about controlling the fans based on temperature reporting in the PC via usb into the Arduino. If memory serves, the ATMega controller is very, very similar to the ones used in Arduino's.
 
Very nice, and thanks for explaining. How easy would it be to control the ATtiny controller digitally via USB rather than a physical interface?

I'm thinking that it would be amazing to have a desktop GUI specifically for beastly PWM server fans (a la speedfan). :bday:

I think we're closing to the next gen: "remote fan controlling via web interface"
and can be done via the internet from the far2 away land :D:clap:
 
It's not 100% finished, there is some trace spacing touchup that I plan to do, but that's the basic layout.

Ed, how about mounting holes ? Your ver 1 doesn't have it.

I can see there is still spare space but not much though at above right and below left corners for those holes, they might be handy if the owner wants to mount it securely somewhere rather than hanging at the molex connector.
 
The Attiny85 is short on communication methods for USB control, but there are some relatives that do it quite well. Some even have native USB so you don't need a controller, the others all have serial in/out so you could use your mobo's onboard serial header and control it that way. I think someone managed to convince the attiny85 to do serial in software as well.

A mounting hole or two is an excellent idea, that's worth adding a few cents to the cost I think, I'll do that.

If you were to use a full on Arduino chip (atmega328) you can interface it with an ethernet doodad, then the Arduino can act as a web server and take orders directly from the internet :D
 
A mounting hole or two is an excellent idea, that's worth adding a few cents to the cost I think, I'll do that.

Just make sure those holes will not interfere with the surrounding components, like at the upper right fan connector, it will be a pita if they're so close in proximity that the nut or head of the bolt installed at the hole might be blocking the path of the fan connector.
 
If you were to use a full on Arduino chip (atmega328) you can interface it with an ethernet doodad, then the Arduino can act as a web server and take orders directly from the internet :D

behold . the "remote cooler master" era is near :comp:


finally manage to place the kickstart components on the layout, but I overwrite the files by accident :cry:

so here's what I got:
View attachment 101437

the actual size is about:
View attachment 101438

to look at the bright side:
- I got a better layout plan for the kickstart components
- lesson learned, that I need a sharper solder tip when
- I got my pcb working without smoke (the most important part) :attn:

the dark side:
- top overlay n paint is overprice when producing single pcb (that's why I leave it blank ATM)
- light sanding is required, since pcb cut was a little rough
 
I'm sorry to hear that it doesn't work,but it looks fine, i like it! Why i can see only 3-pin-headers, does one have to rewire the fan to get it running with that controller?
 
ah, I guess I wrote my last post in bad language....
sorry for that :)

the controller is working fine.
but, I took the wrong design to the factory (I should have the 2-98% controller with kickstart version by now)

the 3 pin is; gnd-5v-pwm out (everything is the low current connection)
I thought this aproach will give us better flexibility to choose the connector to the power fan.
Lots of folks doing this on the previous page :)
and lots of your wire connection on your Deltas has inspired me to do this, thank you nothor:)

I will take a shot of this controller and the papst controller soon,
as for now, I got a total mess inside my case while I'm testing a bunch of fans...

here's a peek inside my case ATM :lol

u1e7rdx8axgcd7buq82s.jpg
 
Back