Arduino Forum

Using Arduino => General Electronics => Topic started by: bld on May 29, 2011, 09:42 am

Title: Fake computer PSU cooling fan
Post by: bld on May 29, 2011, 09:42 am
I changed the cooling fan in my computer psu, but the problem now is that when the psu is cold, it spins so slow that the alarm triggers in the psu, and starts beeping... It is doing so for the first 15 minutes, until it heats up enough to spin the fan a bit faster.

My goal is to use an arduino to fake the rpm signal, so it reads how many rpm's the fan spins at, and if it is too low, it then just makes a whole lot more, to prevent the psu from beeping.

I got everything down how I want to fake the signal and so, but I am unsure of how to actually connect it all together.

After looking at how the pins on the fan behaves, it seems to pull the rpm pin down twice per revolution (same as the one I got in my network cabinet), but how do I actually connect the arduino to it?

Can I just use a TIP102, and connect it to minus, the rpm wire, and then the arduino? (with common minus of curse) Or should I take something else than the TIP102?
Title: Re: Fake computer PSU cooling fan
Post by: mowcius on May 29, 2011, 12:04 pm
Sounds like a job for a 555 timer
Title: Re: Fake computer PSU cooling fan
Post by: bld on May 29, 2011, 01:01 pm

Sounds like a job for a 555 timer

Would require more stuff in there... I already got an arduino taking care of other stuff, and it can easily also take care of the rpm stuff.

My only problem is that I am not sure how to actually connect it.
Title: Re: Fake computer PSU cooling fan
Post by: pwillard on May 29, 2011, 01:08 pm
1) TIP120 is too big.  Not saying it won't work... but it's like using a sledgehammer to push in a thumbtack. To pull a signal line low, you just need a small signal generic device, like a 2N2222.  The FANs RPM sender usually have an "open collector" NPN device that PULLS the signal LOW when the RPM magnetic sensor engages.

2) Seriously... my advice is to get the right fan and install that.

Any fan that "needs to warm up" is not one that I want keeping my parts cool.  That's a sure way to eventually lose more than just the fan.
Title: Re: Fake computer PSU cooling fan
Post by: mowcius on May 29, 2011, 01:12 pm
Quote
Any fan that "needs to warm up" is not one that I want keeping my parts cool.  That's a sure way to eventually lose more than just the fan.

I presume it's one that adjusts automatically depending on temp.

I had a similar problem with a fan I installed - it was a low RPM fan (but much larger than stock) so I got beeps from my computer all the time. I just swapped fan connectors round with another fan in the box which ran at a higher RPM :D
Title: Re: Fake computer PSU cooling fan
Post by: pwillard on May 29, 2011, 02:02 pm
http://www.maxim-ic.com/app-notes/index.mvp/id/3327
Title: Re: Fake computer PSU cooling fan
Post by: bld on May 29, 2011, 02:36 pm

1) TIP120 is too big.  Not saying it won't work... but it's like using a sledgehammer to push in a thumbtack. To pull a signal line low, you just need a small signal generic device, like a 2N2222.  The FANs RPM sender usually have an "open collector" NPN device that PULLS the signal LOW when the RPM magnetic sensor engages.

2) Seriously... my advice is to get the right fan and install that.

Any fan that "needs to warm up" is not one that I want keeping my parts cool.  That's a sure way to eventually lose more than just the fan.

The problem is that the RIGHT fan is very noisy, even at low speed because it got some very bad nylon bearings in.

And it is not the fan that is the problem, the one I put in got the same CMF at full speed as the original one. The problem is that the one I put in run at a bit lower rpm on low voltage than the original, and before the psu adjusts the voltage up, it runs a bit too slow according to the psu's build in safety.

So when it starts to heat up, and even heat so much up that it will reach 100% for both fans inside (it got both the 80mm I am replacing, and a 140mm), it will perform just as the original would.

I am pushing on with my fan, and trying the 2N2222
Title: Re: Fake computer PSU cooling fan
Post by: Grumpy_Mike on May 30, 2011, 10:47 am
Quote
it runs a bit too slow according to the psu's build in safety.

So basically that is your problem. You need to either change what your PSU expects or change the signal into it.
You can change the frequency of your fan's output by using a phase locked loop. It is simplest to double the frequency but by the creative use of dividers you can get any ratio os frequency increase you like.
A simpler alternative might be to have a frequency to voltage converter, then an amplifier, then a voltage to frequency converter.
Title: Re: Fake computer PSU cooling fan
Post by: borref on May 30, 2011, 01:17 pm
In more recent flavors of BIOS you can set the lower threshold RPM alarm level and so solve your problem without even opening the computer case. More "dated" versions of BIOS typically included an option to suppress the alarm (ignore PSU fan PRM).
Title: Re: Fake computer PSU cooling fan
Post by: bld on May 31, 2011, 03:57 pm

Quote
it runs a bit too slow according to the psu's build in safety.

So basically that is your problem. You need to either change what your PSU expects or change the signal into it.
You can change the frequency of your fan's output by using a phase locked loop. It is simplest to double the frequency but by the creative use of dividers you can get any ratio os frequency increase you like.
A simpler alternative might be to have a frequency to voltage converter, then an amplifier, then a voltage to frequency converter.

