Raspberry Pi Overclocking Guide – Cheap, Fun, and Overclockable (with HWBOT Prime)

  • Guides, News, Editorials, Articles
  • 17

Raspberry Pi Overclocking Guide – Cheap, Fun, and Overclockable (with HWBOT Prime)

Author: Pieter-Jan Plaisier

It took a while for me to jump on board of the Raspberry Pi wagon. For one, I am not a software guy and have very little understanding of Linux. Two, the Raspberry Pi is so small that overclocking almost seems impossible. However, because Frederik – RichBa5tard, owner of HWBOT – is so enthusiastic about the Raspberry Pi and the overclocking fun it brings along, I decided to go ahead and try it out anyway. With the HWBOT Prime application ready for cross-platform performance comparison, I already had a tool to benchmark the Raspberry Pi and see the performance scaling when overclocking.

In the end, the Raspberry Pi went up from about 160PPS (“Primes per Second”) at stock frequency to the current high of 568PPS. Of course, the process of performance increase does not only involve hardware tweaking – “Overclocking” – but also software tweaking. In this editorial, I will describe my Raspberry Pi experience and provide a basic guide for those who want to get involved in Raspberry Pi and ARM overclocking!


   Page1: Step1 – Gathering all components.
   Page1: Step2 – Installing the software.
   Page1: The Operating System: Raspbian “wheezy”
   Page1: Setting up the operating system
   Page1: HWBOT Prime and Java installation
   Page1: How to save and submit with HWBOT Prime?
   Page1: How to save and submit with HWBOT Prime?

   Page2: Step3 – Overclocking and benching.
   Page2: The Hardware
   Page2: The Clock Domains and Functions
   Page2: The Voltages
   Page2: Miscellaneous
   Page2: Software tweaking – Java JDK8

   Page3: 3D Benchmarking with OpenArena
   Page3: Conclusive lines

Step1 – Gathering all components.

This step is not too difficult. The following components are necessary to get started with Raspberry Pi overclocking:

   Raspberry Pi unit
   SD-Card, preferably Class10 grade
   USB keyboard
   USB mouse
   Micro-USB cable
   Optional: LAN-connection and external PSU

You can buy the Raspberry Pi through a couple of resellers. I found one in the local Guang Hua computer department store. The official price is USD $25 for Model A and USD $35 for Model B, but this excludes shipping and reseller charges. Model A has 256MB RAM, one USB port and no Ethernet (network connection), whereas Model B has 512MB RAM, two USB ports and an Ethernet port. I would definitely recommend acquiring Model B as it makes the entire overclocking process a lot easier. I did not buy an external PSU because I am using a nearby PC system as power source via USB. This seems to work very well and since I am not planning to use the Raspberry Pi for anything else than overclocking, I figured I do not need a separate power source.

Once you found all the components, it is easy to assemble. Plug in all the connectors and you are done!

Step2 – Installing the software.

When I first assembled the Raspberry Pi, I figured this would be the most difficult part of getting started. It turns out it’s actually quite simple as long as you follow the instructions and are not scared of doing a little bit of debugging work. Even though Frederik argued otherwise, Linux is not as easy as Windows to get started with. There are many ways to get your RPi up and running, but I will just stick to what worked for me. You know, this is just a guide to get started.

The Operating System: Raspbian “wheezy”

Following the instructions at the official Raspberry Pi website (http://www.raspberrypi.org/downloads), I opted for the recommended Linux distribution Raspbian Wheezy. As the site states, “It is a reference root filesystem from Alex and Dom, based on the Raspbian optimised version of Debian, and containing LXDE, Midori, development tools and example source code for multimedia functions.” Honestly speaking, I have no idea what that all means. Here are the tools necessary to install the operating system:

   Raw image file of the Raspbian Wheezy (download)
   Win32DiskImager (download)
   A Windows PC with SD-Card reader

Once you have everything downloaded, do the following.

   1) Insert the SD-Card
   2) Open Win32DiskImager
   3) Load the .IMG from the downloaded .ZIP file into Win32DiskImager
   4) Select the correct device (!)
   5) Press Write

The image will now be written onto the SD Card. Depending on the speed of your system and the SD Card, this can take a couple of minutes. Note that you can also read an SD Card. This is a particularly handy feature to save your overclocking configuration and software installation when you found the magic settings. I have made an image file of the operating system I achieved my highest score with.

For more information on the SD Card preparation, refer to this page: http://elinux.org/RPi_Easy_SD_Card_Setup. Their guide helped me figure it out the first time.

Once the flash has finished, you are ready to boot up the Raspberry Pi!

Setting up the operating system

