Raspberry Pi 2 Overclock

Updated: 09/22/15 – After 6 months of testing Raspberry Pi 2 Overclock with OpenElec, ArchWipi and Arch LEMP I’ve made some optimizations to the recommended config changes below. These have proven more stable. Also, now even with force_turbo enabled you shouldn’t experience freezing or resets. Enjoy!

Also see: My Ultimate Raspberry Pi 2 Starter Kit! (Important if you are overclocking!) and Raspberry Pi 3 Overclock

Some of you may remember my old overclocking post for Raspberry Pi. I’m still obsessed with performance. This Raspberry Pi 2 Overclock post seeks to overclock the Raspberry Pi 2 Model BSqueezing out some extra performance without compromising stability. It’s highly recommended that you use a capable power supply with 2 amps or better. I recommend something like is this dual port 2.1A power supply. (also see: What to buy for your Raspberry Pi) Now, on to the /boot/config.txt edits. 

Raspberry Pi 2 Overclock

Raspberry Pi 2 Overclock – config.txt

Lets increase performance by overclocking core frequency and RAM of the RPi2 board while leaving voltage default for stability:

Now, if you are running the Raspberry Pi 2 in a hot environment,  here are some settings to help lower temps (your Raspberry Pi 2 will only clock to 900MHz when needed). Make sure the force_turbo line is off (set to 0) or just remove that line completely since ‘off’ is the default:

Raspberry Pi 2 Overclock with Overvolting

The arm_freq setting still adds a lot of heat to the board when pushed. You can improve performance without overclocking the arm_freq using the following:

Raspberry Pi 2 Overclock – CPU to 1.0GHz

…or for even more noticeable performance gains use force_turbo at your own risk!…

Now even at 1000MHz overclock that’s an extra 100MHz over 4 cpu cores. With the previous Model B adding 300MH to one core would resulted in 1000MHz. On the Pi 2, with 1000MHz x4 overclock that’s a LOT better than the first gen RPI B+ @ 1000MHz. Ultimately, the developers chose to give us 4 CPU cores rather than say a single core with much higher clock speed, because over all its more adaptable to various tasks.  The ‘force_turbo=1’ option helps get rid of performance lag.

Raspberry Pi 2 gpu_mem (1GB memory) allocation

gpu_mem (GPU memory) is measured in megabytes and sets the memory split between the CPU and GPU; the CPU gets the remaining memory. Minimum value is 16. If you are for example using the Raspberry Pi 2 as a gaming emulator, media player or using a desktop environment (LXDE, XFCE, Maynard, etc) then you’ll want to increase gpu_mem to at least 256. On the other hand, if you are using the Raspberry Pi as a web server, to build a drone or simply a console-based project then you should lower gpu_mem to 16. In other words, if your needs are graphical increase GPU’s memory, if not, lower it to the minimum.

Read:  Download LEMP for Raspberry Pi: Nginx + MariaDB (MySQL) + PHP

eg. Web server, wireless access point, firewall, weather station, etc

or for GUI usage, eg. OpenELEC, Raspbmc, RetroPie, XFCE, etc.

 Raspberry Pi 2 Overclock options

  • arm_freq– Frequency of ARM in MHz. (Raspberry Pi 2 Overclock)
  • core_freq -Frequency of GPU processor core in MHz. It has an impact on ARM performance since it drives L2 cache.sdram_freq -Frequency of SDRAM in MHz.
  • over_voltage – ARM/GPU core voltage adjust. Values above 6 are only allowed when force_turbo or current_limit_override are specified (which set the warranty bit).
  • force_turbo – Disables dynamic cpufreq driver and minimum settings below. Voids Warranty.
  • initial_turbo -Enables turbo mode from boot for the given value in seconds (up to 60) or until cpufreq sets a frequency. Default 0
  • arm_freq_min – Minimum value of arm_freq used for dynamic clocking.
  • core_freq_min – Minimum value of core_freq used for dynamic clocking.
  • sdram_freq_min – Minimum value of sdram_freq used for dynamic clocking.
  • temp_limit – Overheat protection. Sets clocks and voltages to default when the SoC reaches this Celsius value. Setting this higher than default voids warranty. Default 85
  • disable_splash – If set to 1, avoids the rainbow splash screen on boot.
  • boot_delay – Wait for x number of seconds in start.elf before loading kernel. Default 1
  • gpu_mem – GPU memory in megabyte. Sets the memory split between the ARM and GPU. ARM gets the remaining memory.

Raspberry Pi 2 Model B specifications

  • SoC – Broadcom BCM2836 900MHz quad-core ARM Cortex-A7 CPU
  • 1GB RAM LPDDR2
  • 4 USB ports
  • 40 GPIO pins
  • Full HDMI port
  • Ethernet port
  • Combined 3.5mm audio jack and composite video
  • Camera interface (CSI)
  • Display interface (DSI)
  • Micro SD card slot
  • VideoCore IV 3D graphics core
  • Power – 5V via micro USB port.
  • Dimensions – 85 x 56 mm

