If you search for an interpretation to get a meaning out of the command
vcgencmd get_throttled
which might return something like:
throttled=0x50005
you will find many forum posts that basically tell you it is a bitcode and that you have to decode it following this table:
| Bit | Meaning |
|---|---|
| 0 | Under-voltage detected |
| 1 | Arm frequency capped |
| 2 | Currently throttled |
| 3 | Soft temperature limit active |
| 16 | Under-voltage has occurred |
| 17 | Arm frequency capped has occurred |
| 18 | Throttling has occurred |
| 19 | Soft temperature limit has occurred |
(from this GitHub page)
yyyyeaaahhhh right.
Finally I found a comprehensible explanation here and I decided to write a script around it, and since I know PHP this is what I used.
So, from your home folder,
nano throttled.php
paste this inside:
<?php
$codes=array(
0=>"Under-voltage detected",
1=>"Arm frequency capped",
2=>"Currently throttled",
3=>"Soft temperature limit active",
16=>"Under-voltage has occurred",
17=>"Arm frequency capped has occurred",
18=>"Throttling has occurred",
19=>"Soft temperature limit has occurred");
$output=exec("vcgencmd get_throttled");
$output=explode("0x",$output);
if ($output[1]=="0") {
echo "all fine, lucky you\n";
exit();
}
$output=str_split($output[1]);
$bincode="";
foreach ($output as $hex) {
$bincode.=str_pad(base_convert($hex,16,2),4,"0",STR_PAD_LEFT);
}
$bincode=array_reverse(str_split($bincode));
foreach ($bincode as $k=>$v) {
if ($v) {
echo $codes[$k]."\n";
}
}
And then run:
php throttled.php