User avatar
bertlea
Posts: 286
Joined: Wed Dec 07, 2016 6:33 am
Location: Hong Kong

Underclocking Pi4 to Pi3B level

Thu Aug 22, 2019 1:23 am

I would like to seek advices specifically on underclocking Pi4 (4G RAM) to have processing power close to Pi3B. The reason is simply that I do not need processing power more than the Pi3B, but I really want to run it cooler, especially in idle time. The main reason I bought a Pi4 is I want its 4G RAM for some tasks that Pi3B cannot do without using swap, including compiling, running server and programs with larger tmpfs or ramfs. I don’t want active cooling and I do not have a FLIRC case for it yet.
Any advice on the settings I should do in this case?

malow
Posts: 14
Joined: Wed Feb 06, 2019 6:05 am

Re: Underclocking Pi4 to Pi3B level

Thu Aug 22, 2019 1:53 am

would like to know too.

will get a PI4 to make a SD>SSD card offloader, that run on batteries.

so i want to reduce peak amps and temp, as nigh frequency is not needed for simple terminal file copy.

ProDigit
Posts: 374
Joined: Tue Aug 30, 2011 1:24 am

Re: Underclocking Pi4 to Pi3B level

Mon Aug 26, 2019 11:31 pm

underclocking does little to the heat generated.
Most heat can be removed by reducing CPU/GPU and Core voltage (as well as ram).
In order for this to be successful, the core frequency needs to be lowered as a result.
It takes a bit of playing around, and testing.

You can try to do:

Code: Select all

sudo nano /boot/config.txt
and add following lines in the file:

Code: Select all

arm_freq=1400
arm_freq_min=250
Test and see what the maximum and minimum frequency is you really need.
Lowering it too much, cripples the system, and makes it sluggish.

Sometimes just lowering the minimum frequency and leaving out the 'arm_freq' line, might give you what you need.
From my experience, it makes no sense to lower arm_freq_min below 200 (stock is 400 on a Pi 4), as the Pi will boost into high frequency as soon as you just move the mouse. So 250 is a relatively safe setting for small programs.
The settings also might not work on the Pi 4 (as this is a method that works on the Pi3 (B+)), but I think it should work on the pi4.

You can check the CPU frequency by typing:

Code: Select all

watch vcgencmd measure_clock arm
It'll show you with what loads the CPU goes into boost speeds.
Sometimes setting the arm_freq_min value higher will prevent it from going into boost speeds, and keep the CPU cooler.


After you've confirmed what works well, you can adjust the voltage, by adding line underneath:

Code: Select all

over_voltage=-2
over_voltage_min=-3
Where you can decrease the negative values further, the lower you set the frequency.
Play around with the value. If your pi refuses to boot up, take the SD card into another computer, and load the 'config.txt' file in the root folder in a notepad editor, to reset the value to a bit higher.


You can also save heat by underclocking the RAM, core and GPU:

Code: Select all

gpu_freq_min=200
sdram_freq=2400
over_voltage_sdram=-2
core_freq_min=250
Always start out by lowering the frequency on stock voltages first!
Then modify the over_voltage settings.
Test your system in idle, and doing small tasks when changing over_voltage_min settings,
And test under load, when lowering over_voltage settings.

Alternatively, you can always buy a larger cooler:
An active one: https://www.amazon.com/dp/B07TZFRVQJ
Or a passive one: https://www.amazon.com/dp/B07W5HXZFK/

The passive one is good enough to cool your Pi4 without a case (as the heat sink almost is the same size as a case), when using the Pi mostly with low demanding programs.
The active one, cools the pi best under load scenarios, or with programs that use more than 25% of CPU.

User avatar
bertlea
Posts: 286
Joined: Wed Dec 07, 2016 6:33 am
Location: Hong Kong

Re: Underclocking Pi4 to Pi3B level

Tue Aug 27, 2019 6:59 am

Thank you @ProDigit. I guess I have to do some trail and error work based on your suggestions on this later. I am just not sure can I try out different values of these parameters freely or there are implied constraints such as the arm_freq or core_freq need to keep certain ratio to sdram_freq, etc. Anyway, I guess nobody tried that with a definite answer yet....

ProDigit
Posts: 374
Joined: Tue Aug 30, 2011 1:24 am

Re: Underclocking Pi4 to Pi3B level

Tue Aug 27, 2019 7:45 am

No,core and ram frequencies can be different. I. Fact they already are with a pi 4 (core_freq should be 400 or 500, sdram freq should be 3200 I believe).

User avatar
bertlea
Posts: 286
Joined: Wed Dec 07, 2016 6:33 am
Location: Hong Kong

Re: Underclocking Pi4 to Pi3B level

Thu Aug 29, 2019 3:34 am

Tried to under-clock the Pi4 last night by adding the settings below in config.txt file but it does not seem to be effective... maybe only 1 degree Celsius difference (keep running around 64 regardless the settings). This setting is actually more effective on my Pi3B+. On Pi3B+ that seems to lower the temperature 4 degree Celsius (from 59 to 54). All test are done at room temperature about 28 degree Celsius and checking temperature after 30 min. running few light weight stuff that total CPU usage is under 15%.

I suspect the settings is not effective for Pi4. :?

Code: Select all

arm_freq=1200
over_voltage=-2
arm_freq_min=400
core_freq_min=200
over_voltage_min=-4

ProDigit
Posts: 374
Joined: Tue Aug 30, 2011 1:24 am

Re: Underclocking Pi4 to Pi3B level

Thu Aug 29, 2019 6:29 am

Test to see how low you can get the over_voltage settings before system boot errors.
Sometimes setting the arm_freq too low, the CPU will enter boost with things as little as moving a mouse.
You can use "watch vgcgencmd measure__clock arm", if your cpu is going into boost with small tasks. If it does, your efforts to lower heat will be counter productive; especially If background apps keep increasing Arm_frequency a lot.

Return to “General discussion”