Tag Archives: Pi1

Overclocking a Raspberry Pi

As you probably know, one can overclock the RasPi to 1 GHz without losing its warranty given that the temperature of the device does not reach more than 80 °C. My RasPi runs at 950 GHz, since it crashed with the highest possible settings. To do so, I’ve changed my /boot/config.txt as follows:

#uncomment to overclock the arm. 700 MHz is the default.
arm_freq=950
force_turbo=0

# for more options see http://elinux.org/RPi_config.txt
gpu_mem=128
gpu_mem_256=160
gpu_mem_512=316
cma_lwm=16
cma_hwm=32
core_freq=250
sdram_freq=450
over_voltage=6
avoid_safe_mode=1

A complete list of configuration options for the /boot/config.txt can be found on elinux.org.

Since more heat is generated by overclocking, I placed my RasPi into an enclosure lacking a lid. For better heat dissipation, I glued heatsinks to the ARM processor. You can check the CPU temperature with:

$ cat /sys/class/thermal/thermal_zone0/temp

Under idle conditions, the temperature on the overclocked Pi is about 36 °C, whereas my Pi within the Pibow without heatsink and default settings is running at 48 °C.

IMG_6077
RasPi in LEGO enclosure with heat sink.

The settings above also activate dynamic memory sharing for RAM and GPU. More RAM for the GPU will be automatically assigned when you’re starting the Xserver.

If you want to free more RAM, you can disable kernel modules if you don’t need them. For example, if you’re not going to use sound, blacklist the corresponding snd* modules in /etc/modprobe.d/raspi-blacklist.conf.

# blacklist spi and i2c by default (many users don't need them)

#blacklist spi-bcm2708
#blacklist i2c-bcm2708
blacklist leds_gpio
blacklist led_class
blacklist snd_bcm2835
blacklist snd_pcm
blacklist snd
blacklist snd_timer
blacklist snd_page_alloc
blacklist snd_rawmidi
blacklist snd_seq_device
blacklist snd_usb_audio
blacklist snd_hwdep
blacklist snd_usbmidi_lib

If you want to run your Pi 24/7, you may want to add watchdog support, which automatically resets your Pi on system errors. For installation of the watchdog do:

$ sudo modprobe bcm2708_wdog
$ echo "bcm2708_wdog" | sudo tee -a /etc/modules
$ sudo apt-get install watchdog

and edit few lines in /etc/watchdog.conf to

watchdog-device        = /dev/watchdog
max-load-1             = 24
temperature-device     = /sys/class/thermal/thermal_zone0/temp
max-temperature        = 75

The watchdog will be activated on next reboot.