Is it possible to downclock the Rock Pi 4?

I would like to use the Rock Pi 4 without heatsink. The project already runs on Rpi 3B+. I would like to use Rock Pi, because of the eMMC which RPi doesn’t have. The extra power from RockChip is not needed, instead I would prefer to run it on lower temperature by downclocking it. Is this possible?

You might want to take a look at the cpufrequtils package in Debian/Ubuntu, it might do what you want.

The Armbian image has builtin tool for this already contained in the armbian-config tool.

3 Likes

I don’t think it actually needs to have a heatsink. The CPU will throttle as it heats up in order to prevent exceeding the safe limits. It should react fast enough even without any added thermal inertia. If you’re worried about it, just glue on a block of aluminum, even without cooling fins it will add some mass to slow down the rate it heats up at, giving more time for the speed to throttle down.

If you still want to slow it down, check in /sys/devices/system/cpu/cpuX/cpufreq/
Just echo a lower supported speed into scaling_max_freq. You can find the supported speeds in scaling_available_frequencies. Note that there are two kinds of CPU cores, and the supported frequencies differ between them.

You can also switch cores OFF by echoing “0” to /sys/devices/system/cpu/cpuX/online

1 Like

That’s great. I have also found the official heatsink has some issues. I was looking also to put a clip mounted heatsink for BGA. I have found these types:

https://eu.mouser.com/ProductDetail/567-902-21-1-12-2-B

http://www.enzotech.com/uni-h21052-12p-2-6.html

If somebody tried similar clip mount heatsink, please let me know.

I don’t see much of the details on those, however, most “clip mount” heatsinks would require the mainboard to be outfitted with the proper mounting holes for it, which this board isn’t.

2-sided thermal tape is a good medium between glue and clips.

If you need to remove it, heat it up to around 100C and twist.

Or if you are permanently mounting it in some kind of chassis, you can use a thermal PAD to conduct heat from the CPU into the chassis.

The listed heatsinks have a tiny clip that clips on the BGA chip without any additional hole in mainboard. It clips in tiny gap between PCB and BGA, this gap is due to the BGA balls height. The chip doesn’t lay flat on PCB, rather it has a small gap.

It could be a good alternative to official heatsink, which makes difficult to access eMMC. You could try it and resell t as accessory.

Well… if you’re not always removing the eMMC, you could go for the official high profile case with built-in heatsink… I’ve got 3 of them, all work just fine - no issues.

You still get access to the SD card slot with the case on.

I have a Raspberry Pi 4… running as a backup DNS pihole server, and it runs at 41.1 C… with just pi-hole on raspbian. I have a Rock Pi 4b… running a bunch of services - including primary DNS pihole on armbian stretch… it’s only at 31.6 C.

Mine runs Armbian buster minimal downclocked to 400Mhz-1Ghz with on demand governor. It runs nothing. Without heatsink the whole board becomes hot 65 C, with official heatsink 46 C.

Time big.LITTLE load %cpu %sys %usr %nice %io %irq CPU C.St.

12:41:04: 408/ 408MHz 0.07 0% 0% 0% 0% 0% 0% 45.6°C 0/5
12:41:09: 408/1008MHz 0.06 1% 0% 0% 0% 0% 0% 46.2°C 0/5
12:41:14: 408/ 408MHz 0.06 0% 0% 0% 0% 0% 0% 46.2°C 0/5
12:41:19: 408/1008MHz 0.05 1% 0% 0% 0% 0% 0% 46.2°C 0/5
12:41:24: 408/ 408MHz 0.05 0% 0% 0% 0% 0% 0% 46.2°C 0/5
12:41:29: 408/1008MHz 0.04 1% 0% 0% 0% 0% 0% 45.6°C 0/5

I finalized the project, added thermal paste on official heatsink. The temperature is now 33 C. The official heatsink with thermal compund does its job very well.

I would like to share my recipe (tested) how to downclock Rock Pi 4.
I use official Ubuntu Server 18.04.

  1. setup “cpufrequtils”:
    sudo apt-get install -y cpufrequtils
  2. add to /etc/default/cpufrequtils file:
    ENABLE="true"
    GOVERNOR="ondemand"
    MIN_SPEED="408Mhz"
    MAX_SPEED="408Mhz"
  3. disable ondemand.service, because it overrides the default governor:
    sudo systemctl disable ondemand
  4. restart cpufrequtils service:
    sudo systemctl restart cpufrequtils

Now you have Rock Pi 4 running at minimal frequency.

Use cpufreq-info command to see current CPU’s frequency, governor and frequency ranges available for each CPU core.

On Armbian: armbian-config -> system -> CPU speed

1 Like

The Radxa Debian Stretch image already has cpufrequtils installed. The CPU governor is set in: /etc/init.d/cpufrequtils with the line:

GOVERNOR="ondemand"

It looks like you don’t need to set the MIN_SPEED and MAX_SPEED to the same minimal value. Instead just set the governor to “powersave” which is intended to run always at the minimum frequency. Reboot and use cpufreq-info to confirm:

$ cpufreq-info
...
        The governor "powersave" may decide which speed to use
...

Confirmed on Debian Stretch.

The governors are described here:
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt