Go Down

Topic: Fake computer PSU cooling fan (Read 2 times) previous topic - next topic

bld

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?
captain-slow.dk | non contagious!

mowcius

Sounds like a job for a 555 timer

bld


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.
captain-slow.dk | non contagious!

pwillard

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.

mowcius

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

pwillard

http://www.maxim-ic.com/app-notes/index.mvp/id/3327

bld


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
captain-slow.dk | non contagious!

Grumpy_Mike

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.

BenF

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).

bld


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...
captain-slow.dk | non contagious!

Grumpy_Mike

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.

Bobnova

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.

bld


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.
captain-slow.dk | non contagious!

Grumpy_Mike

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.

bld


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...
captain-slow.dk | non contagious!

Go Up