The Raspberry Pi 400 can be overclocked to 2.2 GHz

After the Raspberry Pi 400 was launched earlier this morning, there was a lot of discussion over the thermals and performance of the upgraded 1.8 GHz System on a Chip inside:

Pi 4 model B and Pi 400 BCM2711 SoC Broadcom chip number difference

I wanted to spend a little time in this post testing overclocking, performance, power consumption, and thermals in depth.

Video version

There is also a video that goes along with this post, if you're more visually-inclined:

Thermal Performance at 1.8 GHz

A few other reviewers did some tests (like Explaining Computers) and found the Pi 400 was able to stay cooler than a Pi 4 inside a Flirc passive heat sink case, but was not quite as cool as a Pi 4 running with an ICE cooling tower.

I wanted to see if there's any level at which the CPU gets near throttling, so I set up a test scenario and started measuring temperatures, both internally and with my Seek IR camera.

I took a thermal image of the board before running any tests:

Pi 400 idle - thermal IR image

At idle, the exterior of the keyboard is indistinguishable from the environment around it. Plastic isn't the best thermal conductor, and later I found that most of the heat output goes through the ports in the back and the vent on the bottom.

And then I started dumping temperature data into a CSV file with the command:

while :; do echo `date +"%Y-%m-%d %T"`','`vcgencmd measure_temp | tail -c +6 | sed "s/'C//g"` >> temperatures.csv; sleep 1; done

I kicked off stress-ng to load up all the four CPU cores on the Pi, and let it run for 30 minutes at the default 1.8 GHz clock on the Pi 400:

sudo apt install -y stress-ng  # if it's not already installed
stress-ng -c 4

And here's a graph of the temperature over 30 minutes:

Pi 400 temperature over 30 minutes of CPU stress

The maximum temperature it reached was 52°C, though the surface of the keyboard never went above 31°C:

Pi 400 Keyboard stress 1.8 GHz IR thermal camera

The bottom was very slightly warm, and the ports on the back were warm to the touch, but not even close to the painful 'ouch' I would get touching some parts on the Pi 4 under load!

Overclocking to 2.2 GHz

So... the Pi 400 is the first Pi I'm able to reliably run at more than 2.147 GHz. After reading this Tom's Hardware review of the Pi 400, I noted that Les Pounder was able to get the chip to run at 2.2 GHz.

My first attempt to overclock to 2.147 GHz, by setting the following in /boot/config.txt, resulted in a Pi that would only boot halfway then get locked up:

over_voltage=6
arm_freq=2147

If could set arm_freq=2000 successfully, but I figured I should go big or go home. I figured it was a power issue, and to set over_voltage higher than 6, I had to set force_turbo=1.

force_turbo=1
over_voltage=8
arm_freq=2200

And now it booted up and ran at 2.2 GHz, just like in the Tom's Hardware review!

NOTE: Setting force_turbo may void your warranty—do this at your own risk!

I ran the same stress-ng test for a full 30 minutes, and here's the temperature graph:

Raspberry Pi 400 temperature over 30 minutes of CPU stress - 2.2 GHz clock

It reached a peak of 63°C, which is still well under the throttling temperature. For comparison, check out the same graph from my overclocked benchmarks on the Compute Module 4, with a massive fan (but no heat sink):

CPU temperature graph - Compute Module 4

And without a fan, the CM4 behaves like a Pi 4 model B, and reaches 75°C and beyond, throttling the CPU after a while. It's great to see the passively-cooled Pi 400 can keep from throttling, even overclocked to 2.2 GHz!

Here's a thermal image after 30 minutes of stress-ng at 2.2 GHz:

Pi 400 Keyboard stress 2.2 GHz IR thermal camera

The top was very slightly warm, though still not an issue at all. The bottom was noticeably warm now, like the back of my phone when I use it to watch some streaming videos for a while, but not uncomfortably so. The ports on the back still showed the highest external temps overall, at 42°C:

Raspberry Pi 400 external ports 42 degrees Celcius thermal IR camera

Another important difference from the Pi 4 model B: it seems like the microSD card itself doesn't get quite as hot either (though I only measured by touch), maybe due to the fact that the SoC's heat is transferred out more through the heat sink than the Pi's board itself.

Performance (Phoronix Benchmarks)

I also ran a set of Phoronix CPU benchmarks—specifically, this benchmark that I have been running on all the Pi 4 series computers—and here are the results at 2.2 GHz, compared to an actively-cooled Pi Compute Module 4 running at 1.5 and 2.0 GHz:

Phoronix Raspberry Pi 400 2.2 GHz benchmarks compared to 1.5 and 2.0 GHz Compute Module 4

