1

This is a bit of a follow up to Why is my Pi running at 700MHz all the time? and Overclocking - CPU Frequency Measurement Accuracy: vcgencmd vs cpuinfo_cur_freq

I have a Raspberry Pi B3+ (at least that's as what I bought it).

I'm trying to figure out why my CPU seems never to run faster than 600Mhz:

vcgencmd measure_clock arm
frequency(45)=600000000

I enabled the performance governor:

echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Then I ran a stress test:

stress -c 4 -t 60

While that is running, I still get 600Mhz from vcgencmd measure_clock arm.

I did no special config or overclocking (yet):

grep freq /boot/config.txt 
#arm_freq=800

The default seems to be fine:

vcgencmd get_config arm_freq
arm_freq=1400

The Pi should be able to run at up to 1.4Ghz:

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
1400000

So what's going on here? What am I missing? Is my stress test wrong?

4
  • stress test looks OK - my pi3 goes to 1.2Ghz immediately using exactly that command line (well, almost exactly, I use stress-ng instead of stress) - you seem suspicious of what you bought - what is the output of grep Revision /proc/cpuinfo Oct 10, 2018 at 22:11
  • It shows 4 cores identifying as ARMv7 Processor rev 4 (v7l), Hardware BCM2835 Revision a020d3 Oct 11, 2018 at 22:06
  • The command I asked you to run would've only shown the Revision :p I just wanted to see if you really had a 3B+ because you seemed unsure in your question. And yes, that Revision suggests you have a Raspberry PI 3B+ Oct 11, 2018 at 22:12
  • Ah yeah, I somehow only read the /proc/cpuinfo part ;-) Anyway any idea what's going on? Oct 11, 2018 at 22:35

2 Answers 2

2

It might be a problem due to power supply. Provide a 2.5A-3A power supply. When power supply is not proper, the pi gets throttled for proper working. You can check many status using this Python code:

import subprocess

GET_THROTTLED_CMD = 'vcgencmd get_throttled'
MESSAGES = {
    0: 'Under-voltage!',
    1: 'ARM frequency capped!',
    2: 'Currently throttled!',
    16: 'Under-voltage has occurred since last reboot.',
    17: 'Throttling has occurred since last reboot.',
    18: 'ARM frequency capped has occurred since last reboot.'
}

print("Checking for throttling issues since last reboot...")

throttled_output = subprocess.check_output(GET_THROTTLED_CMD, shell=True)
throttled_output = throttled_output.decode("utf-8")
print(throttled_output)
throttled_binary = bin(int(throttled_output.split('=')[1], 0))
warnings = 0
for position, message in MESSAGES.items():
    # Check for the binary digits to be "on" for each warning message
    if len(throttled_binary) > position and throttled_binary[0 - position - 1] == '1':
        print(message)
        warnings += 1

if warnings == 0:
    print("All is well")
else:
    print("\nFound these %d issues!"%warnings)
1

It turns out the problem was the power supply. I was only rated for 1.5 amps and apparently that was not enough and the Pi throttled it self. A 3A supply fixed the problem.

Since I'm running this system headless and in a case, I neither saw the warnings during boot nor the power LED flashing.

If someone knows how to read the voltage warning in python, please let me know.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.