Someone should email the original author of the program.
Yeah that would be cool!
hey how do you run this program? I downloaded but all i see is he source codes for the mac pro!
and no actual app
Someone should email the original author of the program.
Yeah that would be cool!
hey how do you run this program? I downloaded but all i see is he source codes
and no actual app
You have to compile it.
It doesn't work for the 2009 Mac Pro.
The codes for the sensors and the fans are wrong and my digging hasn't found where to put them in, even if I DID know where they were!
ok now I'm confused
whats the best fancontrol to have for a Mac Pro (8core xeon) ?
I have version 2.1.3.1 now
I guess i am a bit non techie, cause i dont know how to compile it?
You need Xcode.
Im working on it now, see what I can come up with, so far i've got for the fan codes:
F0Ac - PCI
F0Tg - PCI
F1Ac - Power Supply
F1Tg - Power Supply
F3Ac - Intake & Exhaust - Linked
F3Tg - Intake & Exhaust - Linked
F4Ac - Processor Fan
F4Tg - Processor Fan
But I can't see where in the source code to change this!
It should be easy!
I think FanControl and smcFanControl are different products for different kinds of users. I think FC is better for non-technical non-aggressive users. Kids, Moms, non-owners, etc.
smcFC is better for tweakers. With it you build a set of preference settings. I have 13 in mine. 4 different ones for 3 different room temperatures each plus one called Temporary_Blast which is all fans one notch back from full throttle.
By your description smcFC operates differently on your system than it does on mine.
The problem with Mac Pro (at least the 2006/2007 models) is that the firmware that is supposed to "automatically" up the fan speed at a certain temperature is busted for all intents and purposes. The fans never increase their speed. Maybe just before the thing bursts into flames (like MBP have been actually known to do) the fans will increase or something I dunno and I'm not about to try and find out either.
So there's FanControl which is like you say "automatic" for brainless, inattentive or for unattended operation, and then there's smcFanControl which sets the fan speed manually. What one sets it to is what it will always be till they set it to something else. It won't go higher, and it won't go lower (on it's own) - ever. One sets the speeds in order to achieve the temp they want. And since Apple honestly doesn't seem to know the optimal temperatures for various components then a tweaker who does is much better off setting it himself.
EDIT: Actually after rereading both posts we're saying the same things here. I guess the "I completely disagree" part threw me off.
EDIT: EDIT: Also I can't remember specifically now what the problems were but in mid 2007 to about 2008 FC was terribly unstable on my system. I haven't retried it since then. If it's better now then that's kewl!
.
MBP: 1000RPM up until 40C, then increases its way up to 6000RPM at 70C or over. Safari/MSN/Email load, the temps sit around 45-50C and 1800-2200RPM, would you bother doing that with smc?
If you do then you have more free time than I do!
MP: It would be (when it works - currently 1200 up to 40C) 500RPM up until 40C then increase up to their relative maximums at 90C.
At 100% load it sits at 65-75C core temp and 1200-1500RPM for intake/exhaust and 1800-2000 for CPU fan.
smcFancontrol IMO is redundant app now, I just use it to display the temp and fan speeds on my MBP.
It won't go above your personal temperature, as if it increases the fan speeds increase, it levels out when it finds a equilibrium and every day this equilibrium is different!
B
The problem with Mac Pro (at least the 2006/2007 models) is that the firmware that is supposed to "automatically" up the fan speed at a certain temperature is busted for all intents and purposes. The fans never increase their speed. Maybe just before the thing bursts into flames (like MBP have been actually known to do) the fans will increase or something I dunno and I'm not about to try and find out either.
Actually once the OS is up and running it controls the fans, not the firmware. All those fan control programs are simply telling the OS to increase the fan speed. Which in turn passes it on to the hardware.
As for the app, yes it is still buggy! (My Mac Pro 2009 version that is, the MBP version is perfect) Because im not a proficient coder! Someone who knows exactly what they are doing would have fixed it by now. I don't have access to all the temp sensor codes for the HDs, GPU, PSU etc. And yes, that is the app I use on my Macbook Pro, and does the job perfectly. There is a extended version which does left and right separately but i found it pointless.
The version im trying to edit for my MP is a version that was first intended for the iMac, and i've changed it to three zones, PSU, PCI(HDs) and CPU.
The intake and exhaust are linked and the CPU fan is 142.5% of those speeds, so I just increase the F2Mn and the thing adjust accordingly to what I suppose apple thinks is a equal flow. Not going to argue with that! smcFanControl does the same thing so its not a 'bug'.
If the CPU increases in temp after 40C then yes, the fans start to increase. When the temps drop then the fan decreases to my set minimum. So they are never working harder or making more noise than is necessary!
For example now, ambient temps are up 4C from earlier, CPU intake/exhaust are up 200RPM and main CPU is up 350RPM. CPU core temps are up only 2C, thanks to the increase in fan speeds.
And yes that is how it works, except it does it better than that. It works out the *exact* fan speed to correlate with that temperature along the line, eventually it gets to a equilibrium. Drops in temps, decreases the speeds.
If you want it to increase quicker, you set the min temp and max temp start values for me 45C is minimum up to max at 80C, so it works out the RPM per degree and works it out from there.
The issue with what you outline there is what I experience in windows using Ati Tray Tools, the GPU hits say 60C where it changes from 35 to 40% fan speed, which is a audible change and the 40% fan speeds drops the temps back to less than 60C which changes the fan speed to 35%. And it does this *constanly* which is hellishly annoying! This has none of that, smooth changes of fan speeds of 100RPM at a time.
Intake/Exhaust/CPU controlled using the CPU core temp (hottest thing) in mine (earlier in the thread someone changed it to use the FB-DIMM temp sensors as they used to get HOT, DDR3 doesn't reach more than 50C in the 2009 MP under 100% load)
PCI/HD fan controlled using the HD (Although their temps hardly change in a MP TBH!) and the gfx card temp.
PSU fan controlled by its respective temperature sensors.
I don't have the coding skill to work this out.
Ideally i'd like a total re-write to allow for increased values if the computer has been idle for 30 mins, etc. But I dont think anyone has the time (I will in the summer to at-least learn) to get this working how I and many others want.
Apple have nothing to do with it IMO. They have set the fans to a speed which will ensure correct operation in all conditions (sometimes they get it wrong (yet my MP runs solidly at 95C load ) its just us that want to reduce it. I for one as I have turbo boost and like things being cool (from my overclocking days).
Actually once the OS is up and running it controls the fans, not the firmware. All those fan control programs are simply telling the OS to increase the fan speed. Which in turn passes it on to the hardware.
Wow you use hardware monitor! I didn't deem it worth the expense, mainly because it picks up no other sensors apart from temperatures which is weird! Anyway...
Its a program I am editing from the open source code which can be easily downloaded.
I need someone to give me a list of sensor codes!!! the smc sensor scan shows nothing for temps
artificial.cpuload.0: Processor Load A (local computer)
artificial.cpuload.1: Processor Load B (local computer)
artificial.cpuload.2: Processor Load C (local computer)
artificial.cpuload.3: Processor Load D (local computer)
artificial.cpuload.4: Processor Load E (local computer)
artificial.cpuload.5: Processor Load F (local computer)
artificial.cpuload.6: Processor Load G (local computer)
artificial.cpuload.7: Processor Load H (local computer)
artificial.cpuload.average: Processor Load (average) (local computer)
artificial.os.processcount: Number of Processes (local computer)
artificial.raidstatus.A553BEE6-95AF-4C2D-A626-DB0F4F2EFB19: RAID Status A553BEE6-95AF-4C2D-A626-DB0F4F2EFB19 (local computer)
artificial.smartstatus.Maxtor 7V300F0-V60MAJ7G: S.M.A.R.T. Status Maxtor 7V300F0 V60MAJ7G (local computer)
artificial.smartstatus.Maxtor 7V300F0-V60QP24G: S.M.A.R.T. Status Maxtor 7V300F0 V60QP24G (local computer)
artificial.smartstatus.Maxtor 7V300F0-V60QWG9G: S.M.A.R.T. Status Maxtor 7V300F0 V60QWG9G (local computer)
bresink.dts.0: CPU Core 1 (local computer)
bresink.dts.1: CPU Core 2 (local computer)
bresink.dts.2: CPU Core 3 (local computer)
bresink.dts.3: CPU Core 4 (local computer)
bresink.dts.4: CPU Core 5 (local computer)
bresink.dts.5: CPU Core 6 (local computer)
bresink.dts.6: CPU Core 7 (local computer)
bresink.dts.7: CPU Core 8 (local computer)
bresink.ia32.frequency: CPU Clock Frequency (local computer)
gpusensor.NVDA.6: Graphics Processor (local computer)
smart.Maxtor 7V300F0.V60MAJ7G: SMART Disk Maxtor 7V300F0 (V60MAJ7G) (local computer)
smart.Maxtor 7V300F0.V60QP24G: SMART Disk Maxtor 7V300F0 (V60QP24G) (local computer)
smart.Maxtor 7V300F0.V60QWG9G: SMART Disk Maxtor 7V300F0 (V60QWG9G) (local computer)
smart.WDC WD10EACS-00ZJB0.WD-WCASJ0522351: SMART Disk WDC WD10EACS-00ZJB0 (WD-WCASJ0522351) (local computer)
smc.current.DED: CPU A (local computer)
smc.current.DEE: CPU B (local computer)
smc.current.NUD: Memory VRM Supply A (local computer)
smc.current.NUE: Memory VRM Supply B (local computer)
smc.current.OE3: Northbridge (local computer)
smc.current.qE3: Power Supply 1 Line 1 (local computer)
smc.fan.CPU_MEM: Fan CPU/Memory (local computer)
smc.fan.EXHAUST: Exhaust Fan (local computer)
smc.fan.IO: Fan Expansion Slots (local computer)
smc.fan.PS: Power Supply Fan (local computer)
smc.power.DED: CPU A (local computer)
smc.power.DEE: CPU B (local computer)
smc.power.NUD: Memory VRM Supply A (local computer)
smc.power.NUE: Memory VRM Supply B (local computer)
smc.power.OE3: Northbridge (local computer)
smc.power.qE3: Power Supply 1 Line 1 (local computer)
smc.temperature.BR3: Ambient Air (local computer)
smc.temperature.DJD: CPU A Heatsink (local computer)
smc.temperature.DJE: CPU B Heatsink (local computer)
smc.temperature.IR3: Hard Drive Bay 1 (local computer)
smc.temperature.IR4: Hard Drive Bay 2 (local computer)
smc.temperature.IR5: Hard Drive Bay 3 (local computer)
smc.temperature.IR6: Hard Drive Bay 4 (local computer)
smc.temperature.NR3: Memory Riser Card A Position 1 (local computer)
smc.temperature.NR4: Memory Riser Card A Position 2 (local computer)
smc.temperature.NR5: Memory Riser Card A Position 3 (local computer)
smc.temperature.NU3: Memory Module A1 (local computer)
smc.temperature.NU4: Memory Module A2 (local computer)
smc.temperature.NU5: Memory Module A3 (local computer)
smc.temperature.NU6: Memory Module A4 (local computer)
smc.temperature.NU;: Memory Module B1 (local computer)
smc.temperature.NU<: Memory Module B2 (local computer)
smc.temperature.NUD: Memory Module B3 (local computer)
smc.temperature.NUE: Memory Module B4 (local computer)
smc.temperature.OJ3: Northbridge Heat Sink (local computer)
smc.temperature.TE3: Expansion Slots (local computer)
smc.temperature.qE3: Power Supply Location 1 (local computer)
smc.temperature.qE4: Power Supply Location 2 (local computer)
smc.voltage.DED: CPU A (local computer)
smc.voltage.DEE: CPU B (local computer)
smc.voltage.NUD: Memory VRM Supply A (local computer)
smc.voltage.NUE: Memory VRM Supply B (local computer)
smc.voltage.OE3: Northbridge (local computer)
smc.voltage.qE3: Power Supply 1 Line 1 (local computer)
Plan is (if someone can find the time to help me with this)
Three separate zones, each having there own min speeds and min and max temp controls.
1. CPU area
Controlled by: CPU core temp/memory temp depending on which you fancy.
Controls: Intake, Exhaust, CPU fan (they are linked by the SMC and as above the CPUBOOSTA is 142.5% that of the Intake/Exhaust.
My Setup: 500RPM to 40C then max at 80C.
2. PCI area
Controlled by: Average of the HD temps and/or GPU temp
Controls: Single intake fan and (if possible - but highly unlikely) the GPU fan.
My Setup: 500RPM to 30C then max at 50C (Based on HDs temps)
3. Power supply
Controlled by: Highest of the two sensors in the PSU
Controls: Its own fans
My setup: 500RPM to 40C, max at 70C.
This however, is a lonnnggg way off. I could wright the logic for it by reading in and out of the SMC and adding a control panel is beyond me!
// ----- compute the desired/target CPU fan speed
// determine the desired/target RPM indicated by the preference settings
if (CPUtemp < lowerTempThreshold) {
CPUfanTargetRPM = CPUfanBaseRPM;
} else if (CPUtemp > upperTempThreshold) {
CPUfanTargetRPM = MFMaxCPUfanRPM;
} else {
CPUfanTargetRPM = CPUfanBaseRPM +
((floor(CPUtemp + 0.5) - lowerTempThreshold) /
(upperTempThreshold - lowerTempThreshold) *
(MFMaxCPUfanRPM - CPUfanBaseRPM));
}
if (MFDebugCPU) NSLog (@"CPUtemp = %f\n", CPUtemp);
if (MFDebugCPU) NSLog (@"rounded CPUtemp = %f\n", floor(CPUtemp + 0.5));
if (MFDebugCPU) NSLog (@"ideal CPUfanTargetRPM = %d\n", CPUfanTargetRPM);
if (MFDebugCPU) NSLog (@"CPUfanRPM = %d\n", CPUfanRPM);
// correct the fan speed if we don't have a fan-speed value/reading from smc
if (CPUfanRPM == 0) {
CPUfanRPM = CPUfanTargetRPM;
if (MFDebugCPU) NSLog (@"corrected CPUfanRPM = %d\n", CPUfanRPM);
} /*else { // pretend fan speed is aligned to nearest MFRPMspeedStep boundary
alignmentRPM = (CPUfanRPM % MFRPMspeedStep);
CPUfanRPM = CPUfanRPM - alignmentRPM;
if (alignmentRPM > (MFRPMspeedStep / 2)) CPUfanRPM = CPUfanRPM + MFRPMspeedStep;
if (MFDebugCPU) NSLog (@"aligned CPUfanRPM = %d\n", CPUfanRPM);
} */
// determine difference between fan's desired/target RPM and the current RPM
adjustmentRPM = (CPUfanTargetRPM - CPUfanRPM);
if (abs(adjustmentRPM) < (MFRPMspeedStep / 4)) {
adjustmentRPM = 0; // current speed's within 1/2 of an RPM step, leave it
} else { // ensure the +/- difference is not greater than the maximum allowed
if (adjustmentRPM < -MFMaxRPMspeedStep) adjustmentRPM = -MFMaxRPMspeedStep;
if (adjustmentRPM > MFMaxRPMspeedStep) adjustmentRPM = MFMaxRPMspeedStep;
}
if (MFDebugCPU) NSLog (@"adjustmentRPM = %d\n", adjustmentRPM);
// compute the new desired/target RPM
CPUfanTargetRPM = CPUfanRPM + adjustmentRPM;
if (MFDebugCPU) NSLog (@"next CPUfanTargetRPM = %d\n", CPUfanTargetRPM);
// set the desired/target RPM to the nearest MFRPMspeedStep-RPM boundary
alignmentRPM = (CPUfanTargetRPM % MFRPMspeedStep);
CPUfanTargetRPM = CPUfanTargetRPM - alignmentRPM;
if (alignmentRPM > (MFRPMspeedStep / 4)) CPUfanTargetRPM = CPUfanTargetRPM + MFRPMspeedStep;
if (MFDebugCPU) NSLog (@"%d RPM-aligned next CPUfanTargetRPM = %d\n", MFRPMspeedStep, CPUfanTargetRPM);
// when decreasing speed, don't target below the set "slowest fan speed" and
// when increasing speeds, don't target above the maximum safe fan speed
if (MFDebugCPU) NSLog (@"CPUfanBaseRPM = %d\n", CPUfanBaseRPM);
if ((adjustmentRPM < 1) && (CPUfanTargetRPM < CPUfanBaseRPM)) CPUfanTargetRPM = CPUfanBaseRPM;
if (CPUfanTargetRPM > MFMaxCPUfanRPM) CPUfanTargetRPM = MFMaxCPUfanRPM;
if (MFDebugCPU) NSLog (@"final next CPUfanTargetRPM = %d\n\n", CPUfanTargetRPM);
// NOTEs
// - the UI/slider increments should be set to ensure that the fan settings are
// are in MFRPMspeedStep increments
#define MFRPMspeedStep 25
#define MFMaxRPMspeedStep 300
I think FanControl and smcFanControl are different products for different kinds of users. I think FC is better for non-technical non-aggressive users. Kids, Moms, non-owners, etc.
smcFC is better for tweakers. With it you build a set of preference settings. I have 13 in mine. 4 different ones for 3 different room temperatures each plus one called Temporary_Blast which is all fans one notch back from full throttle.
I have the temps, in the menu bar plus I use MenuMeters http://mac.softpedia.com/get/System-Utilities/MenuMeters.shtml changing a fan setting is completely manual. Just glance at the activity across the menu bar, click on the smcFC menubar gadget and select a new "Active Setting".
For me smcFC is superior but other like FC better. When I first looked into it 3 years ago FC had many stability issues as well. I dunno about the newest version.
EDIT: I just noticed I may have completely missed the nature of your question.