Performance scales pretty much linearly with respect to the clock speed, which is to be expected with the exact same CPU architecture.

I did some testing with YouTube, and found that playing back videos at 1080p was much more enjoyable at the 2.2 GHz clock, though doing things like switching between fullscreen playback and windowed playback was still a bit slow.

Power Consumption

I also measured the average power consumption while the CPU was at 1.8 and 2.2 GHz, and it looks like it's close, though the 2.2 GHz clock with force_turbo uses about 0.01A more power at idle, and 0.10A more power at full tilt.

All measurements were taken with my Satechi USB-C Power Meter.

Here's idle power consumption, first for the 1.8 GHz clock, and then for the 2.2 GHz clock:

.50A power consumption on Pi 400 at 1.8 GHz

.51A power consumption on Pi 400 at 2.2 GHz

And here's power consumption at both speeds when running stress-ng:

Pi 400 power consumption at 1.8 GHz stress-ng

Pi 400 power consumption at 2.2 GHz stress-ng

Overclocking beyond 2.2 GHz

I don't think you can go beyond 2.2 GHz, at least not for now. I tried 2.4, 2.3, and 2.21 and none of those resulted in a full boot. I went back to 2.2 GHz and the Pi 400 seems to be running stable, at least after a few hours of use.

The design of the Pi 400's giant heat sink lets you run the Pi 400 with any workload and not really run into the danger of overheating. It looks like the thermal design of this Pi is the best yet—with the caveat that the other Pis to this point have had no real heat sink or fan included!

Comments

What are the odds that the Raspberry Pi foundation will start using this CPU in all the Pi4s going forward?

This seems to work for me:

over_voltage=8
arm_freq=2147
gpu_freq=750

Not sure if you could get away with initial_turbo to make it through boot at higher speeds?

My only gripe with the 400 (and it is a minor one) is that we have gone back to the days when you can accidentally kill your machine by knocking cables out of the back of the keyboard. In that way we have come full circle back to the ZX days :-)

over_voltage=15
arm_freq=2375
gpu_freq=775
arm_freq_min=2300

This will boot and work prfectly. This is as far as one can push raspberry pi 400, IF one is using STOCK power supply. With stronger power supply, you could go up to 2.5-2.7 ghz.

Which connector? Can you link me the best one? And which Overvoltage do you recommend? So if CPU goes up to 2,7 what whit the GPU? 950?

^ This didn't work for me. Trying these settings caused my pi 400 to stop booting. Had to revert back to my original oc settings to remedy this.

Hi jeff. Can you make a video of the compilation speed of the C++ program on the Pi 4? I'm a Competitive programmer and i interested in ARM64 and Pi 4. Unfortunately it is not possible to test by myself.

Would you be able to compare gpu freq overclock against the pi4?

For some intensive retropie games, gpu clock is more important, and was wondering how the pi400 handles that compared to the pi4.

Many thanks

I'm running 2300,8,750 without any issue, temps are in the range 58-63 under heavy load. Happy.

Interestingly, 2300,6,750 works well with force_turbo=1, however 2300,6,750 doesn't boot without force_turbo set.

I also tried leaving force_turbo off and setting initial_turbo=60, which should solve the aforementioned issue, but it doesn't.

Overall I'm happy, I just find it odd that force_turbo appears to do something more compared to initial_turbo.

I was able to get a very stable Overclock of 2.3Ghz in my Pi 400 , The UI was so fluid after that
I just added arm_freq=2200 and the over_voltage=8 , but I dont know why it bumped me up to 2.3Ghz on Twister OS
Here's the link Incase you need it:

https://www.youtube.com/watch?v=aa5frE3H7Hg

I also noticed that 2200,6,750 works well and is super stable (without needing turbo to be set). This on a pi400 without devices attached.
As soon as you plug an external ssd, over_voltage must be increased to 8 in order to avoid freezes. Why is this the case?

@The Techie Scientist
I've seen the same, it appears to be something set at boot, but when running, CPU freq should clamps at your specified 2200.
I use https://github.com/MilhouseVH/bcmstat for monitoring.

Yes , I have measure it with ondemand , cat method and neofetch plus several other measures , and all of them show 2.3Ghz only
Who knows the answer why?

Just want to say this mix is working for me:

gpu_freq=750
arm_freq=2200
over_voltage=6

Didn't fix Waverace 64 on Retropie, but everything is stable so far (and I know I might have to raise over_voltage to 8 if I plug more stuff in, but putting it off for now just in case it avoids a problem).

voltage=11
frekvence=2400
gpu=950
force turbo=0
raspbian 2021 may

This seems kind of lame verseus the 2.5 GHz overclock I was able to achieve on my regular pi 4