logo
background
 Home and Links
 Your PC and Security
 Server NAS
 Wargames
 Astronomy
 PhotoStory
 DVD making
 Raspberry Pi
 PIC projects
 Other projects
 Next >>

Notes index links

Links to all my notes (includes mini-projects and source code etc)

(+) 0001 How do I change the Pi System partition size ?

(+) 0100 Device tree settings

(+) 0201 Power over Ethernet - (PoE)

(+) 0202 Solar Power - (with WiFi)

(+) 0203 Power Bank pass through

(+) 0400 Accessing the SDHC card system image

(+) 0401 Accessing PC shares from the Pi

(+) 0402 Installing samba - (the Pi as a Network Share on your PC)

(+) 0900 Can this approach be scaled up to a PC UPS ?

(+) 1001 Pandora Spotify on the Pi

(+) 1002 Playing movies on the Pi

(+) 1003 Getting VGA from the HDMI socket

(+) 1004 Using the RCA socket

(+) 1005 Using the Pi RS232 serial links

(+) 1006 Using the GPIO pins

(+) 1007 Controlling the Pi Zero ACT LED

(+) 1200 List of standard camera modes

(+) 1300 Auto file names

(+) 6500 How to make the System partition read only ?

(+) 6501 Minimising SDHC corruption on power down

(+) 9000 diode switch

(+) 9001 Auto shut down

(+) 9001 MOSFET switch

(+) C201 High speed photos

(+) Dec 1969 (no desc)

(+) a000 Display setup - (for PhotoFrame)

(+) a001 go photoframe - (how it works)

(+) a002 set photo - (select for display)

(+) a003 go button script - (photoframe pause control)

(+) a005 get photos - (fetch resize)

(+) a00x Other display utilities

(+) c000 CCTV UPS requirements

(+) c001 countering low speed motion detect



(-) c002 Pi Overclocking


>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.

This note last modified: 17th Nov 2017 17:30.

[top]

(+) c203 Pi ram disk - (tmpfs)

(+) c901 iR illumination

(+) c902 Viewing a video stream

(+) c905 Image anotation

(+) Dec 1969 (no desc)

(+) raspicamdocs.txt (no desc)

(+) s010 Elevation sensing

Next subject :- index

[top]