The Raspberry Pi is pretty easy to overclock due to an inbuilt config file. This morning I decided to see how far I could push my little Pi.
You can see the full list of options for the config file here. Just to make clear, overclocking shouldn’t cause any damage to your Pi (meaning your warranty is fine), overvolting on the other hand probably will damage it over time. If you use the overvolting options then a one-time-programmable bit is set, and your warranty is void. You have been warned.
From here we can start setting some clock values. To start I created a very crude calculation benchmark, calculating PI to 2000 decimal places (thanks to this post):
time echo "scale=2000;4*a(1)" | bc -l
Which took 21.727 seconds on my stock Raspberry Pi.
The config file location is on the /boot partition if you’re using the Debian distro, but it’s not there by default. Instead we have to create it:
sudo nano /boot/config.txt
There are three main areas we can overclock: CPU, RAM and GPU. As I’m not too interested in the GPU, I’m going to concentrate on how far I can push the CPU and RAM.
The default CPU frequency for the Pi is 700MHz, so my first try was to increase that to 800MHz by putting the following in the config.txt and rebooting:
This produced a benchmark result of 19.023 seconds. A nice increase of ~12%, so far so good! Next I wanted to increase the SDRAM frequency from it’s stock 400MHz to 500MHz:
This produced a benchmark result of 18.981 seconds. Not much of an increase, which I kind of expected considering that my benchmark is more likely to be CPU bound than memory bound. I imagine for my media serving purposes that the RAM frequency increase will be beneficial though.
My final change is to increase the CPU Frequency again to 900MHz, which seems to be the limit for chips without overvolting:
This produced a benchmark result of 16.924 seconds. Another increase of ~11%!
That’s as far as I want to push my Pi for now, a ~25% increase in performance is not bad for a hour’s work! The test will be whether this is stable to run constantly.