x220 thermal paste replacement
This ThinkPad x220 was produced 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 measure the current thermal situation with the old paste. For that we run the script bellow to collect data. Then we disassemble the laptop and apply new thermal paste. And finally we measure the thermals again to see if anything changed.
Thermal data colector script
The script gathers data for us by logging CPU temperature, fan frequency, and fan RPM in a file. We used gnuplot to visualize the collected data.
#!/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% |
