Sorry to clickbait with that title... but it's actually true. I can help you improve power use by 140x—for power off power consumption, at least.
By default, the Raspberry Pi 5 (like the Pi 4 before it) leaves the SoC powered up (just in a shutdown state) when you shut down the Pi.
Because of this, a Pi 5 will still sit there consuming 1.2-1.6W when completely shut down, even without anything plugged in except power.
That's a lot—even compared to a modern desktop PC!
Why is this?
Apparently some HATs have trouble if the 3v3 power rail is off, but 5v is still active—which would be the case if you completely power off the SoC, but still have your 5V power supply plugged in.
Because of that, the Pi ships by default with the setting POWER_OFF_ON_HALT=0
, and the Pi eats up precious watts all the time.
Fixing the Pi's power consumption
The fix is, thankfully, easy.
Edit your EEPROM config by running sudo rpi-eeprom-config -e
, and make sure the following settings are configured:
[all]
BOOT_UART=1
WAKE_ON_GPIO=0
POWER_OFF_ON_HALT=1
The first setting is irrelevant here, but I'm including it for completeness. Also, WAKE_ON_GPIO
doesn't seem to do anything on Pi 5 (since there's a power button and pads on the board for power switching, instead of GPIO-pin-based power control), but it's still there for now. I'm mostly including it because you can set these options on the Pi 4 too, and get it to reduce it's powered-off consumption too!
Save that configuration and reboot, then next time you shut down, you should see power consumption go down from 1-2W to 0.01W or even less:
Why can't we change the default?
Well... if it were up to me, it would be changed. But it's not :)
We could either name and shame the HATs that don't work correctly with 5V but without 3v3, or we could push for the Pi team to figure out some solution that allows everyone to default to POWER_OFF_ON_HALT=1
.
Can you still boot the Pi 5 with POWER_OFF_ON_HALT
?
Yes! The power button still works just as normal, and the red LED is still illuminated when it's shut down.
The RTC still keeps time, too, so watchdog-related functions (like booting during some interval, or at a certain time of day) should also work. I haven't personally tested this (yet), but here's a forum thread with a little more info.
Comments
Pi 5 changes so many things that it should change that default, too.
I kind of agree, though I know one of the results of that change would be some small percentage of users complaining their HATs are broken on Pi 5... but I personally think that would be better than the vast majority of Pi installations having exponentially higher power consumption when shut down all the time.
The power off on halt setup works well. But as far I mounted a Waveshare NVME hat adapter to run the PI 5 with a SSD to run it over the PCIE interface, the standby current at power off is about 130mA. With the Pineberry hat adapter the power off current is about 165mA. After a certain time the consumption reduce to about 50mA.
Is there as setting, the reduce the power off consumption near the value POWER_OFF_ON_HALT=1 as without SSD?
It sounds as though it is the SSD or other chips on the NVME board are staying powered up when the pi powers down.
The drop in power consumption after a while could be the SSD switching off due to being idle for a certain amount of time. If you can time when the power consumption drops and if it is the same each time then that is likely what is happening.
I'm not an expert but there may be a way to make the pi tell the ssd to switch off when it switches off.
You might just have to live with that 50 mA though, that might be the power consumption of the ssd or NVME board when switched off and it may not be able to go any lower.
Based on a quick google apparently NVME SSDs draw around 0.5 - 3 W when idle which would be right in the range for your 130 or 165 mA being 0.65 and 0.825 W respectively.
Is the power consumption the same if the Pi is powered from PoE and shutdown?
I am testing the MMDVM Dual Hat and it definitely stays powered on when the Pi5 is off, consuming even more than the 1 watt! Thank you for the fix. I also wish we could adjust the fan controls or turn it on manually. It's all over the support and manual documents if you read them, but when you try to make adjustments, the Pi team shut it down (locked us out in the preferences).
If you have a wake_on_gpio function it should also detect if a hat is installed and thus the default should surely be “if hat detected keep power”
Following the forum link I get:
"Information
You are not authorised to read this forum."
Maybe this is a private forum?
Ah, you're right, it's in the beta forum. Haven't seen the same thing posted to the General forum, but it would be good to start that discussion there at some point.
Is this the post in question?
So the work around doesn't seem to work on the MMDVM hat. I am still getting power to it. I attempted GPIO off command iterations in the config file but nothing seemed to shut off the power to the gpio pins for the MMDVM hat. curious....
Forum link not working, goes to a "You are not authorised to read this forum." page even though I'm already logged in and reading the forum.
Maybe the thread got split or moved, tried searching on your posts and also generically POWER_OFF_ON_HALT but didn't see anything pertinent.
Won't sudo shutdown -hP now do the same thing? This does work with a Pi 3B or older.
The -P is Power Off.
Good to know, since once I get a Pi5 it will be in my offgrid building, I need to save as much as possible at night or when cloudy.
Good job. How do you find this stuff?
In this case, I was re-testing some power stuff during the alpha test period, and I had discussed it with the Pi engineers and some other alpha testers on the forums... but I completely forgot to mention it in my sbc-reviews thread (oops!) or on launch day. It's nice to be able to cut down power consumption on shutdown so I thought I'd post it here!
Have a quick ansible snippet for those of us who set their boxes up that way ?
Tried to access the forum post. But it says You are not authorised to read this forum.
My pi5 when shutdown use 0w of power ! I unplug it when it don't use it.
And no need to modify settings, it's working with default settings !
Life hacks : you can use this method with all electrical device ;) but don't tell to anyone it's a secret for smart people !
Truly, your witt is showing in this answer.
If unplugging was an option, then I'd question the use of a Pi anyway. If it's that accessible, you must be doing something common and easy.
The RTC finally gives a good way to have a fully remote device that didn't hog power when not in use, without hacks that provide an external switching solution. You want to take that away by needing to physically access the device?
Since this update, I lost my WiFi possibility (WiFi adapter not found anymore)
Reverting to previous settings, did not solve this problem :-(
HELP !
Note that there's a bug in the current bootloader that is triggered if you boot off anything other than microSD card right now—WiFi will not initialize properly. I believe the new bootloader is out, not sure if it's in apt yet. More here: https://github.com/raspberrypi/firmware/issues/1837
it's not the boot medium but the boot order that is important. If you leave it default (SD -> USB), the Pi5 will boot from a USB SSD device and have wifi enabled (no SD card plugged in of course).
The only drawback is that it takes a fraction of a second longer to boot
Is this supposed to work with a 4B too? I just tried (and verified), but even with POWER_OFF_ON_HALT=1 it consumes about 200mA after a 'sudo halt', with nothing connected besides the power supply.
Pi 4 will consume a little more than Pi 5 on shutdown. How much is it consuming with
POWER_OFF_ON_HALT=0
? And you might also need to tweak the GPIO power option too for the Pi 4, not sure.Thanks for your reply and indeed, for the Pi 4, WAKE_ON_GPIO=0 must be set. Then consumption goes down to about 10mA which is much better than 200mA :-)
Like that however, powering it up by pulling GPIO 3 low doesn't work, but pulling GLOBAL_EN low does. Personally, I think that's fine - powering off by via software (I'm using KDE Connect) and powering on by a button press. And pulling the power supply when I don't use it for a longer period of time.
Quick test on a pi4.....
Before = 1.5 W on a Kill-a-watt after sudo poweroff
After = 0.0 W displayed (can't measure hundredths of a watt)
[all]
BOOT_UART=0
WAKE_ON_GPIO=0
POWER_OFF_ON_HALT=1
I am reading 6mA with a INA260 .
https://medium.com/@life-is-short-so-enjoy-it/raspberry-pi-4-reduce-hal…
The power off on halt setup works well. But as far I mounted a Waveshare NVME hat adapter to run the PI 5 with a SSD to run it over the PCIE interface, the standby current at power off is about 130mA. With the Pineberry hat adapter the power off current is about 165mA. After a certain time the consumption reduce to about 50mA.
Is there as setting, the reduce the power off consumption near the value POWER_OFF_ON_HALT=1 as without SSD?
One solution is to not use a HAT for an NVMe drive. I'm using a Pimoroni NVMe Base that sits under the Pi5 and has no other connections to it besides the FFC link. This limits it to SSDs of 5W and under without additional soldering, but I'm fine with that as a 1TB Lexar NM790 is fast enough to saturate the PCIe bus at Gen 3 with a maximum power consumption of only 3.7W.
This setup works perfectly with POWER_OFF_ON_HALT=1.
I just installed the 64 bit OS (bookworm). Booted into the GUI and powered off. Zero power usage when off.
Hi, thank you Jeff, I admire your passion for pi! I have pi 4 running docker, and after a power outage pi boots automatically and containers also restart. How would this work with pi 5 and a power button. Can pi 5 be configured to behave in similar fashion?
Does this work on the pi 4?
Does this apply to Raspberry Pi 3B+ as well?
https://www.jeffgeerling.com/blog/2023/reducing-raspberry-pi-5s-power-c…
I'm also interested about this
Cool stuff
Setting `POWER_OFF_ON_HALT=1` made my Pi 5 unable to boot any OS from my SD card (which uses PINN to boot Ubuntu, or Pi OS). I had to use boot the Pi from a spare USB that I had flashed with Pi OS (no PINN), go into Pi OS, and set it back to `POWER_OFF_ON_HALT=0`. After that, booting from my SD card works now again as usual!
I was looking for commands that would shut off the GPIO pins on my Pi 5 when hitting shutdown in Ubuntu and this did the job. Now the lights on my external LED fan that's powered by GPIO turn off when shutting down. Thanks Jeff!