CoolBook review


Background

I fought off buying my MacBook Pro just long enough for the hardware problems to surface, but not quite long enough for them to be addressed. In retrospect I think I faired reasonably well: Sure the screen is bent, and so doesn’t sit flush when closed. OK the machine gets a bit toasty under load, but that’s kind of handy on a cold winter’s night. And yes, there is the annoying buzz when it’s idling on battery power. Essentially all minor faults which you might have expected to be weeded out during QA, but it was a first generation machine and so always a bit of a gamble.

Over the past year, numerous solutions to these various ills have emerged, preying on the insecurities of the betrayed early adopter Apple fanboys. Bear with me whilst I recollect this period of false hope.

The whine

Remember the saga of the SpeedIt kernel extension – promising an end to the processor whine, improved battery life and thereby entrance to paradise? SpeedIt development was sporadic and poorly communicated. Countless deadlines for the “next beta” were announced with much fanfare and then broken without a word, leading to tumultuous flame wars in the discussion forums. Those who dared question whether the developers could pull it off were attacked in case they dissuaded them from continuing their heroic work. There was the special license agreement, where registered users were asked to email the company boss on her birthday to say thanks for sponsoring this important work. Then finally, in a plot seemingly lifted from Home and Away, two core staff members were injured in a motorcycle accident. The emotional outpourings were reminiscent of another crash, and I have to say I tuned out at this point. Coming back to it now, I can’t find any trace of this snake oil at increw, although the source code is still available via their trac, development seems to have stalled.

The furnace

The SpeedIt guys did manage to provide a method to read the temperature of the Core Duo processor, and consequently MBP owners become even more aware of the inferno raging beneath their finger tips. This led the truly desperate to crack open their laptop and improve the thermal efficiency of the CPU+GPU heat sinks by carefully reapplying the thermal paste.

More recently a less invasive option has emerged, whereby you can run the fans more aggressively than the profile provided by Apple. Both Fan Control and smcFanControl allow you to accomplish this, no doubt allowing some proud MBP owners to use their built in keyboard for day to day use for the first time. Thankfully, although toasty, mine has never quite blackened flesh.

The contender

I think CoolBook first launched in late 2006. It’s angle was to lower the heat generated by the CPU by undervolting it. The general idea is that the voltage + frequency pairs that the CPU are set to operate at by Apple are chosen to be stable for as wide a sample of CPUs as possible. By tuning the pairs for your particular CPU, you may be able to run it at a lower voltage for any given frequency. This will cause it to generate less heat, and so hopefully result in a cooler system.

Although CoolBook is free to download, you can only experiment with its undervolting capabilities once you have paid the $10 registration fee. This was enough to put me off for 6 months, but I finally weakened – it’s cheaper than therapy after all, and has recently hit version 2, now boasting a new frequency throttling feature.

The manual recommends that you begin undervolting your machine by determining 2 base frequency/voltage pairs: The lowest stable voltage for the highest frequency, and the highest stable frequency for the lowest voltage. The process used to determine these was as follows: First set the frequency to the maximum for your machine (2GHz in my case), and then reduce the voltage to the lowest stable setting. Too low and you’ll get a kernel panic, so it pays to notch it down one step at a time. Once I thought I’d identified the lowest stable voltage, I ran at 10min CPUTest session, which loads the CPU presumably by carrying out a number of processor intensive calculations with known results. I had to edge the voltage up a few steps to get the tests to complete successfully. My lowest stable voltage for the highest frequency result was as follows:

Frequency(MHz)Voltage (V)
Default20041.2625
Optimised20041.1375

Default and lowest stable voltage for the highest frequency

So a reduction of 0.125V (9.9%) from the default setting. The next step is to find the highest stable frequency for the lowest voltage. Setting the voltage to 0.95, I edged the frequency up a step at a time, following a similar process to before:

Frequency(MHz)Voltage (V)
Default10020.9500
Optimised15030.9500

Default and highest stable frequency for the lowest voltage

This time I’m able to run clock the CPU 50% faster than the Apple default at the lowest available voltage. Seems pretty good, but what difference does it make to my every day work activities?

Temperature

Having identified these two pairs, I plugged them into the Mains Adapter profile setting and chose the medium throttle setting. This would cause the machine to idle at the lower setting, but ramp up under load:

Frequency(MHz)Voltage (V)
20041.1375
15030.9500

Adapter profile used for temperature comparison

To see what difference this made to the operating temperature when connected to the mains, I ran some real world tasks and recorded the temperature profile and fan speed over a 5 minute period once they had stabilised. For comparison I performed the same tasks with the “Normal” energy saving profile in system preferences with CoolBook disabled:

TaskNormalCoolBook
°CRPM°CRPM
Java unit tests78.2~190076.4~1400
Rails unit tests76.8100072.71000
WMA->MP3 transcoding77.9~120073.91000

Average temperature and RPM under various loads

These results suggest that undervolting the CPU does result in a cooler system. For the Java unit test suite the temperature difference is 1.8°C, but the fans are spinning ~500RPM slower. For the Rails tests the fan speeds are similar, but the CPU temperature is 3.9°C lower. It’s worth remembering that when under load the machine will still be running at 2GHz so there should be little difference in performance between the two, although I didn’t try to confirm this.

Battery Life

The CoolBook documentation suggests that battery life might be extended by locking the CPU to the lowest voltage + lowest frequency pair, in my case 1002MHz/0.9500V. To see what impact this would have on battery life, I performed my daily Rails development chores, interspersed with some web browsing and important client email digestion – bien sur. I recorded the time taken for a fully charged battery to run down with the normal energy saving setting and CoolBook managing the processor throttling. Each setting was repeated twice, and the times averaged:

SettingTime to discharge
Normal 151mins
CoolBook151mins

Average battery life in the salt mine

So no improvement in terms of battery life, which seems a little disappointing but may just be because my daily activities don’t cause enough load to step up the CPU for significant amounts of time. No doubt I could load the machine up and see how quickly it ran down in each case, but for me that result is not of interest, since it doesn’t reflect my real world use.

Conclusion

After investing an hour or in locating the base frequency/voltage pairs for my CPU, I was able to reduce the temperature of my MBP under load by up to 4.0°C. In some circumstances the fans also ran slower, and noticeably quieter. Sadly I had no luck in extending the battery life beyond 2.5 hours, ho-hum!

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts
Escaping the flash
Rails – do you want fries with that?

Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

Did you set your idle Frequency to 1.5HGz? That will use more power at idle than you want.

Hi Jaap,

For the battery test I locked the frequency/voltage to 1002MHz/0.9500V. Sadly I didn’t observe any improvement in battery life. What’s your setup, and have you seen better battery performance using CoolBook?

Simon

Hi

I guess Coolbook is only supposed to extend your battery life-time, not the battery capacity.

Heat damages batteries, so the cooler it is the better.

My two cents…

Hi bikoz,

I hadn’t thought of the battery life-time angle, so I emailed Magnus Lundholm, Coolbook’s author to check what he thought Coolbook could achieve .

He indicated that it should extend the overall life-time as you suggest, but also extend the time a single charge lasts. Presumably it reduces the power consumption of the CPU so a battery with a given capacity lasts longer.