When booting up the Raspberry Pi for the first time, a very basic looking configuration setup awaits you. If you are not interested in configuring the Raspberry Pi at this moment, you can skip this by pressing Escape. I would recommend doing the following adjustments:

   Expand Filesystem – this option will make the entire SD Card storage space available to Raspberry Pi. I forgot this once and ran out of storage when installing other software.
   Enable Boot To Desktop – No. I find the command line to be much easier to use when overclocking the RPi. Not only is it easier to configure the overclock, it also seems more efficient and thus better for benchmark scores.

You will also find an overclocking section with pre-defined overclocking profiles. There is no need to choose any of those profiles, as we will be doing the overclocking manually later. Just select finish and reboot. After the reboot, enter the credentials to log into your Raspberry Pi. The default credentials are:

   User: Pi
   Password: Raspberry

Once you logged in, you can start installing the software for benchmarking. Before we continue, I would like to give you a couple of commands that might be useful throughout the guide.

   sudo su: enables superuser rights
   shutdown -r now: command to reboot the Raspberry Pi if Super User mode enabled. You can also reboot with CTRL+ALT+DEL.
   startx: starts the GUI operating system that comes with the Raspbian Wheezy
   wget [x]: command to download the file from the URL [x]

As mentioned earlier, for overclocking and benchmarking we will be using the command line. For uploading the result later on, we can use the GUI mode. I will explain how to later on. First, let us install all the software we need for overclocking.

HWBOT Prime and Java installation

As you know from our regular overclocking, there are three things needed when benchmarking: a benchmark, drivers, and an overclocking tool. For our day-to-day overclocking endeavours, that can be: SuperPI, Intel chipset drivers and the BIOS. For this particular guide, we will need these tools:

   HWBOT Prime V0.8.3
   Java JDK

First things first, let us install the HWBOT Prime. It is very easy. Just type the following command:

   $ wget http://downloads.hwbot.org/hwbotprime.jar

Once finished, you can type ‘dir’ and press enter to check if the file was actually downloaded in the folder. Next up is the Java JDK for Linux. To make it easy, let us start with installing the official version first. This is V1.7. To download and install this version, use the following command:

   $ sudo apt-get install openjdk-7-jre

Do not forget to confirm the download by pressing ‘Y’. The total size is about 47MB, so it will take a bit longer to install than HWBOT Prime. Once downloaded, confirm that the Java JDK has been installed correctly with the following command:

   $ java

If the command is not recognised, try the update command, followed by another install command.

   $ sudo apt-get update
   $ sudo apt-get install openjdk-7-jre

Once again, try if Java has been installed correctly. Everything should be working now. For your convenience, I have uploaded a Raw image of the Raspbian Wheezy operating system with HWBOT Prime 0.8.3 and Java JDK7 pre-installed. You can download it here. I would recommend trying the manual way first, if not out of pride at least to familiarize yourself with the Linux environment and commands.

Since everything is working, it is time to start benchmarking. To get the first reference benchmark score at default frequencies, run the following command:

   $ java -jar hwbotprime.jar

Once the benchmark is finished, you will see your score

How to save and submit with HWBOT Prime?

HWBOT Prime is an internal benchmark we prepared to demonstrate our new open API for benchmark applications. The central idea of the open API is to allow benchmark developers to submit benchmark data files securely to HWBOT. Not only do they have easy rankings for their benchmarks, the secured data file prevents easy tampering with screenshots. As data file submission is central in this approach, the only way to submit an HWBOT Prime benchmark result is via data file. We do this by either saving a file and uploading it manually later, or submitting directly from the application. Both can be done from the command line.

When submitting from the command line, you can obviously not open a browser. So HWBOT Prime will give you a link you can enter in your browser to retrieve your score. Honestly speaking, this is not too user-friendly and it is very likely that we will update this feature in the future. When overclocking via the command line mode, it is easier to submit via the GUI operating system. Just save your benchmark to a file, press ‘q’ and open the GUI with this command:

   $ startx

The operating system comes with a browser called ‘Midori’. This browser allows you to submit a result to HWBOT in the way you know all too well. When selecting the data file, make sure to browse to the right folder. If you followed the instructions of this guide, the file is saved under /home/pi. Select, upload, and enjoy your new benchmark score! We are now ready to start overclocking and really push this little thing.

<< Next Page – Part 2 >>


Belgium Massman says:

Anyone having fun yet?

Belgium richba5tard says:

Me! Awesome little thingie.

kikicoco1334 says:


Belgium Massman says:

I'm gonna update the article with some information on 3D benching and influence of PSU.

Belgium geoffrey says:

Netherlands VictordeHollander says:

Awesome guide!
And yes, the JDK8 1.8.0-ea-b100 is very good on ARM devices. I think it is because of the VFP support.

On my ODROID-U2 (4x ARM Cortex-A9 @2,0) I got a score of 2419,06 with Ubuntu 13.04
But the CPU needs to be added to the database before I can submit, so just a link for the time being:

