The Raspberry Pi 4 launched earlier this year to critical acclaim, thanks to upgrades including but not limited to a more powerful processor, the first new graphics processor in Raspberry Pi history, true gigabit Ethernet connectivity, and PCI Express-connected USB 3.0 ports. It also drew some criticism for its higher-than-expected power draw and, correspondingly, heat output — something the engineers at the Raspberry Pi Foundation have been working to address in a series of firmware updates.
The Raspberry Pi 4 Model B. (📷: Gareth Halfacree)
There’s only one way to prove the efficacy of these updates, however, and that’s with direct testing.
The subject for this test is a retail-release Raspberry Pi 4 Model B 4GB, taken from an official Raspberry Pi Desktop Kit. It is run without the bundled case, using the latest version of the Raspbian Linux operating system — but with manual control over its firmware.
Power is provided from an Aim TTi EL303R bench-top power supply, which has calibrated and accurate current measurement facilities, set to a 3A maximum current at 5V. This is connected to the Raspberry Pi 4’s USB Type-C power input.
Thermal imagery is taken using a FLIR C2 thermal camera, processed to correct for minor variations in environmental conditions over the course of the testing and to set a fixed scale for ease of comparison, then overlaid on an edge-enhanced visible light image of the board to allow for easy recognition of individual components.
Several tests are carried out for each firmware revision: power draw is measured at both idle and peak loaded conditions; a thermal image of the board is captured at idle and after 60 seconds of sustained load; and the self-reported SoC temperature and CPU clock speed are tracked during a 10-minute synthetic workload –
glxgears to push the GPU and
stress-ng in four-thread FFT mode to stress the CPU — followed by a five-minute cool-down period.
Launched in March last year, the Raspberry Pi 3 Model B+ was the last of the full-size traditional Raspberry Pi family. Based on the earlier Raspberry Pi 3 Model B, the Model B+ boasts much the same specifications but with a tweaked and repackaged SoC which allowed for improved thermal performance and faster operating speeds.
Raspberry Pi 3B+ – idle. (📷: Gareth Halfacree)
Raspberry Pi 3B+ – 60 seconds of load. (📷: Gareth Halfacree)
Thermal imaging reveals an SoC which runs cool at idle, though a hot-spot can be seen on the Microchip LAN7515 USB and Ethernet controller to the center-right of the board. After 60 seconds of load, this hot-spot increases in temperature and is joined by the power-management IC (PMIC) to the bottom-left as the SoC reaches 58.1°C.
The Raspberry Pi 3B+ gives a baseline performance, and one which reveals throttling under a heavy synthetic workload isn’t new in the Raspberry Pi 4: the Raspberry Pi 3B+ has a soft-throttle point of 60°C, which it quickly hits before throttling down to 1.2GHz for the remainder of the benchmark.
The Raspberry Pi 4 Model B launched with a fully-functional but not-quite-optimized firmware pre-loaded. It’s this launch-day firmware which formed the basis of reviews and testing, and which drew criticism over its high idle and load operating temperatures.
Raspberry Pi 4B launch firmware – idle. (📷: Gareth Halfacree)
Raspberry Pi 4B launch firmware – 60 seconds of load. (📷: Gareth Halfacree)
Thermal imaging proves this criticism wasn’t without merit: Even at idle the Raspberry Pi 4B runs hotter than its predecessor, with hot-spots located at the PMIC and associated circuitry, new Via Labs (VLI) VL805 USB 3.0 controller, and of course the SoC itself. After 60 seconds of synthetic load, the entire board lights up while the SoC hits an external temperature of 72.1°C — well above the 58.1°C of the Raspberry Pi 3B+.
The Raspberry Pi 4B has a higher throttle point than its predecessor, running at stock speed until 80°C — a temperature it hits after 65 seconds of the synthetic workload. The SoC then throttles to a stable 1GHz, dipping down to 750MHz towards the end of the benchmark run — dramatically reducing performance compared to its 1.5GHz stock speed.
The first firmware update promised power and heat savings by enabling previously-dormant power management functionality in the VLI VL805 USB controller. Unfortunately, the beta release revealed a bug which caused selected USB 3.0 devices to drop their throughput dramatically. This testing is carried out with a later re-release, which contained all the same power-saving benefits but without the throughput-sapping bug.
Raspberry Pi 4B VLI firmware – idle. (📷: Gareth Halfacree)
Raspberry Pi 4B VLI firmware – 60 seconds of load. (📷: Gareth Halfacree)
The difference is immediately clear: At idle, the hot-spot on the VL805 chip is almost entirely absent, with a smaller but still noticeable impact on the temperature of the PMIC circuitry and SoC. After 60 seconds of synthetic load, the difference is less pronounced everywhere except the VLI chip — but is still measurable, with the SoC hitting a 71.4°C external package temperature.
Unsurprisingly, even this small decrease in heat has an impact on performance. The throttle point in the synthetic benchmark is pushed back to 77 seconds, while the average CPU speed is pulled up throughout the run — thanks in no small part to the CPU being able to avoid hitting the secondary 750MHz throttle point.
Following the VLI firmware update, the Raspberry Pi Foundation’s next release concentrated on the power required by the 1GB, 2GB, or 4GB (as tested) LPDDR4 SDRAM installed on the Raspberry Pi 4. Updating to this firmware also brings along the VLI update for the ride, combining the benefit of both.
Raspberry Pi 4B SDRAM firmware – idle. (📷: Gareth Halfacree)
Raspberry Pi 4B SDRAM firmware – 60 seconds of load. (📷: Gareth Halfacree)
The SDRAM chip itself, located to the right of the SoC, never really gets hot, but the update has a measurable impact on temperatures nevertheless. At idle, the entire board is visibly cooler under the thermal camera with the SoC showing a clear benefit; after 60 seconds of load, the SoC sits at just 68.8°C.
This has a dramatic impact on the benchmark run. This time, the CPU doesn’t throttle until 109 seconds into the synthetic workload, and is able to continue to return to 1.5GHz from its 1GHz throttled speed throughout the workload – providing a major boost to average speed throughout the run.
A third update brought in both the VLI and SDRAM improvements plus alterations in how the SoC increases and decreases its clock speed in response to both temperature and system load, along with tweaks to the power-management circuitry.
Raspberry Pi 4B clocking firmware – idle. (📷: Gareth Halfacree)
Raspberry Pi 4B clocking firmware – 60 seconds of load. (📷: Gareth Halfacree)
Continuing the theme of each firmware update, thermal imaging reveals improvements in heat output at both idle and load: Both the SoC and PMIC circuitry are running cooler, while under load there’s less heat spreading out to the rest of the board. After 60 seconds of load, the SoC’s external temperature measured at 65°C.
This firmware pushes the throttle point back to 155 seconds, representing more than a doubling over the launch-day firmware, and again allows for the CPU to spend more time at 1.5GHz and thus bring up the average clock speed throughout the run.
Currently undergoing testing ahead of public availability — a sensible precaution, given the issues surrounding the public beta of the VL805 firmware — the Raspberry Pi 4B’s next firmware update bundles all previous enhancements plus finer-grained control over operating voltages, optimized clocking for the HDMI video output state machines to drop power usage when running at lower resolutions and refresh rates, and other miscellaneous tweaks.
Raspberry Pi 4B beta firmware – idle. (📷: Gareth Halfacree)
Raspberry Pi 4B beta firmware – 60 seconds of load. (📷: Gareth Halfacree)
Thermal imagery under the beta firmware is undeniably impressive. The idle image is visibly cooler than any other revision, and even cooler than the Raspberry Pi 3B+, with most of the board sitting below the 35°C bottom measurement point of the fixed temperature scale; after 60 seconds of load, the SoC reached 64.8°C — not a huge improvement over the current stable firmware release, but measurable nonetheless.
Running the synthetic workload benchmark, the beta firmware delivers the Raspberry Pi 4’s best result yet: it’s a full 177 seconds before the throttle point is reached, while the average clock speed is boosted thanks to the finer-grained controls provided to the governor. The cool-down period reveals something interesting, too. Where previous firmware releases have clocked down to 600MHz and stayed there, the beta firmware frequently spikes to 750MHz even after the main workload has finished — revealing a more sensitive up-clock system, design to boost the performance of background tasks.
Putting out less heat must mean the Raspberry Pi 4B is drawing less power, and a look at the peak figures from the bench-top power supply — measured at idle with the Raspbian desktop loaded at 1080p60 resolution via HDMI, a wired Ethernet connection, and a Logitech Unified Receiver connected to a USB 2.0 port to echo a common real-world usage scenario, then at load running the synthetic workload from the throttling benchmarks — shows that is indeed the case.
While the Raspberry Pi 4B still draws more than the Raspberry Pi 3B+ at idle and load, the gap is narrowing — and with rumblings from the Raspberry Pi Foundation’s engineers that there may still be optimizations to be made it’s possible the two boards will draw neck-and-neck in the near future, despite the dramatically increased performance of the Raspberry Pi 4B.
There’s one more thing to test, however, and it could have an even bigger impact on temperature and performance than anything the Foundation has been doing with firmware: board orientation.
All previous tests were carried out with the Raspberry Pi board sat flat on a desk surface. In this test, the Raspberry Pi 4B running the beta firmware runs the synthetic throttling benchmark one more time — but balanced on its edge, with the GPIO header at the bottom and HDMI and power ports at the top. Doing so improves convection from the SoC and allows air to flow on the underside of the PCB, but does it really have a measurable impact?
The graph reveals all. In a vertical orientation the Raspberry Pi runs cooler and heats more slowly, staying at its peak 1.5GHz clock speed until 461 seconds into the 600-second benchmark run — a bigger improvement than in any previous test. While not every use-case will support having the board oriented vertically, it’s clear it offers a measurable advantage where possible.
A synthetic workload is one thing, but how likely is throttling under real-world workloads? For this test, the synthetic workload is put aside and instead the Raspberry Pi 4B — back in its horizontal orientation — is set compiling the Linux kernel from source, while a Raspberry Pi 3B+ does the same.
These charts show the Raspberry Pi 4B avoided throttling for the entirety of the compilation, which it completed in 2,659 seconds. While there is a clock-speed drop visible towards the end of the process, this isn’t thermal throttling but instead the compilation switching workloads to something less CPU- and more IO-constrained. The same can be seen on the Raspberry Pi 3B+ chart, though here thermal throttling occurred after just 36 seconds and compilation didn’t complete until 5,097 seconds had passed
The synthetic workloads and thermal imaging prove each firmware release has brought about real improvements in power draw, heat output, and sustained performance — as the below chart, indicating when each test hit its thermal throttle point for the first time during the synthetic benchmark, shows.
In the real world, however, throttling appears to be less of a concern. Being able to complete an entire Linux kernel compile on-device, using four workers to minimise compilation time, and not throttle once shows for most scenarios outside high environmental temperatures and enclosed unventilated spaces thermal throttling shouldn’t be a concern — especially not compared to the earlier Raspberry Pi 3B+.
Equally, though, the testing reveals updating the firmware is well worth doing. Thankfully, it’s just three commands in a Raspbian terminal:
sudo apt update
sudo apt full-upgrade
sudo shutdown -r now