Hey all, jam_az and I (
The CGnome Project) did this little thing up awhile back, we just never bothered with it much after getting it working.
This has only been tested on the Phat PS3, but the Slim works in the same way, so it should work on it also if anyone wants to give it a go.
NOTE: It's as-is, so any bugs you find would be nice to hear about, but don't have a fit if nothing gets done about them.
A little info on the PS3 fan first...
The PS3 fan is a 12v ~2A monster that uses a PWM line to control the fan's speed. The 12v is turned on/off with the console, but the PWM line is what controls the speed of the fan. This PWM control line is 25kHz and 3.3v p/p. It's Duty Cycle changes from 20% to 100%, and what changes the fan's speed from 20% to 100%.
On initial start up the fan is run at around 30% or so for a couple of seconds, this ensures that it starts up and spins, then it's dropped to 20% after that until the PS3 heats up and then speeds it up accordingly. This 20% is too low for a default speed, so the PS3 Fan Controller here has been set to a default of 30% minimum, which is barely noticeable from the 20% as far as noise goes.
This PS3 Fan Controller also does not interfere with the normal operation of the on board fan controller, besides keeping the minimum setting at 30% instead of the 20% value. If you have the PS3 Fan Controller set to 40% and the PS3 heats up and needs the fan too run at 50%, it will override the PS3 Fan Controller setting and run at 50%, and blink the LEDs to let you know that it's in 'override' status. You can speed the PS3 Fan Controller up to match what the on board requires, then the LEDs will return to normal, or leave it to control itself and when the on board fan controller drops back to 40% or less the PS3 Fan Controller keeps the fans at the previous 40% setting and resumes normal operation. It also retains the setting you have it at when powered off, so there's no having to reset it over and over again.
Parts Needed
PIC 12F683 - U1
3.3v Regulator - U2
10k Resistors - R1 and R2
0.1uF (6.3v min) Capacitor - C1
10uF (6.3v Min) Capacitor - C2
LED Blue - D1
LED White - D2
N.O. Tact switch x 2 - S1, S2
HEX for 12F683 -
http://www.mediafire.com/download.php?jc91rliih2e5lq4The 3.3v Regulator is used to power the PIC, which is used to keep the PWM line the same 3.3v p/p 25kHz signal and then vary the Duty Cycle, so it's pretty much exactly the same as the PS3 driving the fan, but at the speed you want it.
The Blue and White LEDs were used because most of them can take the 3.3v with no Resistors. If you choose to use other colors or ones rated for less voltage then use the correct Resistors for them.
A note on the LEDs.
Only LED 1 is lit if speed is between 25% and 40%
LED 1 and 2 are lit if speed is between 40% and 60%
Only LED 2 is lit if speed is between 60% and 100%
LED 1 and LED 2 alternate (blink) in override mode.
Schematic (updated 6-10-12)
J2 is just for programming the PIC. (R1 and R2 must NOT be installed while programming the PIC)
J2.1 - Vpp
J2.2 - Vdd
J2.3 - Vss
J2.4 - PGD
J2.5 - PGC
J1 connects to the PS3 fan wires. Only the PWM (Gray) wire needs to be severed so the PS3 Fan Controller can be installed inline. The 12v and Ground wires can just be tapped into, or any Ground and 5v or more source could be used, but since the 12v and Ground are already right there they are the easiest to use.
J1.1 - 12v (Brown)
J1.2 - Ground (Black)
J1.3 - PWM from PS3 (Gray)
J1.4 - PWM to Fan (Gray)