I’d love to hear your Raspberry Pi 2 Overclock configs and what power supply amperage you are running. I’m hoping to attempt more extreme clock settings but I need at LEAST two of these boards so I can confirm some measure of stability.

Tags: , , ,

Leave a Reply

66 Comments on "Raspberry Pi 2 Overclock"

avatar

selooe
selooe
February 7, 2015 5:28 am

how much speed do you able to reach with stable settings? and how much heat the rpi2 generated with those settings? (with or without heatsink)
lastly, what’s the maximum overclocking options in the config.txt?

thank you.

simon tan
simon tan
February 7, 2015 1:59 pm

Nice article

Anders
Anders
February 10, 2015 12:56 am

I would suggest that you use the proper prefix and unit, M for mega and Hz for Hertz. The unit you used of 1 mHz is the very low frequance of 0.001 Hz. And 1 MHz is a much higher frequancy of 1,000,000 Hz.
Except for that, thanks for a good article.

Pascal
Pascal
February 12, 2015 1:44 pm

Does it make sense to overclock extreme (1.1GHz, overvoltage 6, etc) _and_ also sets cpu_freq_min to 400, core_freq_min to 250? Could cpufreq lag cause video frames to be missed?

The board runs OpenElec and is turned on all the time, so it runs idle most of the time.

Thanos
Thanos
February 13, 2015 3:32 pm

Hi,

my config.txt is as follows (after using the Pi 2 setting in raspi-config Overclocking section):
core_freq=500
sdram_freq=500
over_voltage=2
arm_freq=1000

however, running /opt/vc/bin/vcgencmd measure_clock on arm, core and emmc returns:
arm: frequency(45)=900094000
core: frequency(1)=250000000
emmc: frequency(47)=250000000
respectively

is this a problem of vcgencmd? or are the overclocking configurations not applied at startup?

Paul
Paul
February 16, 2015 11:15 pm

Hi, Nice guide. I’d want to have mine set up so it can run as fast as possible without voiding warranty but also adding fail-safes. Its going to run 24/7 but replace my home server. I’ve added a ram heatsink to the two chips. I dont use the gui, and I putty in 99% of the time! Looking at your guide, in theory, would doing something like this work? or is it one config or the other?:
arm_freq=1100
sdram_freq=500
core_freq=500
over_voltage=6
temp_limit=80 #Will throttle to default clock speed if hit.
arm_freq_min=400
sdram_freq_min=250
core_freq_min=250
initial_turbo = 30 #Does not affect warranty. (Speeds up boot)
gpu_mem=16

Cheers
Paul

Leszek
February 22, 2015 2:10 pm

Hi Hayden,

I got interested by over-clocking of RPi2.
What I found weird, is that after increasing freqs, as you suggested my RPi gets slower (0:10:27 for non-OC vs 0:10:46 for OC)! My config:
arm_freq=1100
sdram_freq=500
core_freq=500
over_voltage=6

The nbench results are not conclusive, some are slightly better in non-OC, some in OC.

This gets even worse (0:15:36), when `freq_min` are defined:
arm_freq_min=400
core_freq_min=250
sdram_freq_min=250

I’m running default Raspbian Wheezy. Any idea why this happens?

Lucas
Lucas
July 4, 2015 11:08 am

This may be caused by the throttling of the SoC causing performance drops when the temperature rises

Lee
Lee
February 23, 2015 9:56 pm

Hi Hayden,

Great post! Thank you for all the detail.

I have a RPI2 with openelec latest version, i have used the following settings:
arm_freq=950
core_freq=450
sdram_freq=450
over_voltage=2
arm_freq_min=400
sdram_freq_min=250
cor_freq_min=250
initial_turbo=30
gpu_mem=320
disable_splash=1
temp_limit=80

But in Openelec it says 600 MHZ in the settings and I still get a splash screen. Any ideas?

Cheers
Lee

Don
Don
February 28, 2015 7:10 pm

Hi.

I’ve been having trouble with my Pi2. Initially I set it in raspi-config to the Pi2 setting of 1000MHz but it kepy crashing everyday. It’s connected to 2 IP cameras on the network and runs “motin” to detect and save movement and files to my NAS. The only way I could get it to stop crashing was to drop it down to 700MHz but that’s below what the Pi2 standard is isn’t it? Any ideas why I might be having trouble?

Current setting are below but it should be capable of more yes?

arm_freq=700
# NOOBS Auto-generated Settings:
hdmi_force_hotplug=1
config_hdmi_boost=4
overscan_left=24
overscan_right=24
overscan_top=16
overscan_bottom=16
disable_overscan=0
core_freq=250
sdram_freq=400
over_voltage=0

Thanks for any comments and thoughts.
Don

xaw2
xaw2
March 2, 2015 9:57 pm

is it possible to get it to 1200 arm_freq? i try it dosn’t work

wpDiscuz