>Overclocking the Pi

Early Pi's used older SoC chips so started at slower speeds (700 MHz) with less room for 'overclocking'. Typically, the SDRAM had more 'scope' for overclocking, however this varied as well 9and did not 'track' the Soc) version). When the Pi 2 came out, it used 'new' SoC silcone with more scope for overlcocking - and finally the Pi Zero (with the latest SoC chips) runs at 1GHz 'as standard'. The Pi 3 is anotehr matter and is not covered here. The 'bulid spread' of SoC's on the early Pi's varied a lot more than later ones, so 'what you get' rather depends on how lucky you with the SoC batch To speed up 'everything' (except the actual camera operating and SDHC write speeds) you can increase the CPU / GPU and RAM clocks. The default arm_freq=700 on all but the Pi Zero, however you can push that to 900 before having to 'over-volt' and risk your warrenty. Default core-freq (GPU) =250, default sdram_freq=400 (note, sdram can be 'over-volted' (over_voltage_sdram) indenendently of the the rest of the system). The problem is that there are some conbiantions that 'don't work' (and if you hit on one, the pi reverts to defualt after power on). From the command terminal, 'launch' raspi-config sudo raspi-config

The 'overclocking' option will show the frequency combinations 'known to work' for your Pi (one drawbacl is that there is no indication of the current setting) These are the defaults :- arm_freq=700 arm_freq_min=100 core_freq=250 core_freq_min=75 sdram_freq=400 over_voltage=0

Manually setting the clock frequencies

The clock frequencies are held in the /boot/config.txt, so can be changed by hand. The defaults are arm 700, core 250 and sdram 400 (for a Pi B+, with Jessie, as of mid 2016). For more information on config.txt, see here To recover from incorrectly set values, hold the There are many different clocks that can be set, however the 'big 3' are :- arm_freq = 700 # frequency of the ARM processor sdram_freq = 400 # frequency of the SDRAM memory gpu_freq = 250 # sets all the GPU (graphics processor): ARM, SDRAM and GPU each have their own PLLs so can have unrelated frequencies. The following all share the GPU PLL :- core_freq = 250 # GPU core and arm L2 cache (except on Pi 2) - but see Note 1 h264_freq = 250 # frequency of the hardware video block isp_freq = 250 # frequency of image sensor pipeline block v3d_freq = 250 # frequency of 3D block Note 1. Setting The avoid_pwm_pll=1 allows the core_freq to use it's own PLL, so it's not locked to the gpu_freq by the following equation :- pll_freq = floor(2400 / (2 * core_freq)) * (2 * core_freq) gpu_freq = pll_freq / [even number] Unless you have avoid_pwm_pll=1, if you specify a core_freq, this will override and automatically set the gpu_freq as per the formula above (so asking for core_freq=500 and gpu_freq=300 will actually result in divisor of 2000/300 = 6.666 => 6 and so gpu_freq of 333.33 MHz). The force_turbo=1 option stops 'dynamic clock adjustment' (i.e. forces max speed)

Checking the CPU clock

After making changes to the clock speeds and before performing any tests, it's a 'good idea' to check that the Pi CPU really is running at the clock speed you are expecting (and didn't get ignored and reset to the defaults for some reason). You can get the current CPU speed as follows :-
From the command terminal :-
cat /proc/cpuinfo
The 'BogoMIPS' is the CURRENT clock speed in MHz. Unless something else is running or 'auto-turbo' is off, you will likley see the minimium or 'idle' speed (to keep the CPU at max. speed, you have to manually set "force_turbo=1" in /boot/config.txt, see below)

Working combinations

Whilst 'in theory' each of the big 3 have their own PLL, so can be set individually, apparently you can get some unexpected 'clashes' between the 3 frequencies leading to slower than expected performance After hours on Google trying to find combinations that 'work as expected', I concluded that you more or less have to 'try it yourself' (users who post their 'working set' never seem to bother mentioning which version of Pi they tested with, let alone when it was purchased / manufactured). In /boot/config.txt, find the section "#uncomment to overclock the arm. 700 MHz is the default." and enter your own values, for example the limit (without over-volting) appears to be :- arm_freq=930 gpu_freq=350 avoid_pwm_pll=1 core_freq=450 sdram_freq=500 Note = you may have to set over_voltage_sdram=2 to get a reliable 500MHz sdram - also some users report SDHC card corruption appears more likley with sdram 500 (in Pi 'turbo mode', sdram was moved from 500 to 600 MHz for this reason) The maximium settings (with over-volt, which voids the warrenty) are :- arm_freq=1000 (the Pi 2 will go to 1100) core_freq=500 sdram_freq=600 (Pi 2 max is 500) over_voltage=6 (for more on over-clocking, see near end of config.txt documentation) It should be noted that overclocking will use more power = more heat = higher temp. The Pi CPU shuts itself down if it reaches 85 degrees.