Jump to content
RESET Forums (homeservershow.com)
MihaiT

Faking the fan signal

Recommended Posts

MihaiT

Moderator edit -

*******************************************************************************************

The original post that started this topic discusses using an Arduino microcontroller to modify the fan control on the Gen8.  In Post #7 below the author discovered the Arduino is not needed.  I have left the original discussion here since it contains some additional information about what occurs when the fan is disconnected or fails.

 

For the solution to Faking the fan signal.....jump to post #7.

 

- CSKENNEY

********************************************************************************************

 

I had an unused Arduino pro mini ( 5V/16Mhz) and I've decided to try faking the fan's tachometer signal. 

 

It sort of works ( you'll see why ) and probably someone with good knowledge in electronics can make it better.

 

All that the arduino does is to measure the control voltage on the fan's PWM driving pin and output pulses of a proportional frequency to the tachometer pin.

I used no voltage smoothing filters ( like a low pass RC on the PWM pin ) and read the voltage directly. It's quite imprecise  and probably that's why the MS keeps blinking the red light :) ( but worked fine on an intel motherboard )

 

What happens ? At first the server stops with a no fan error and after restarting, it works (read POSTs and loads the OS), but the front light blinks red form time to time.

 

Source code attached.

 

I've made a (bad) video of my attempt. At 1:40 you'll see the FAN error and at 3:00 you'll see the system booting. 

 

Hope this helps!

 

http://youtu.be/SQRjK51PcDs

 

PS: I won't try to improve this any further. 

FanFake.txt

Edited by cskenney
redirect to solution in post #7

Share this post


Link to post
Share on other sites
riahc3

PS: I won't try to improve this any further.

Reason? You could make a killing by allowing third party fans...

Share this post


Link to post
Share on other sites
MihaiT

Reason? You could make a killing by allowing third party fans...

 

I just don't have the time plus proper tools and I need an oscilloscope to check the levels on the tach. pin.

 

I was wrong in assuming that:

- the pwm signal is 0-5V, it's actually 0-3.3V (doh)

- the tach. line seems to be an open collector type and not TTL compatible

 

This means that the arduino will need some external components like a low pass filter to smooth the PWM signal reading (simple RC filter), and an open collector output for the tach signal.

 

I'll try to borrow an oscilloscope from someone and take another stab at it in the near future, but I can't promise anything. 

Edited by MihaiT

Share this post


Link to post
Share on other sites
riahc3

I just don't have the time plus proper tools and I need an oscilloscope to check the levels on the tach. pin.

 

I was wrong in assuming that:

- the pwm signal is 0-5V, it's actually 0-3.3V (doh)

- the tach. line seems to be an open collector type and not TTL compatible

 

This means that the arduino will need some external components like a low pass filter to smooth the PWM signal reading (simple RC filter), and an open collector output for the tach signal.

 

I'll try to borrow an oscilloscope from someone and take another stab at it in the near future, but I can't promise anything.

Sounds great.

 

Maybe if you document everything, someone can pick up and make a fan mod. If the RAID controllers and fan speed/noise problem people are having, they would be grateful!

 

Thank you for your work

Share this post


Link to post
Share on other sites
cskenney

I just don't have the time plus proper tools and I need an oscilloscope to check the levels on the tach. pin.

 

I was wrong in assuming that:

- the pwm signal is 0-5V, it's actually 0-3.3V (doh)

- the tach. line seems to be an open collector type and not TTL compatible

 

This means that the arduino will need some external components like a low pass filter to smooth the PWM signal reading (simple RC filter), and an open collector output for the tach signal.

 

I'll try to borrow an oscilloscope from someone and take another stab at it in the near future, but I can't promise anything. 

What makes the tach line incompatible with TTL?  Voltage level?

 

An o-scope is really critical to insure you have the correct voltages and that your signals are not noisy.

Share this post


Link to post
Share on other sites
MihaiT

What makes the tach line incompatible with TTL?  Voltage level?

 

An o-scope is really critical to insure you have the correct voltages and that your signals are not noisy.

 

Yes. The tach. output could be 0 to fan source voltage (12V), and I'm beginning to think that the motherboard circuitry is like the one referenced here: http://www.pavouk.org/hw/fan/en_fan4wire.html

 

Other good reads: 

http://www.analog.com/library/analogDialogue/archives/38-02/fan_speed.html

http://www.maximintegrated.com/app-notes/index.mvp/id/1784

 

I've left the server at the office ( couldn't stand the noise) so, I don't have access to it until Monday.

I'm planning to take a closer look at the motherboard, fan model, etc., and borrow an oscilloscope to have a clue and avoid electronics damage.

Share this post


Link to post
Share on other sites
MihaiT

Forget about the Arduino, although for a TTL, 5V PWM FAN that sketch will work as it is.

 

DISCLAIMER:

---

Use it at your own risk, I'm not responsible for any damage that will/might occur.

Will void warranty.

Electrical hazard: always unplug the power cord.

---

 

The good news ?!?!

There is no need for external circuitry, the type of fan present in the MS Gen8 has a RD ( rotational detect ) tachometer signal.

What that means ? It means that it doesn't output pulses but just a low voltage ( 0.12V measured ) if the fan spins.

 

 rd.png

 

Connection: 

You must tie the RD sense pin (yellow cable on the fan wire harness ) to both grounds ( black ).

 

 

conn.png

 

 

Bad quality proof video: 

 

http://www.youtube.com/watch?v=ng2wZP5OP_4

Edited by MihaiT
  • Like 1

Share this post


Link to post
Share on other sites
oj88

I was also looking into that locked rotor pin. If you pull the pin to ground, that should theoretically fool iLO into thinking that the attached fan is still turning.

Share this post


Link to post
Share on other sites
MihaiT

I was also looking into that locked rotor pin. If you pull the pin to ground, that should theoretically fool iLO into thinking that the attached fan is still turning.

 

Maybe I wasn't clear enough.

Connecting the Rotation Detect/ Tachometer pin to the ground, and SHORT CIRCUIT THE GROUND pins from the FAN CONNECTOR will make the server "see" the fan as present and working.

 

 

My MS Gen8 ran for aboout 4 hours (I had to go home :) ) with the above hack, and the fan connected to a variable speed controller. 

I'll come back with another post explaining how to connect the things. 

 

IT'S MANDATORY TO SHORT THE GROND PINS IN THE MOTHERBOARD CONNECTOR. SIMPLY CONNECTING THE ROTATION DETECT (TACHOMETER/RPM) PIN TO THE GROUND WON'T DO AND IT WILL TRIGGER THE MISSING FAN ALARM.

Edited by MihaiT

Share this post


Link to post
Share on other sites
MihaiT

Motherboard FAN connector pinout :

 

fan.png

(right click, open in new tab)

 

 

No FAN attached :

 

nofan.png

(right click, open in new tab)

 

Attach a more silent FAN with rotation detect/ locked rotor signal :

 

rdfan.png

(right click, open in new tab)

 

Personally I'd go replacing the FAN with a silent one which has ~ 75% of the original fan's airflow. I don't use the server for heavy tasks and I think it will be enough. 

 

Whatever you do, pay attention and leave the thermal protection enabled in the BIOS. If you have add-on cards or high env. temp., try to install some smaller fans inside.

 

The original disclaimer still applies. 

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...