Belgium Massman says:

Awesome, is that Linux on your Galaxy Note?

//edit: just figured out it's an Odroid Hardkernel. Nice. Couldn't help myself and just bought one as well :D

Denmark SharkOC says:

I have been playing quite alot with it now. Still having a hard time getting Java 1.8 to work on Arch linux
Just ordered 2 more units after I found this person: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=51119&p=395436

running 1400mhz arm_core

My first unit are having problems with higher than 1165 mhz arm_core and that only gives me 540 points

United States Bobnova says:

Pi binning time :P

Belgium Massman says:

Until I see benchmark results, I call BS on all those rediculous RPi OC results. There was a guy at OCN claiming 5GHz on ln2 too, but obviously tha's BS too. So far, most cap out at 1200-1250 on air cooling with overvoltage=8.

Belgium geoffrey says:

SharkOC said: I have been playing quite alot with it now. Still having a hard time getting Java 1.8 to work on Arch linux
Just ordered 2 more units after I found this person: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=51119&p=395436

running 1400mhz arm_core

My first unit are having problems with higher than 1165 mhz arm_core and that only gives me 540 points

Hey, I get it working like this:

pacman -S vim
(I'm used to working with vim to write/edit txt files)

wget http://www.java.net/download/jdk8/archive/b100/binaries/jdk-8-ea-b100-linux-arm-vfp-hflt-24_jul_2013.tar.gz
(or go to the oracle java 8 website and download from there)

tar -xzf jdk-8-ea-b100-linux-arm-vfp-hflt-24_jul_2013.tar.gz -C /opt

export PATH=$PATH:/opt/jdk1.8.0/bin
(link Java to system variables, you have to do it each time you reboot)

java -version
(check if Java is working)

wget http://downloads.hwbot.org/hwbotprime.jar

java -jar hwbotprime.jar

Belgium richba5tard says:

geoffrey said:

export PATH=$PATH:/opt/jdk1.8.0/bin
(link Java to system variables, you have to do it each time you reboot)

Set this in ~/.bash_profile and you don't have to type it after reboot.

echo "export PATH=$PATH:/opt/jdk1.8.0/bin" >> ~/.bash_profile

Netherlands VictordeHollander says:

The Odroid-U2 is indeed an awesome little thingie, with a lot of performance and only consuming max. 10W! I haven't figured out how to 'OC' it beyond 2GHz.
Hardkernel now also has an ODROID-XU with Samsung Exynos5 Octa big.little design (4x Cortex-A15 @1.6Ghz + 4x Cortex-A7 @1.2Ghz). It starts shipping in September and is now $149 pre-order. Unfortunately you can only use 4 cores at the same time.

It would be interesting to see the performance differences between the ARM architectures (ARM6, Cortex -A7-A8-A9-A15)

Bulgaria I.nfraR.ed says:

Got it working on my smartphone. First I tried Debian, but couldn't solve the java command symlink.
Although there was a symlink in /usr/bin, it was still reporting that there's not.
So I've installed the Raspbian.
Here's my first run: http://hwbot.org/submission/2412106_i.nfrar.ed_hwbot_prime_4x_arm1176_s_1360.94_primes_per_second

Phone is Lenovo A820 with Quad-core ARMv7 MT6589 chipset + SGX544MP video. What is the correct category to submit?

Unfortunately MTK-based phones can't be overclocked yet, so I'm stuck at 1.2GHz.

BTW, it's using 2 threads only, don't know why - maybe it's because I'm running it chrooted (as a slave OS).

root@infrared:/# java -jar hwbotprime.jar
java -jar hwbotprime.jar
No native cpu speed library for linux yet... falling back to OS tools.
--------- HWBOT Prime 0.8.3 ----------

Processor detected:
ARMv7 Processor rev 2 (v7l) MT6589
Estimating speed... 2x 1,209MHz @ 37.347 C
976 MB memory
Running benchmark using 2 threads.
Starting benchmark...
Warm up phase: ..................................................................................................... done!
Benchmark phase: ..................................................................................................... done!
All done! Current CPU temperature: 37.971 C
Score: 1360.94.
Hit enter to compare online, enter a filename to save to file, or type q to quit.

Belgium Massman says:

Use this category: http://hwbot.org/hardware/processor/mediatek_mt6589/ You can manually increase the threadcount with hwbot prime. Or do you think the OS is only using two either?

Bulgaria I.nfraR.ed says:

I'll check when I install it again, but I think it's due to the virtual machine mode. And I'm Linux noob :p

Belgium Massman says:

You and me both, hehe. At least I now found out how to read a kernel, and I think with the right guide I'll be able to "update" an existing one.

Please log in or register to comment.