Warning! Crash likely!
Experimenting to find the highest stable overclock involves crashing Raspberry Pi 4. There is a chance of corrupting the microSD card. Experiment with a clean Raspbian installation and ensure no important data is at risk.
Although 1.5GHz is its maximum speed, Raspberry Pi typically idles at 600MHz and switches to the maximum speed when needed. Overclocking is the process of setting a higher maximum speed for computer components. We can adjust the settings in config.txt to overclock both the CPU and GPU (graphics processing unit).
We’ve experimented with speeds up to 2.147GHz for the CPU and 750MHz for the GPU (up from its 500MHz default). These are the kinds of speeds found on high-end desktop computers.
Your mileage will vary and, if Raspberry Pi gets too hot, it will slow right down. Experimenting with overclocking will crash Raspbian, and there is a high chance your Raspberry Pi will refuse to start at some point. If programs start crashing, or Raspbian refuses to start, you will need to dial back on the speed. But overclocking is fun and potentially a way to get more from Raspberry Pi.
1. Use a Raspberry Pi 4 Stand
We start by placing Raspberry Pi 4 in a vertical position. This improves airflow around the components and is surprisingly effective at keeping the temperature down.
Use the Raspberry Pi 4 Stand on the front of the print edition of The MagPi issue 90 to run Raspberry Pi in a vertical position. If you don’t have a Raspberry Pi 4 Stand, you can 3D-print or laser‑cut your own with the files on our GitHub page.
Alternatively, place your Raspberry Pi inside a case designed to manage its CPU temperature.
2. Update Raspberry Pi 4
Make sure you are running the latest version of Raspbian OS. Tweaks to performance are being made all the time and you will hit faster speeds with the latest software.
Open a Terminal and enter the following:
sudo apt update sudo apt dist-upgrade
Now reboot the system:
This restarts Raspbian.
3. Watch your speed
Before we start overclocking, take a look at the default CPU speed. Open a Terminal and enter: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Terminal will probably return 600000. Divide this result by 1000 and you’ll get the speed in MHz. This is the base speed: 600MHz (or 0.6GHz). This is the speed requested by the kernel. If your Raspberry Pi is being throttled due to low voltage or over temperature, the actual CPU speed may be lower.
To get the actual speed, enter:
vcgencmd measure_clock arm
As you use your Raspberry Pi, the requested speed will boost to its upper level, which is 1500000. You can keep entering vcgencmd in Terminal to see where it’s currently at, but it’s better to use the watch command to monitor the speed.
watch -n 1 vcgencmd measure_clock arm
This keeps vcgencmd running as a process and updates the result once per second (the -n 1 option is the interval in seconds). Start using your Raspberry Pi and you’ll soon see the result go slightly above 1500000 (or 1.5GHz).
4. Overclock your config
We’re going to use the config.txt file to set a new upper limit for the clock frequency. Open another Terminal window and enter: sudo nano /boot/config.txt
Scroll down to the section marked:
#uncomment to overclock the arm. 700 MHz is the default. #arm_freq=800
And change the settings to:
#uncomment to overclock the arm. 700 MHz is the default. over_voltage=2 arm_freq=1750
Save the file with CTRL+O (press RETURN) and use CTRL+X to exit Nano.
Restart your Raspberry Pi.
When the system starts up again, watch vcgendcmd again to see your new, faster clock speed in action:
watch -n 1 vcgencmd measure_clock arm
Browse a few webpages and you’ll see speeds around 1750000000 (or 1.75GHz).
5. Understanding over_voltage
The over_voltage command adjusts the core CPU/GPU voltage, and accepts figures between -16 and 8. The default value is 0.
A faster CPU speed demands higher voltage and, if Raspberry Pi doesn’t get enough volts, you will see a small lightning bolt appearing in the top right of the window (at this point, the CPU will be reduced to the 700MHz default speed).
6. Crank it up
Let’s try taking things a little faster. We’re going to take the over_voltage setting to 6 and set the ARM CPU to 2.0GHz. Edit the config.txt file with the following settings:
This is as high as we’re going to take over_voltage.
Reboot the Raspberry Pi and you’ll be running at 2.0GHz. Run watch -n 1 vcgencmd measure_clock arm again to see the new upper limit.
7. Take it to the max
Now we’re going to boost the gpu_freq and take the CPU to its highest setting. This enables Raspberry Pi to run at its current maximum speed. Use Nano to edit the config.txt file again, this time setting the arm_freq to 2147 and gpu_freq to 750:
over_voltage=6 arm_freq=2147 gpu_freq=750
The gpu_freq oversees a range of settings: core_freq, h264_freq, isp_freq, and v3d_freq. The core_freq setting adjusts the frequency of the GPU processor. It influences CPU performance because it drives the L2 cache and memory bus.
The default value is 500, and 750 is the highest we can set it and still had a Raspberry Pi 4 run. We have also had Raspberry Pi 4 boards fail to boot at this speed, and others quickly slowed down from overheating or undervoltage. You are unlikely to be able to maintain this speed for the long term and your mileage will vary.
Save the file and exit Nano (CTRL+O and CTRL+X). Reboot and your Raspberry Pi is hopefully running as fast as it can.
8. Recover from black screen
We have started a Raspberry Pi at speeds of up to 2.147GHz but some of our devices failed to boot, and others showed Undervoltage Warnings (thus reducing the speed). Eventually, we settled for arm_freq=2000 in config.txt. Our engineering team told us that the benefits from gpu_freq are marginal at best, and it should be removed if Raspberry Pi 4 fails to boot.
Your Raspberry Pi will also probably fail to boot at some point when overclocking. See ‘Overclocking problems’ (below) for more information on recovery. Otherwise, have fun and we hope you’ve enjoyed this excursion into overclocking.
Top tip: Monitoring voltage
It is essential to keep the supply voltage above 4.8 V for reliable performance. Note that the voltage from some USB chargers/power supplies can fall as low as 4.2 V. This is because they are usually designed to charge a 3.7 V LiPo battery, not to supply 5 V to a computer.
To monitor Raspberry Pi’s PSU voltage, you will need to use a multimeter to measure between the VCC (5 V) and GND pins on the GPIO. More information is available on the Raspberry Pi website.
Top tip: Overclocking problems
Most overclocking issues show up immediately with a failure to boot. If this occurs, hold down the SHIFT key during the next boot. This will temporarily disable all overclocking, allowing you to boot successfully and then edit your settings.
Alternatively, remove the microSD card from your Raspberry Pi and insert it into another computer. You will be able to access the config.txt file and adjust the settings from there.
Firmware warning icons
Under certain circumstances, the Raspberry Pi firmware will display a warning icon on the display, to indicate an issue. If you see these icons routinely appearing, you should reduce the overclocking speed.
There are currently three icons that can be displayed:
If the power supply to the Raspberry Pi drops below 4.63 V (+/-5%), this lightning bolt icon is displayed.
Over temperature warning (80–85°C)
If the temperature of the SoC is between 80°C and 85°C, this icon is displayed. The ARM core(s) will be throttled back in an attempt to reduce the core temperature.
Over temperature warning (over 85°C)
If the temperature of the SoC is over 85°C, this icon is displayed. The ARM core(s) and the GPU will be throttled back in an attempt to reduce the core temperature.