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!
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 B. Squeezing 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 – 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:
arm_freq_min=400 sdram_freq_min=200 core_freq_min=200 initial_turbo = 30 #Does not affect warranty and speeds up boot.
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:
sdram_freq=500 core_freq=500 over_voltage=2
Raspberry Pi 2 Overclock – CPU to 1.0GHz
arm_freq=1000 sdram_freq=500 core_freq=500 over_voltage=2 temp_limit=80 #Will throttle to default clock speed if hit.
…or for even more noticeable performance gains use force_turbo at your own risk!…
force_turbo=1 #Voids Warranty! boot_delay=1 #helps to avoid sdcard corruption when force_turbo is enabled. arm_freq=1000 sdram_freq=500 core_freq=500 over_voltage=2 temp_limit=80 #Will throttle to default clock speed if hit.
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.
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.