x220 thermal paste replacement
My ThinkPad x220 was released in April 2011 and has never had it's thermal paste replaced. Does it make any difference to do so? Lets find out.
First we have to measure the current thermal situation with the old paste. For that we collect some data and visualize it. Next we disassemble the device and apply new thermal paste. Then we measure the thermals again to see if anything changed.
The following script collects that data for us. We are stressing the laptop for 10min with a synthetic load and logging that. Then we do the same with the laptop only idling, no load, to compare.
Thermal data colector script
#!/bin/sh
# TODO: Make this more robust and less hacky.
date="$(date +"%T")"
logfile="$1-log-start-$date"
echo "Temperature,Frequency,FanRPM" > /tmp/$logfile
echo "Start recording Temperature, Frequency and FanRPM to $logfile"
echo "Press ctrl-c to close this script and stop recording."
get_thermalzones() {
cd /sys/class/thermal/ || exit # change to dir or exit
items=(thermal_zone*)
amount=${#items[@]}
echo $amount
}
thermalzones=$(get_thermalzones)
cpucount="$(lscpu | grep "^CPU(s)" | awk '{print $2}')"
while true; do
temptotal="$(cat /sys/class/thermal/thermal_zone*/temp | paste -sd '+' | bc)"
# computation of thermal average
temp=$( echo "($temptotal/$thermalzones)/1000" | bc )
# these values are needed to calculate the average frequency of all cores
freqtotal="$(cat /proc/cpuinfo | grep "^[c]pu MHz" | awk '{print $4}' | paste -sd '+' | bc)"
# computation of frequency average
freq=$( echo "$freqtotal/$cpucount" | bc )
# Get fan's RPM
rpm="$(cat /sys/bus/platform/devices/thinkpad_hwmon/hwmon/hwmon3/fan1_input)"
# calcluating cpu Wattage , / 1000000000000
#power="$( echo "$(cat /sys/class/power_supply/BAT*/current_now) * $(cat /sys/class/power_supply/BAT*/voltage_now) / 1000000000000" | bc )"
echo "$temp,$freq,$rpm" >> /tmp/$logfile
sleep 1
done
In "Table 1" we see that there is a 4.49% temperaure reduction and a 45.01% reduction in fan speed (RPM).
Further in "Plot 1", we can see the temperature changes over time.
Both tests start at around 45-46 degrees Celsius. With the old thermal paste the temperature rises until it reaches a settle point of around 47 degrees Celsius. Comparing this to the new thermal paste where the temperature sinks until it settles at 43 degrees Celsius. Resulting in a reduction of 4 degrees Celsius during idle.
Laptop in idle | °Celsius | Fan-RPM | CPU(Mhz) |
---|---|---|---|
Old Paste | 45.48 | 2353.68 | 2206.06 |
New Paste | 43.48 | 1488.85 | 2200.31 |
Difference | 4.49% | 45.01% | 0.26% |
In "Table 2" the fan speed is more comparable. The fan ramps up to about its max speed during stress test. There is a temperature improvement 9.04%. Further in "Plot 2" we can see that the device never reaches its limit of 95 degrees Celsius, thus it won't start to throttle dramatically.
Laptop stress test | °Celsius | Fan-RPM | CPU(Mhz) |
---|---|---|---|
Old Paste | 93.80 | 4507.1 | 2752.11 |
New Paste | 85.68 | 4468.46 |
3070.74 |
Difference | 9.04% |
0.86% | 10.94% |