Raspberry Pi 4 Software Updates – Reduced Power Consumption & Heat!
I’ve been pretty scathing about the Raspberry Pi 4, specifically the official case, which due to the increased power consumption of the Raspberry Pi 4 and the lack of any ventilation would trigger thermal throttling of the Pi under fairly light loads.
Here are a handful of my past posts on this topic.
- (30th June 2019) – Raspberry Pi 4 Hot new release – Too hot to use enclosed
- (6th July 2019) – Cooling Options for the Hot Raspberry Pi 4
- (7th July 2019) – Raspberry Pi 4 – Power & Temperature at Idle
- (21st August 2019) – Cool Cases for the Hot Raspberry Pi 4
- (4th September 2019) – Raspberry Pi 4 Cases, Temperature and CPU Throttling Under Load
We’re now in November 2019 and I can now share some results from testing with the latest changes released publically (no longer beta) at the end of October. The new release has been picked up by mainstream media, TomsHardware.com, Hackaday.com, Geeks3D.com and elsewhere. The updates not only seek to reduce power consumption, thus heat, but also aim to add some sought after missing capabilities, specifically Network Boot though USB boot is still being worked on, it seems like it’s next on the list.
What’s Changed to Address Thermal Issues
There wasn’t a single change to “fix” the problem, instead this is a part of a series of ongoing optimisations, this was touched on in a video panel discussion with some of the Pi Team. So far the changes have been in 3 main areas:
- VLI 805 USB 3.0 Host Controller – Firmware 2.0 (000137ab) PCIe Active State Power Management (APSM) is now enabled (see forum post)
- Memory optimisations
- Power management optimisations of the core SoC
Eben Upton, Founder of the Raspberry Pi Foundation, has been replying to commenters on the Hackaday post, here he explains the power consumption saving changes so far:
PCIe ASPM savings actually account for about half of the idle power savings realised so far. Throughput loss to mass storage due to ASPM appears to be in the ~2% range.
Eben Upton, Founder – Raspberry Pi Foundation – Via Hackaday.com comments
The rest is made up of SDRAM PHY optimisation, clocking improvements, changes to the load-step response of the PMIC (allowing us to reduce load-step margin on the core voltage). We also have a DVFS scheme which makes the first (1GHz) frequency back-off much more energy efficient than it was at launch.
More to come, but a good start, and a nice return on four months of engineering.
How to Apply
Now that the firmware changes and optimisations have been released to the mainstream. The regular update process should apply all the changes.
sudo apt update && sudo apt upgrade
If you wish to just update the bootloader changes which include the USB firmware:
sudo apt update && sudo apt install rpi-eeprom
Testing: Power Consumption
It’s apparent the thermal issues are the direct result of increased power consumption, as I covered in my previous post. Here I’ve tested 2 x 4GB Raspberry Pi 4’s. One which was updated a couple of weeks ago, ahead of the updates, it has 86 updates pending. The other updated with the latest OS and firmware updates as of 3rd November 2019.
- Pi 4-Baseline
- Kernel: Linux rpi4-4gb-2 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l GNU/Linux
- VLI Firmware: 00013701
- vcgencmd version: 9f8431fb7839c7f00f52b81f5822ddab2b31d0db
- Pi 4-Updated
- Kernel: Linux rpi4-4gb-1 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
- VLI Firmware: 000137ab
- vcgencmd version: cd3add54955f8fa065b414d8fc07c525e7ddffc8
Current and Voltage measurements were taken whilst the system was shutdown, idle at the console, idle at the desktop and whilst running the full 4 core CPU stress test.
- Power consumption with the updated firmware has reduced in all scenarios:
- Shutdown by 11%
- Idle at the console by 14%
- Idle at the desktop (3440×1440@50Hz) by 20%
- Under 4 core CPU Stress by 6%
- Note, the largest improvement is when idle at the desktop, which was the default environment in many of my previous rounds of testing.
Testing: Temperatures & Throttling
A few months ago I tested a range of cases to see how they managed to handle the heat from the Raspberry Pi 4 and at what point they began to trigger CPU thermal throttling (reducing the CPU clock speed). With this 175-680mW reduction in power enable the RPi 4 to perform without throttling where it couldn’t before.
Raspberry Pi 4 – Open Air
Raspberry Pi 4: Baseline
Throttling to 1000MHZ only present in 4 core stress test.
Raspberry Pi 4: Updated
As with the baseline, throttling only occurs during the full 4 core stress. Though the number of throttling events are reduced.
Raspberry Pi 4 – Official Case
Raspberry Pi 4: Baseline
Once enclosed in the official case, we see the Pi 4 throttling in all but the 1 core stress test. The 3 and 4 core tests see the clock speed being dropped to 500MHz at times as the heat builds up.
Raspberry Pi 4: Updated
The updated version sees some improvements. Whilst throttling still occurs in the 2, 3 and 4 core tests, the 2 core test shows less time being throttled to 1000MHz, the 3 core test mainly runs at 1000MHz with a small number of drops to 750MHz, whereas before the update a lot less time was spent at 1000MHz. Finally, the 4 core test manages to avoid dropping to 500MHz and spends more of the time in the 1000-750MHz range compared to the 750MHz-600MHz range seen before the update.
Comparing 25-50% Stress
The CPU stress is a fairly unrealistic scenario for typical usage. If you know you’re going to be pushing a heavy load then an active cooling solution is still going to be required. At a more reasonable 25-50% Load we can see the benefits the updates have provided, with a clear improvement in temperatures under these load conditions.
Conclusion
There are measurable improvements in power consumption, reducing by up to 20% in some key scenarios. CPU temperatures at idle and under load have fallen as a result.
The Raspberry Pi 4 official case, however, still can’t be recommended, it’s lack of ventilation leads to CPU throttling at fairly light loads, and heavy loads for extended periods leaves the whole board and the case hot to the touch. There are an ever-increasing range of other Raspberry Pi 4 compatible cases being released, I’ve tested some previously and no doubt I’ll test others in the future.
Hi,
I have four Raspberry Pi 4 with Logitech BRIO 4K USB3 webcam attached.
They used to record 4K mjpeg streams using ffmpeg (to a file server) in full 3840×2160 resolution at 30 fps.
Using VL805 FW version: 000137ab the webcams were only able to do 1920×1080 resolution.
After downgrade using:
sudo vl805 -w /lib/firmware/raspberrypi/bootloader/beta/vl805-00013701.bin
4K worked again 🙂
Other people have experienced performance problems with the new USB3 firmware.
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=256615&sid=e2b9487682515778389b9fd70a481e36
Best regards,
Peter
I knew of some problems during the BETA of the VL805 Firmware. I’d hoped and assumed that they’d all been addressed, looks like there are still classes of devices with issues and people should be aware of, especially if they experience performance issues after the upgrade. Thanks for sharing this Peter.