# Raspi Check CPU TEMP AND SPEED

Post date: Apr 30, 2015 10:30:34 AM

#!/bin/bash

# cpustatus

#

# Prints the current state of the CPU like temperature, voltage and speed.

# The temperature is reported in degrees Celsius (C) while

# the CPU speed is calculated in megahertz (MHz).

function convert_to_MHz {

let value=\$1/1000

echo "\$value"

}

function calculate_overvolts {

# We can safely ignore the integer

# part of the decimal argument

# since it's not realistic to run the Pi

# at voltages higher than 1.99 V

let overvolts=\${1#*.}-20

echo "\$overvolts"

}

temp=\$(vcgencmd measure_temp)

temp=\${temp:5:4}

volts=\$(vcgencmd measure_volts)

volts=\${volts:5:4}

if [ \$volts != "1.20" ]; then

overvolts=\$(calculate_overvolts \$volts)

fi

minFreq=\$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq)

minFreq=\$(convert_to_MHz \$minFreq)

maxFreq=\$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq)

maxFreq=\$(convert_to_MHz \$maxFreq)

freq=\$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq)

freq=\$(convert_to_MHz \$freq)

governor=\$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)

echo "Temperature:   \$temp C"

echo -n "Voltage:       \$volts V"

[ \$overvolts ] && echo " (+0.\$overvolts overvolt)" || echo -e "\r"

echo "Min speed:     \$minFreq MHz"

echo "Max speed:     \$maxFreq MHz"

echo "Current speed: \$freq MHz"

echo "Governor:      \$governor"

exit 0