That will give me another problem, because the frequency on the RPM line to it will then be too high. I tried to just connect an extra 92mm fan (was in the case anyways) to the rpm pin, and then hoped it would deliver the missing rpm, but it starts beeping anyways, unless I put a finger on it and slows it way down.

This circuit starts to annoy me a bit.. Might end up just de-soldering the beeper from the board inside the PSU, and then put a resistor in with the same resistance.


In more recent flavors of BIOS you can set the lower threshold RPM alarm level and so solve your problem without even opening the computer case. More "dated" versions of BIOS typically included an option to suppress the alarm (ignore PSU fan PRM).

I don't see how that should override the safety in the PSU...
Title: Re: Fake computer PSU cooling fan
Post by: Grumpy_Mike on May 31, 2011, 11:13 pm
Quote
because the frequency on the RPM line to it will then be too high.

I don't understand this. The frequency on the RPM line comes from the motor, it is not a command but a measurement. The motor speed is controlled only by voltage on the fan.
Title: Re: Fake computer PSU cooling fan
Post by: Bobnova on May 31, 2011, 11:28 pm
Personally I think I'd just de-solder the beeper at this point.
Unless you put a highly dubious fan in there it shouldn't have any issues until well after the PSU's capacitors eat it or the PSU is no longer modern enough to be of use.
Title: Re: Fake computer PSU cooling fan
Post by: bld on Jun 01, 2011, 04:12 pm

Quote
because the frequency on the RPM line to it will then be too high.

I don't understand this. The frequency on the RPM line comes from the motor, it is not a command but a measurement. The motor speed is controlled only by voltage on the fan.

Yes, I know... But it looks like it knows about what to expect at different voltages. Too low or too high at a given voltage, and it starts beeping.

Looks like an overengineered safety thing... Going to remove the beeper, and then make my arduino keep an eye on the rpm instead, and them beep if something unexpected happens.
Title: Re: Fake computer PSU cooling fan
Post by: Grumpy_Mike on Jun 01, 2011, 10:40 pm
Quote
Too low or too high at a given voltage, and it starts beeping.

Yes and your problem is the fan you use gives too low a frequency for any given voltage. That is why I suggested using a PLL to modify the frequency you fan gives and so fool the PSU into thinking things are as it expects.
Title: Re: Fake computer PSU cooling fan
Post by: bld on Jun 01, 2011, 11:03 pm

Quote
Too low or too high at a given voltage, and it starts beeping.

Yes and your problem is the fan you use gives too low a frequency for any given voltage. That is why I suggested using a PLL to modify the frequency you fan gives and so fool the PSU into thinking things are as it expects.

No, only at the lowest voltage... As soon as the PSU heats a bit up, the fan spins fast enough to be in the expected range.. But I have now removed the beeping by simply removing the beeper... Instead it only blinks with a bright diode while it is complaining.

And I also tested how it would behave if a fan suddenly failed... It will blink for 5 minutes, then shut down. So guess it is still pretty safe, even when it can't beep at me... But would make no difference if I weren't home anyways while a fan failed...
Title: Re: Fake computer PSU cooling fan
Post by: Grumpy_Mike on Jun 01, 2011, 11:23 pm
Quote
As soon as the PSU heats a bit up, the fan spins fast enough to be in the expected range.

That sounds like a sick (in the old fashion use of the word) PSU. You need to find out what is changing when it heats up. Is it the FAN heating up, or is it the PSU. If it were the latter then it needs replacing as they should not do that. It also applies to fans.
It looks to me like you are getting your early warning now.
Title: Re: Fake computer PSU cooling fan
Post by: Bobnova on Jun 01, 2011, 11:25 pm
Sounds like a standard heat controller fan PSU to me.
Most PSUs these days have a build in fan controller that runs the fan at slow speed when cold, then if/when the PSU starts heating up (like when your computer goes from an idle load of 50w to a full power load of >300w) it spins the fan faster.
Probably 90% of the non-crap PSUs sold these days do it.
Title: Re: Fake computer PSU cooling fan
Post by: bld on Jun 01, 2011, 11:30 pm

Quote
As soon as the PSU heats a bit up, the fan spins fast enough to be in the expected range.

That sounds like a sick (in the old fashion use of the word) PSU. You need to find out what is changing when it heats up. Is it the FAN heating up, or is it the PSU. If it were the latter then it needs replacing as they should not do that. It also applies to fans.
It looks to me like you are getting your early warning now.

Huh? Nothing wrong with the PSU doing that, it is supposed to do it. It is regulating the fan's rpm depending on the temperature.

The fan is spinning at a constant speed at any voltage, only problem was that at low voltages, it was spinning slower than the stock in the PSU. As soon as it gets more voltage it is exponentially speeding up with a linear rising voltage. That is why it only beeps while the PSU is running it at the lowest voltage the fan controller in it is made to do.


Sounds like a standard heat controller fan PSU to me.
Most PSUs these days have a build in fan controller that runs the fan at slow speed when cold, then if/when the PSU starts heating up (like when your computer goes from an idle load of 50w to a full power load of >300w) it spins the fan faster.
Probably 90% of the non-crap PSUs sold these days do it.

Yeah, except this is temperature controlled.

It is an Enermax Galaxy 1000W, and it should be pretty good, and when I look inside it, it is also very tough build when I compare it to some cheap PSU's I got. Sadly they saved too many money on the fan's used in it.